124 lines
3.5 KiB
JavaScript
124 lines
3.5 KiB
JavaScript
|
(function() {
|
||
|
/**
|
||
|
* Page for managing an organization-defined OAuth application.
|
||
|
*/
|
||
|
angular.module('quayPages').config(['pages', function(pages) {
|
||
|
pages.create('manage-application', 'manage-application.html', ManageApplicationCtrl, {
|
||
|
'newLayout': true,
|
||
|
'title': 'Manage Application {{ application.name }}',
|
||
|
'description': 'Manage an OAuth application'
|
||
|
});
|
||
|
}]);
|
||
|
|
||
|
function ManageApplicationCtrl($scope, $routeParams, $rootScope, $location, $timeout, OAuthService, ApiService, UserService, Config) {
|
||
|
var orgname = $routeParams.orgname;
|
||
|
var clientId = $routeParams.clientid;
|
||
|
|
||
|
$scope.Config = Config;
|
||
|
$scope.OAuthService = OAuthService;
|
||
|
$scope.updating = false;
|
||
|
|
||
|
$scope.genScopes = {};
|
||
|
|
||
|
UserService.updateUserIn($scope);
|
||
|
|
||
|
$scope.getScopes = function(scopes) {
|
||
|
var checked = [];
|
||
|
for (var scopeName in scopes) {
|
||
|
if (scopes.hasOwnProperty(scopeName) && scopes[scopeName]) {
|
||
|
checked.push(scopeName);
|
||
|
}
|
||
|
}
|
||
|
return checked;
|
||
|
};
|
||
|
|
||
|
$scope.askResetClientSecret = function() {
|
||
|
$('#resetSecretModal').modal({});
|
||
|
};
|
||
|
|
||
|
$scope.askDelete = function() {
|
||
|
$('#deleteAppModal').modal({});
|
||
|
};
|
||
|
|
||
|
$scope.deleteApplication = function() {
|
||
|
var params = {
|
||
|
'orgname': orgname,
|
||
|
'client_id': clientId
|
||
|
};
|
||
|
|
||
|
$('#deleteAppModal').modal('hide');
|
||
|
|
||
|
ApiService.deleteOrganizationApplication(null, params).then(function(resp) {
|
||
|
$timeout(function() {
|
||
|
$location.path('/organization/' + orgname + '/admin');
|
||
|
}, 500);
|
||
|
}, ApiService.errorDisplay('Could not delete application'));
|
||
|
};
|
||
|
|
||
|
$scope.updateApplication = function() {
|
||
|
$scope.updating = true;
|
||
|
var params = {
|
||
|
'orgname': orgname,
|
||
|
'client_id': clientId
|
||
|
};
|
||
|
|
||
|
if (!$scope.application['description']) {
|
||
|
delete $scope.application['description'];
|
||
|
}
|
||
|
|
||
|
if (!$scope.application['avatar_email']) {
|
||
|
delete $scope.application['avatar_email'];
|
||
|
}
|
||
|
|
||
|
var errorHandler = ApiService.errorDisplay('Could not update application', function(resp) {
|
||
|
$scope.updating = false;
|
||
|
});
|
||
|
|
||
|
ApiService.updateOrganizationApplication($scope.application, params).then(function(resp) {
|
||
|
$scope.application = resp;
|
||
|
}, errorHandler);
|
||
|
};
|
||
|
|
||
|
$scope.resetClientSecret = function() {
|
||
|
var params = {
|
||
|
'orgname': orgname,
|
||
|
'client_id': clientId
|
||
|
};
|
||
|
|
||
|
$('#resetSecretModal').modal('hide');
|
||
|
|
||
|
ApiService.resetOrganizationApplicationClientSecret(null, params).then(function(resp) {
|
||
|
$scope.application = resp;
|
||
|
}, ApiService.errorDisplay('Could not reset client secret'));
|
||
|
};
|
||
|
|
||
|
var loadOrganization = function() {
|
||
|
$scope.orgResource = ApiService.getOrganizationAsResource({'orgname': orgname}).get(function(org) {
|
||
|
$scope.organization = org;
|
||
|
return org;
|
||
|
});
|
||
|
};
|
||
|
|
||
|
var loadApplicationInfo = function() {
|
||
|
var params = {
|
||
|
'orgname': orgname,
|
||
|
'client_id': clientId
|
||
|
};
|
||
|
|
||
|
$scope.appResource = ApiService.getOrganizationApplicationAsResource(params).get(function(resp) {
|
||
|
$scope.application = resp;
|
||
|
|
||
|
$rootScope.title = 'Manage Application ' + $scope.application.name + ' (' + $scope.orgname + ')';
|
||
|
$rootScope.description = 'Manage the details of application ' + $scope.application.name +
|
||
|
' under organization ' + $scope.orgname;
|
||
|
|
||
|
return resp;
|
||
|
});
|
||
|
};
|
||
|
|
||
|
|
||
|
// Load the organization and application info.
|
||
|
loadOrganization();
|
||
|
loadApplicationInfo();
|
||
|
}
|
||
|
})();
|