/** * Element for managing the applications authorized by a user. */ angular.module('quay').directive('externalLoginsManager', function () { var directiveDefinitionObject = { priority: 0, templateUrl: '/static/directives/external-logins-manager.html', replace: false, transclude: false, restrict: 'C', scope: { 'user': '=user', }, controller: function($scope, $element, ApiService, UserService, Features, Config, KeyService) { $scope.Features = Features; $scope.Config = Config; $scope.KeyService = KeyService; UserService.updateUserIn($scope, function(user) { $scope.cuser = jQuery.extend({}, user); if ($scope.cuser.logins) { for (var i = 0; i < $scope.cuser.logins.length; i++) { var login = $scope.cuser.logins[i]; login.metadata = login.metadata || {}; if (login.service == 'github') { $scope.hasGithubLogin = true; $scope.githubLogin = login.metadata['service_username']; $scope.githubEndpoint = KeyService['githubEndpoint']; } if (login.service == 'google') { $scope.hasGoogleLogin = true; $scope.googleLogin = login.metadata['service_username']; } } } }); $scope.detachExternalLogin = function(kind) { var params = { 'servicename': kind }; ApiService.detachExternalLogin(null, params).then(function() { $scope.hasGithubLogin = false; $scope.hasGoogleLogin = false; UserService.load(); }, ApiService.errorDisplay('Count not detach service')); }; } }; return directiveDefinitionObject; });