37,6 → 37,24 |
if("submit".equals(mapping.getParameter())) { |
User user = (User)request.getSession().getAttribute("user"); |
initUserList(request, user); |
|
DynaActionForm theForm = (DynaActionForm)form; |
Long userId; |
User u; |
|
try { |
userId = StringConverter.parseLong(theForm.get("id")); |
} |
catch(NumberFormatException ex) { |
userId = null; |
} |
|
if(userId == null) |
u = UserManager.getInstance().create(user); |
else |
u = UserManager.getInstance().get(user, userId); |
|
request.setAttribute("u", u); |
} |
} |
|
56,14 → 74,16 |
else if("edit".equals(mapping.getParameter())) { |
DynaActionForm theForm = (DynaActionForm)form; |
Long userId = StringConverter.parseLong(theForm.get("id")); |
User u; |
DynaActionForm showForm = (DynaActionForm)RequestUtilsX.populateActionForm( |
this, request, "ak.hostcaptain.core.form.UserEditForm"); |
|
if(userId == null) { |
u = UserManager.getInstance().create(user); |
showForm.set("enabled", new Boolean(true)); |
} |
else { |
User u = UserManager.getInstance().get(user, userId); |
u = UserManager.getInstance().get(user, userId); |
showForm.set("login", u.getLogin()); |
if(u.getBoss() != null) |
showForm.set("boss", StringConverter.toString(u.getBoss().getId())); |
73,6 → 93,7 |
} |
|
initUserList(request, user); |
request.setAttribute("u", u); |
return mapping.findForward("default"); |
} |
else if("delete".equals(mapping.getParameter())) { |
79,6 → 100,7 |
DynaActionForm theForm = (DynaActionForm)form; |
Long userId = StringConverter.parseLong(theForm.get("id")); |
User u = UserManager.getInstance().get(user, userId); |
request.setAttribute("u", u); |
|
if(u.equals(user)) |
throw new UserException(CoreResources.DELETE_ME_SELF); |
105,20 → 127,27 |
else { |
u = UserManager.getInstance().get(user, userId); |
} |
request.setAttribute("u", u); |
|
u.setLogin((String)theForm.get("login")); |
u.setLogin(user, (String)theForm.get("login")); |
|
if(u.editableBy(user)) { |
Long bossId = StringConverter.parseLong(theForm.get("boss")); |
if(bossId == null) |
u.setBoss(user, null); |
else |
u.setBoss(user, UserManager.getInstance().get(user, bossId)); |
} |
|
Long bossId = StringConverter.parseLong(theForm.get("boss")); |
if(bossId == null) |
u.setBoss(null); |
else |
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")); |
if(u.mayChangeSuperuser(user)) |
u.setSuperuser(user, (Boolean)theForm.get("superuser")); |
|
if(password != null && !password.equals("")) |
u.setNewPassword(password); |
if(password != null && !password.equals("") |
&& u.editableBy(user) // more strong condition, because normal |
&& u.mayChangePassword(user)) // user have to enter first the old password |
{ |
u.setPassword(user, password); |
} |
|
u.setEnabled((Boolean)theForm.get("enabled")); |
u.setComment((String)theForm.get("comment")); |