/** * Overrides default implementation to view the 'add NCIP user' page. * * @return {@link #SUCCESS} */ @Override public String execute() { try { User user = getUserService().getUserById(userId); setTemporaryUser(user); setGroupList(getGroupService().getAllGroups()); return SUCCESS; } catch (DatabaseConfigException dce) { log.error(dce.getMessage(), dce); this.addFieldError( "editLDAPUserError", "Unable to connect to the database. Database Configuration may be incorrect"); errorType = "error"; return SUCCESS; } }
/** * Method that edits the details of the LDAP user * * @return {@link #SUCCESS} */ public String editLDAPUser() { try { User user = getUserService().getUserById(userId); if (user == null) { this.addFieldError( "editLDAPUserError", "Error in editing LDAP user. An email has been sent to the administrator"); getUserService().sendEmailErrorReport(); errorType = "error"; return ERROR; } user.setEmail(email); user.setFirstName(firstName); user.setLastName(lastName); user.setPassword(null); user.setAccountCreated(new Date()); user.setFailedLoginAttempts(0); List<Server> serverList = getServerService().getAll(); boolean serverExists = false; Server tempServer = null; Iterator<Server> iter = serverList.iterator(); while (iter.hasNext()) { tempServer = (Server) iter.next(); if (tempServer.getType() != Server.ServerType.LOCAL) { serverExists = true; break; } } if (serverExists == false) { this.addFieldError("addLDAPUserError", "NO LDAP Server has been configured"); errorType = "error"; return ERROR; } user.setServer(tempServer); user.setLastLogin(new Date()); // Check if user has permissions boolean hasPermission = false; if (user.getGroups() != null && user.getGroups().size() > 0) { hasPermission = true; } user.removeAllGroups(); for (int i = 0; i < groupsSelected.length; i++) { Group group = getGroupService().getGroupById(Integer.parseInt(groupsSelected[i])); user.addGroup(group); } User similarEmail = getUserService().getUserByEmail(email, tempServer); if (similarEmail != null) { if (similarEmail.getId() != userId) { if (!similarEmail.getServer().getName().equalsIgnoreCase("Local")) { this.addFieldError("editLDAPUserError", "Email ID already exists"); errorType = "error"; setGroupList(getGroupService().getAllGroups()); setTemporaryUser(user); setSelectedGroups(groupsSelected); return INPUT; } } } getUserService().updateUser(user); // Email user that permissions has been added. if (!hasPermission) { getUserService().sendEmailToUserWithPermissions(user); } return SUCCESS; } catch (DatabaseConfigException dce) { log.error(dce.getMessage(), dce); this.addFieldError( "editLDAPUserError", "Unable to connect to the database. Database Configuration may be incorrect"); errorType = "error"; return ERROR; } catch (DataException de) { log.error(de.getMessage(), de); this.addFieldError( "editLDAPUserError", "Error in editing LDAP user. An email has been sent to the administrator"); getUserService().sendEmailErrorReport(); errorType = "error"; return ERROR; } }