scripts/core/privileges/privileges.ts
PrivilegesService.$inject = ['$rootScope', 'preferencesService'];
function PrivilegesService($rootScope, preferencesService) {
var _privileges = {};
this.privileges = _privileges;
$rootScope.privileges = _privileges;
/**
* Check if current user has given privileges
*
* @param {Object} privileges
*/
this.userHasPrivileges = function userHasPrivileges(privileges) {
for (var privilege in privileges) {
if (privileges[privilege] && !_privileges[privilege]) {
return false;
}
}
return true;
};
/**
* Set current user privileges
*
* @param {Object} privileges
*/
this.setUserPrivileges = function setUserPrivileges(privileges) {
for (var privilege in privileges) {
if (privileges[privilege]) {
_privileges[privilege] = 1;
} else {
_privileges[privilege] = 0;
}
}
return _privileges;
};
// start loading when used for first time
this.loaded = preferencesService.getPrivileges().then(this.setUserPrivileges);
}
/**
* @ngdoc module
* @module superdesk.core.privileges
* @name superdesk.core.privileges
* @packageName superdesk.core
* @description Superdesk privileges enables and helps manage user privileges.
*/
angular.module('superdesk.core.privileges', ['superdesk.core.preferences'])
.service('privileges', PrivilegesService);