HttpServletRequest request) throws Exception {
ZeroView view = new ZeroView(getMessages(), request.getLocale());
User user = getUser();
if (user.checkAuthorisation(UserModule.AUTH_USER_EDIT)) {
session.setAttribute(SESSION_USER_TRANSACTION, new UserTransaction());
ZeroUser selectedUser = null;
if (selected == null || selected.equals("")) {
log.debug("create user");
selectedUser = new ZeroUser("", "zero");
selectedUser.setId("");
} else {
selectedUser = userDao.findById(selected);
if (selectedUser == null) {
log.debug("selected user == null");
}
if (selectedUser.getUserGroup() == null) {
log.debug("selected user.getUserGroup == null");
}
if (user == null) {
log.debug("user == null");
}
if (selectedUser.getUserGroup() != null) {
if (!user.checkAuthorisation(
new Permission(UserModule.AUTH_USER, selectedUser.getUserGroup().getGroupKey()),
new Permission(UserModule.AUTH_USER_EDIT, "", false))) {
view.setMessage(new Message("zero.message.user.edit_no_permission", Message.MSG_ERROR, selectedUser.getUsername()));
return new ModelAndView(view, null);
}
}
}
session.setAttribute(SESSION_USER_SELECTEDUSER, selectedUser);
updateUserParameters(selectedUser);
view.addWidget(new SimpleWidget(ZeroView.DIV_CONTENT, "user_userEdit"));
view.getJson().element("user", UserJSONizer.createUserWithRoles((ZeroUser) selectedUser, getModuleManager()));
view.getJson().element("parameters", UserJSONizer.createParameters(getModuleManager(), (ZeroUser) selectedUser));
JSONArray jUserGroups = new JSONArray();
view.getJson().element("userGroups", jUserGroups);
Collection<Role> roles = user.getRoles(UserModule.AUTH_USER);
Set<UserGroup> userGroups = new HashSet<UserGroup>();
for (Role role : roles) {
if (role.checkAuthorisation(UserModule.AUTH_USER_EDIT)) {
String userGroupKey = role.getPermission(UserModule.AUTH_USER).getValue();
if (userGroupKey.equals("*")) {