zettapi_client
Version:
Client side CRUD operations in angular to use with zettapi_server rest api to get started quickly in any CMS project
65 lines (57 loc) • 1.72 kB
JavaScript
app.controller('roleCtrl', function (ErrorSvc, $scope, $role) {
$scope.permissions = {};
$role.getPermissions().then(function (response) {
$scope.permissions = response.data;
});
$scope.togglePermissions = function (value) {
if (!$scope.item.permissions) {
$scope.item.permissions = {};
}
for (var entity in $scope.permissions) {
if (!$scope.item.permissions[entity]) {
$scope.item.permissions[entity] = {};
}
for (var action in $scope.permissions[entity]) {
if (action === 'label') {
continue;
}
$scope.item.permissions[entity][action] = value;
}
}
};
$scope.getError = function (role, roles) {
if (!role) {
return ErrorSvc.validationArgs(true);
}
if (!role.name) {
return ErrorSvc.validationArgs(true, "Introduza um nome para o perfil de utilizador");
}
if (role.name.trim() === "") {
return ErrorSvc.validationArgs(true, "Introduza um nome para o perfil de utilizador");
}
for (var i = 0; i < roles.length; i++) {
if (roles[i].name == role.name && roles[i]._id != role._id) {
return ErrorSvc.validationArgs(true, "Perfil de utilizador já existente");
}
}
return ErrorSvc.validationArgs(false);
};
$scope.blank = function () {
var permissions = {};
for (var entity in $scope.permissions) {
permissions[entity] = {};
for (var action in $scope.permissions[entity]) {
if (action === 'label') {
continue;
}
permissions[entity][action] = true;
}
}
return {
name: "",
approvalLevel: 0,
admin: false,
permissions: permissions
};
};
});