55 lines
No EOL
1.7 KiB
JavaScript
55 lines
No EOL
1.7 KiB
JavaScript
/**
|
|
* 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;
|
|
}); |