Ticket #268: User permission deltas. Do not explicitly list all permissions every update.

This commit is contained in:
Michael Jumper
2013-02-25 20:23:24 -08:00
parent 3dd855b6aa
commit 2164807314
3 changed files with 90 additions and 41 deletions

View File

@@ -167,19 +167,33 @@ public class Update extends AuthenticatingHttpServlet {
user.setPassword(password);
// Set user permissions
String[] user_permission = request.getParameterValues("user");
if (user_permission != null) {
for (String str : user_permission)
String[] add_user_permission = request.getParameterValues("+user");
if (add_user_permission != null) {
for (String str : add_user_permission)
user.addPermission(parseUserPermission(str));
}
// Set connection permissions
String[] connection_permission = request.getParameterValues("connection");
if (connection_permission != null) {
for (String str : connection_permission)
String[] add_connection_permission = request.getParameterValues("+connection");
if (add_connection_permission != null) {
for (String str : add_connection_permission)
user.addPermission(parseConnectionPermission(str));
}
// Set user permissions
String[] remove_user_permission = request.getParameterValues("-user");
if (remove_user_permission != null) {
for (String str : remove_user_permission)
user.removePermission(parseUserPermission(str));
}
// Set connection permissions
String[] remove_connection_permission = request.getParameterValues("-connection");
if (remove_connection_permission != null) {
for (String str : remove_connection_permission)
user.removePermission(parseConnectionPermission(str));
}
// Update user
directory.update(user);