mirror of
https://github.com/Ombi-app/Ombi.git
synced 2025-08-21 05:43:19 -07:00
User perms
This commit is contained in:
parent
624b32d926
commit
6d1eef9154
17 changed files with 524 additions and 104 deletions
|
@ -4,10 +4,14 @@
|
|||
|
||||
$scope.user = {}; // The local user
|
||||
$scope.users = []; // list of users
|
||||
$scope.claims = []; // List of claims
|
||||
|
||||
$scope.features = []; // List of features
|
||||
$scope.permissions = []; // List of permissions
|
||||
|
||||
$scope.selectedUser = {}; // User on the right side
|
||||
$scope.selectedClaims = {};
|
||||
|
||||
$scope.selectedFeatures = {};
|
||||
$scope.selectedPermissions = {};
|
||||
|
||||
$scope.minDate = "0001-01-01T00:00:00.0000000+00:00";
|
||||
|
||||
|
@ -44,11 +48,16 @@
|
|||
});
|
||||
};
|
||||
|
||||
// Get the claims and populate the create dropdown
|
||||
$scope.getClaims = function () {
|
||||
userManagementService.getClaims()
|
||||
// Get the permissions and features and populate the create dropdown
|
||||
$scope.getFeaturesPermissions = function () {
|
||||
userManagementService.getFeatures()
|
||||
.then(function (data) {
|
||||
$scope.claims = data.data;
|
||||
$scope.features = data.data;
|
||||
});
|
||||
|
||||
userManagementService.getPermissions()
|
||||
.then(function (data) {
|
||||
$scope.permissions = data.data;
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -62,14 +71,14 @@
|
|||
return;
|
||||
}
|
||||
|
||||
if (!$scope.selectedClaims) {
|
||||
if ($scope.selectedPermissions.length === 0) {
|
||||
$scope.error.error = true;
|
||||
$scope.error.errorMessage = "Please select a permission";
|
||||
generateNotify($scope.error.errorMessage, 'warning');
|
||||
return;
|
||||
}
|
||||
|
||||
userManagementService.addUser($scope.user, $scope.selectedClaims)
|
||||
userManagementService.addUser($scope.user, $scope.selectedPermissions, $scope.selectedFeatures)
|
||||
.then(function (data) {
|
||||
if (data.message) {
|
||||
$scope.error.error = true;
|
||||
|
@ -77,27 +86,33 @@
|
|||
} else {
|
||||
$scope.users.push(data.data); // Push the new user into the array to update the DOM
|
||||
$scope.user = {};
|
||||
$scope.selectedClaims = {};
|
||||
$scope.claims.forEach(function (entry) {
|
||||
$scope.selectedPermissions = {}; // Clear the checkboxes
|
||||
$scope.selectedFeatures = {};
|
||||
$scope.features.forEach(function (entry) {
|
||||
entry.selected = false;
|
||||
});
|
||||
$scope.permissions.forEach(function (entry) {
|
||||
entry.selected = false;
|
||||
});
|
||||
|
||||
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
$scope.hasClaim = function (claim) {
|
||||
var claims = $scope.selectedUser.claimsArray;
|
||||
|
||||
var result = claims.some(function (item) {
|
||||
return item === claim.name;
|
||||
});
|
||||
return result;
|
||||
};
|
||||
|
||||
$scope.$watch('claims|filter:{selected:true}',
|
||||
// Watch the checkboxes for updates (Creating a user)
|
||||
$scope.$watch('features|filter:{selected:true}',
|
||||
function (nv) {
|
||||
$scope.selectedClaims = nv.map(function (claim) {
|
||||
return claim.name;
|
||||
$scope.selectedFeatures = nv.map(function (f) {
|
||||
return f.name;
|
||||
});
|
||||
},
|
||||
true);
|
||||
|
||||
$scope.$watch('permissions|filter:{selected:true}',
|
||||
function (nv) {
|
||||
$scope.selectedPermissions = nv.map(function (f) {
|
||||
return f.name;
|
||||
});
|
||||
},
|
||||
true);
|
||||
|
@ -105,10 +120,15 @@
|
|||
|
||||
$scope.updateUser = function () {
|
||||
var u = $scope.selectedUser;
|
||||
userManagementService.updateUser(u.id, u.claimsItem, u.alias, u.emailAddress)
|
||||
userManagementService.updateUser(u.id, u.permissions, u.alias, u.emailAddress)
|
||||
.then(function (data) {
|
||||
if (data) {
|
||||
$scope.selectedUser = data;
|
||||
|
||||
if (open) {
|
||||
open = false;
|
||||
$("#wrapper").toggleClass("toggled");
|
||||
}
|
||||
return successCallback("Updated User", "success");
|
||||
}
|
||||
});
|
||||
|
@ -118,7 +138,7 @@
|
|||
var u = $scope.selectedUser;
|
||||
var result = userManagementService.deleteUser(u.id);
|
||||
|
||||
result.success(function(data) {
|
||||
result.success(function (data) {
|
||||
if (data.result) {
|
||||
removeUser(u.id, true);
|
||||
return successCallback("Deleted User", "success");
|
||||
|
@ -138,7 +158,7 @@
|
|||
// On page load
|
||||
$scope.init = function () {
|
||||
$scope.getUsers();
|
||||
$scope.getClaims();
|
||||
$scope.getFeaturesPermissions();
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -157,5 +177,5 @@
|
|||
};
|
||||
|
||||
|
||||
angular.module('PlexRequests').controller('userManagementController', ["$scope", "userManagementService","moment", controller]);
|
||||
angular.module('PlexRequests').controller('userManagementController', ["$scope", "userManagementService", "moment", controller]);
|
||||
}());
|
|
@ -8,27 +8,31 @@
|
|||
return $http.get('/usermanagement/users');
|
||||
};
|
||||
|
||||
var addUser = function (user, claims) {
|
||||
if (!user || claims.length === 0) {
|
||||
var addUser = function (user, permissions, features) {
|
||||
if (!user || permissions.length === 0) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return $http({
|
||||
url: '/usermanagement/createuser',
|
||||
method: "POST",
|
||||
data: { username: user.username, password: user.password, claims: claims, email: user.email }
|
||||
data: { username: user.username, password: user.password, permissions: permissions, features : features, email: user.email }
|
||||
});
|
||||
}
|
||||
|
||||
var getClaims = function () {
|
||||
return $http.get('/usermanagement/claims');
|
||||
var getFeatures = function () {
|
||||
return $http.get('/usermanagement/features');
|
||||
}
|
||||
|
||||
var updateUser = function (id, claims, alias, email) {
|
||||
var getPermissions = function () {
|
||||
return $http.get('/usermanagement/permissions');
|
||||
}
|
||||
|
||||
var updateUser = function (id, permissions, alias, email) {
|
||||
return $http({
|
||||
url: '/usermanagement/updateUser',
|
||||
method: "POST",
|
||||
data: { id: id, claims: claims, alias: alias, emailAddress: email }
|
||||
data: { id: id, permissions: permissions, alias: alias, emailAddress: email }
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -43,7 +47,8 @@
|
|||
return {
|
||||
getUsers: getUsers,
|
||||
addUser: addUser,
|
||||
getClaims: getClaims,
|
||||
getFeatures: getFeatures,
|
||||
getPermissions: getPermissions,
|
||||
updateUser: updateUser,
|
||||
deleteUser: deleteUser
|
||||
};
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue