This repository was archived by the owner on Apr 27, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 97
/
Copy pathmanageUsersPopupCtrl.js
77 lines (66 loc) · 2.69 KB
/
manageUsersPopupCtrl.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
angular.module('codebrag.userMgmt')
.controller('ManageUsersPopupCtrl', function($scope, userMgmtService, popupsService, Flash) {
$scope.flash = new Flash();
userMgmtService.loadUsers().then(function(users) {
$scope.users = users;
});
$scope.countActiveUsers = function() {
return $scope.users ? $scope.users.filter(function(user) { return user.active; }).length : 0;
};
$scope.invite = function() {
popupsService.openInvitePopup();
};
$scope.modifyUser = function(user, flag) {
$scope.flash.clear();
var userData = { userId: user.userId };
userData[flag] = user[flag];
user.locked = true;
userMgmtService.modifyUser(userData).then(modifySuccess, modifyFailed(flag, user)).then(function() {
delete user.locked;
});
};
$scope.deleteUser = function(user) {
$scope.flash.clear();
var userData = { userId: user.userId };
userMgmtService.deleteUser(userData).then(deleteSuccess(user), deleteFailed('active', user.userId))
};
$scope.askForNewPassword = function(user) {
$scope.flash.clear();
var modal = popupsService.openSetUserPasswordPopup(user);
modal.result.then(function() {
$scope.flash.add('info', 'User password changed');
});
};
function deleteSuccess(user) {
$scope.flash.add('error', 'User ' + user.email + ' is deleted');
userMgmtService.loadUsers().then(function(users) {
$scope.users = users;
});
}
function modifySuccess() {
$scope.flash.add('info', 'User details changed');
}
function deleteFailed(flag, userId) {
return function(errorsMap) {
$scope.flash.add('error', ' Could not delete user ');
flattenErrorsMap(errorsMap).forEach(function(error) {
$scope.flash.add('error', error);
});
}
}
function modifyFailed(flag, user) {
return function(errorsMap) {
user[flag] = !user[flag];
$scope.flash.add('error', 'Could not change user details');
flattenErrorsMap(errorsMap).forEach(function(error) {
$scope.flash.add('error', error);
});
}
}
function flattenErrorsMap(errorsMap) {
var nestedErrorsList = Object.keys(errorsMap).map(function(key) {
return errorsMap[key];
});
return _.flatten(nestedErrorsList)
}
});