35,7 → 35,8 |
throws Exception |
{ |
if("submit".equals(mapping.getParameter())) { |
initUserList(request); |
User user = (User)request.getSession().getAttribute("user"); |
initUserList(request, user); |
} |
} |
|
46,7 → 47,7 |
User user = (User)request.getSession().getAttribute("user"); |
|
if("list".equals(mapping.getParameter())) { |
List list = new ArrayList(UserManager.getInstance().listUsers()); |
List list = new ArrayList(UserManager.getInstance().listUsers(user)); |
Collections.sort(list, UserManager.LOGIN_COMPARATOR); |
request.setAttribute("users", list); |
|
62,7 → 63,7 |
showForm.set("enabled", new Boolean(true)); |
} |
else { |
User u = UserManager.getInstance().get(userId); |
User u = UserManager.getInstance().get(user, userId); |
showForm.set("login", u.getLogin()); |
if(u.getBoss() != null) |
showForm.set("boss", StringConverter.toString(u.getBoss().getId())); |
71,13 → 72,13 |
showForm.set("comment", u.getComment()); |
} |
|
initUserList(request); |
initUserList(request, user); |
return mapping.findForward("default"); |
} |
else if("delete".equals(mapping.getParameter())) { |
DynaActionForm theForm = (DynaActionForm)form; |
Long userId = StringConverter.parseLong(theForm.get("id")); |
User u = UserManager.getInstance().get(userId); |
User u = UserManager.getInstance().get(user, userId); |
|
if(u.equals(user)) |
throw new UserException(CoreResources.DELETE_ME_SELF); |
85,7 → 86,7 |
// FIXME: invalidate session of deleted user if it is logged in |
// FIXME: if two admins delete each other at the same time |
|
UserManager.getInstance().delete(u); |
UserManager.getInstance().delete(user, u); |
response.sendRedirect(BackPath.findBackPath(request).getBackwardUrl()); |
return null; |
} |
99,10 → 100,10 |
if(password == null || password.equals("")) |
throw new UserException(CoreResources.PASSWORD_REQUIRED); |
|
u = UserManager.getInstance().create(); |
u = UserManager.getInstance().create(user); |
} |
else { |
u = UserManager.getInstance().get(userId); |
u = UserManager.getInstance().get(user, userId); |
} |
|
u.setLogin((String)theForm.get("login")); |
111,7 → 112,7 |
if(bossId == null) |
u.setBoss(null); |
else |
u.setBoss(UserManager.getInstance().get(bossId)); |
u.setBoss(UserManager.getInstance().get(user, bossId)); |
|
if(!user.equals(u)) // do not allow user to change own superuser status |
u.setSuperuser((Boolean)theForm.get("superuser")); |
122,7 → 123,7 |
u.setEnabled((Boolean)theForm.get("enabled")); |
u.setComment((String)theForm.get("comment")); |
|
UserManager.getInstance().save(u); |
UserManager.getInstance().save(user, u); |
response.sendRedirect(BackPath.findBackPath(request).getBackwardUrl()); |
return null; |
} |
131,10 → 132,10 |
} |
} |
|
private void initUserList(HttpServletRequest request) |
private void initUserList(HttpServletRequest request, User user) |
throws Exception |
{ |
List list = new ArrayList(UserManager.getInstance().listUsers()); |
List list = new ArrayList(UserManager.getInstance().listUsers(user)); |
Collections.sort(list, UserManager.LOGIN_COMPARATOR); |
request.setAttribute("users", list); |
} |