Subversion Repositories general

Compare Revisions

Ignore whitespace Rev 917 → Rev 918

/sun/hostcaptain/trunk/src/ak/hostcaptain/core/action/UserAction.java
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"));