User work

This commit is contained in:
tidusjar 2016-08-19 11:22:17 +01:00
commit 068f75f514
7 changed files with 118 additions and 18 deletions

View file

@ -4,22 +4,27 @@
$scope.user = {}; // The local user
$scope.users = []; // list of users
$scope.claims = []; // List of claims
$scope.selectedUser = {};
$scope.selectedUser = {}; // User on the right side
$scope.selectedClaims = {};
$scope.sortType = 'username';
$scope.sortType = "username";
$scope.sortReverse = false;
$scope.searchTerm = '';
$scope.searchTerm = "";
$scope.error = {
error: false,
errorMessage: ""
};
$scope.selectUser = function(id) {
// Select a user to populate on the right side
$scope.selectUser = function (id) {
$scope.selectedUser = $scope.users.find(x => x.id === id);
}
// Get all users in the system
$scope.getUsers = function () {
$scope.users = userManagementService.getUsers()
.then(function (data) {
@ -27,25 +32,50 @@
});
};
// Get the claims and populate the create dropdown
$scope.getClaims = function () {
userManagementService.getClaims()
.then(function (data) {
$scope.claims = data.data;
});
}
// Create a user, do some validation too
$scope.addUser = function () {
if (!$scope.user.username || !$scope.user.password) {
$scope.error.error = true;
$scope.error.errorMessage = "Please provide a correct username and password";
generateNotify($scope.error.errorMessage, 'warning');
return;
}
userManagementService.addUser($scope.user).then(function (data) {
userManagementService.addUser($scope.user, $scope.selectedClaims).then(function (data) {
if (data.message) {
$scope.error.error = true;
$scope.error.errorMessage = data.message;
} else {
$scope.users.push(data);
$scope.users.push(data); // Push the new user into the array to update the DOM
$scope.user = {};
$scope.selectedClaims = {};
}
});
};
$scope.$watch('claims|filter:{selected:true}', function (nv) {
$scope.selectedClaims = nv.map(function (claim) {
return claim.name;
});
}, true);
// On page load
$scope.init = function () {
$scope.getUsers();
$scope.getClaims();
return;
}
}
angular.module('PlexRequests').controller('userManagementController', ["$scope", "userManagementService", controller]);
}());

View file

@ -2,27 +2,35 @@
var userManagementService = function ($http) {
$http.defaults.headers.common['Content-Type'] = 'application/x-www-form-urlencoded'; // Set default headers
//$http.defaults.headers.common['Content-Type'] = 'application/x-www-form-urlencoded'; // Set default headers
var getUsers = function () {
return $http.get('/usermanagement/users');
};
var addUser = function (user) {
if (!user) {
var addUser = function (user, claims) {
if (!user || claims.length === 0) {
return null;
}
var claimJson = angular.toJson(claims);
var objectToSerialize = { 'claims': claimJson };
var data = $.param(user) +"&"+ $.param(objectToSerialize);
return $http({
url: '/usermanagement/createuser',
method: "POST",
data: $.param(user)
data: data
});
}
var getClaims = function() {
return $http.get('/usermanagement/claims');
}
return {
getUsers: getUsers,
addUser: addUser
addUser: addUser,
getClaims: getClaims
};
}