📄 usermanagerportlet.java
字号:
if (users != null) { for (int i = 0; i < users.length; i++) { User user = this.userManagerService.getUser(users[i]); this.passwordManagerService.deletePassword(user); List<PortletRole> userRoles = this.roleManagerService.getRolesForUser(user); for (PortletRole role : userRoles) { this.roleManagerService.deleteUserInRole(user, role); } this.userManagerService.deleteUser(user); } } createSuccessMessage(event, this.getLocalizedText(req, "USER_DELETE_SUCCESS")); /* HiddenFieldBean hf = evt.getHiddenFieldBean("userID"); String userId = hf.getValue(); User user = this.userManagerService.getUser(userId); if (user != null) { req.setAttribute("user", user); this.passwordManagerService.deletePassword(user); List<PortletRole> userRoles = this.roleManagerService.getRolesForUser(user); for (PortletRole role : userRoles) { this.roleManagerService.deleteUserInRole(user, role); } this.userManagerService.deleteUser(user); createSuccessMessage(evt, this.getLocalizedText(req, "USER_DELETE_SUCCESS")); } setNextState(req, "doListUsers"); */ } public void doComposeEmail(ActionFormEvent event) { ActionRequest req = event.getActionRequest(); String[] users = req.getParameterValues("usersCB"); if (users == null) return; req.getPortletSession().setAttribute("emails", users); setNextState(req, "doComposeEmail"); } public void doComposeEmail(RenderFormEvent event) { RenderRequest req = event.getRenderRequest(); String[] users = (String[]) req.getPortletSession().getAttribute("emails"); StringBuffer emails = new StringBuffer(); for (int i = 0; i < users.length; i++) { User user = this.userManagerService.getUser(users[i]); System.err.println(user.getEmailAddress()); emails.append(user.getEmailAddress()).append(", "); } String mailFrom = portalConfigService.getProperty(PortalConfigService.MAIL_FROM); TextFieldBean senderTF = event.getTextFieldBean("senderTF"); senderTF.setValue(mailFrom); TextFieldBean emailAddressTF = event.getTextFieldBean("emailAddressTF"); // chop off last , from emails CSV emailAddressTF.setValue(emails.substring(0, emails.length() - 2)); req.getPortletSession().removeAttribute("emails"); setNextState(req, DO_SEND_EMAIL); } public void doSendEmail(ActionFormEvent event) { ActionRequest req = event.getActionRequest(); MailMessage msg = new MailMessage(); msg.setEmailAddress(event.getTextFieldBean("emailAddressTF").getValue()); msg.setSender(event.getTextFieldBean("senderTF").getValue()); msg.setSubject(event.getTextFieldBean("subjectTF").getValue()); msg.setBody(event.getTextAreaBean("bodyTA").getValue()); RadioButtonBean toRB = event.getRadioButtonBean("toRB"); if (toRB.getValue().equals("TO")) { msg.setRecipientType(MailMessage.TO); } else { msg.setRecipientType(MailMessage.BCC); } try { mailService.sendMail(msg); createErrorMessage(event, "Successfully sent message"); setNextState(req, "doListUsers"); } catch (PortletServiceException e) { log.error("Unable to send mail message!", e); createErrorMessage(event, getLocalizedText(req, "LOGIN_FAILURE_MAIL")); setNextState(req, "doSendEmail"); } } private void setUserValues(ActionFormEvent event, User user) { event.getTextFieldBean("userName").setValue(user.getUserName()); event.getTextFieldBean("lastName").setValue(user.getLastName()); event.getTextFieldBean("firstName").setValue(user.getFirstName()); //event.getTextFieldBean("fullName").setValue(user.getFullName()); event.getTextFieldBean("emailAddress").setValue(user.getEmailAddress()); event.getTextFieldBean("organization").setValue(user.getOrganization()); event.getPasswordBean("password").setValue(""); event.getTextFieldBean("certificate").setValue((String) user.getAttribute("user.certificate")); } private void validateUser(ActionFormEvent event, boolean newuser) throws PortletException { log.debug("Entering validateUser()"); PortletRequest req = event.getActionRequest(); StringBuffer message = new StringBuffer(); String eMail = event.getTextFieldBean("emailAddress").getValue(); boolean isInvalid = false; // Validate user name String userName = event.getTextFieldBean("userName").getValue(); if (userName.equals("")) { createErrorMessage(event, this.getLocalizedText(req, "USER_NAME_BLANK") + "<br />"); isInvalid = true; } else if (newuser) { if (this.userManagerService.existsUserName(userName)) { createErrorMessage(event, this.getLocalizedText(req, "USER_EXISTS") + "<br />"); isInvalid = true; } if (this.userManagerService.getUserByEmail(eMail) != null) { createErrorMessage(event, this.getLocalizedText(req, "EMAIL_EXISTS") + "<br/>"); isInvalid = true; } } // Validate first and last name String firstName = event.getTextFieldBean("firstName").getValue(); if (firstName.equals("")) { createErrorMessage(event, this.getLocalizedText(req, "USER_GIVENNAME_BLANK") + "<br />"); isInvalid = true; } String lastName = event.getTextFieldBean("lastName").getValue(); if (lastName.equals("")) { createErrorMessage(event, this.getLocalizedText(req, "USER_FAMILYNAME_BLANK") + "<br />"); isInvalid = true; } // Validate e-mail if (eMail.equals("")) { createErrorMessage(event, this.getLocalizedText(req, "USER_NEED_EMAIL") + "<br />"); isInvalid = true; } else if ((eMail.indexOf("@") < 0)) { createErrorMessage(event, this.getLocalizedText(req, "USER_NEED_EMAIL") + "<br />"); isInvalid = true; } else if ((eMail.indexOf(".") < 0)) { createErrorMessage(event, this.getLocalizedText(req, "USER_NEED_EMAIL") + "<br />"); isInvalid = true; } String savePasswds = portalConfigService.getProperty(PortalConfigService.SAVE_PASSWORDS); if (savePasswds.equals(Boolean.TRUE.toString())) { if (isInvalidPassword(event, newuser)) { isInvalid = true; } } // Throw exception if error was found if (isInvalid) { throw new PortletException(message.toString()); } log.debug("Exiting validateUser()"); } private boolean isInvalidPassword(ActionFormEvent event, boolean newuser) { // Validate password PortletRequest req = event.getActionRequest(); String passwordValue = event.getPasswordBean("password").getValue(); String confirmPasswordValue = event.getPasswordBean("confirmPassword").getValue(); // If user already exists and password unchanged, no problem if (passwordValue.length() == 0 && confirmPasswordValue.length() == 0) { if (newuser) { createErrorMessage(event, this.getLocalizedText(req, "USER_PASSWORD_BLANK") + "<br />"); return true; } return false; } // Otherwise, password must match confirmation if (!passwordValue.equals(confirmPasswordValue)) { createErrorMessage(event, this.getLocalizedText(req, "USER_PASSWORD_MISMATCH") + "<br />"); return true; // If they do match, then validate password with our service } else { if (passwordValue.length() == 0) { createErrorMessage(event, this.getLocalizedText(req, "USER_PASSWORD_BLANK")); return true; } if (passwordValue.length() < 5) { createErrorMessage(event, this.getLocalizedText(req, "USER_PASSWORD_TOOSHORT")); return true; } } return false; } private User saveUser(ActionFormEvent event, User user) { log.debug("Entering saveUser()"); // Account request boolean newuserflag = false; // Create edit account request if (user == null) { user = this.userManagerService.createUser(); long now = Calendar.getInstance().getTime().getTime(); user.setAttribute(User.CREATEDATE, String.valueOf(now)); newuserflag = true; } String savePasswds = portalConfigService.getProperty(PortalConfigService.SAVE_PASSWORDS); if (savePasswds.equals(Boolean.TRUE.toString())) { PasswordEditor editor = passwordManagerService.editPassword(user); String password = event.getPasswordBean("password").getValue(); boolean isgood = this.isInvalidPassword(event, newuserflag); if (isgood) { setNextState(event.getActionRequest(), DO_VIEW_USER_EDIT); return user; } else { if (!password.equals("")) { editor.setValue(password); passwordManagerService.savePassword(editor); } } } // Edit account attributes editAccountRequest(event, user); // Submit changes this.userManagerService.saveUser(user); // Save user role saveUserRole(event, user); log.debug("Exiting saveUser()"); return user; } private void editAccountRequest(ActionFormEvent event, User accountRequest) { log.debug("Entering editAccountRequest()"); accountRequest.setUserName(event.getTextFieldBean("userName").getValue()); accountRequest.setFirstName(event.getTextFieldBean("firstName").getValue()); accountRequest.setLastName(event.getTextFieldBean("lastName").getValue()); accountRequest.setFullName(event.getTextFieldBean("lastName").getValue() + ", " + event.getTextFieldBean("firstName").getValue()); accountRequest.setEmailAddress(event.getTextFieldBean("emailAddress").getValue()); accountRequest.setOrganization(event.getTextFieldBean("organization").getValue()); if (event.getCheckBoxBean("accountCB").isSelected()) { accountRequest.setAttribute(User.DISABLED, "true"); } else { accountRequest.setAttribute(User.DISABLED, "false"); } String certval = event.getTextFieldBean("certificate").getValue(); if (certval != null) accountRequest.setAttribute("user.certificate", certval); } private void saveUserRole(ActionFormEvent event, User user) { log.debug("Entering saveUserRole()"); List<PortletRole> roles = roleManagerService.getRoles(); for (PortletRole role : roles) { CheckBoxBean cb = event.getCheckBoxBean(role.getName() + "CB"); if (cb.isSelected()) { roleManagerService.addUserToRole(user, role); } else { if (roleManagerService.isUserInRole(user, role)) if ((!role.equals(PortletRole.ADMIN)) || (roleManagerService.getUsersInRole(PortletRole.ADMIN).size() > 1)) { roleManagerService.deleteUserInRole(user, role); } else { log.warn("Can't delete user, one user in role ADMIN necessary"); createErrorMessage(event, "Unable to delete user! One user with ADMIN role is necessary"); } } log.debug("Exiting saveUserRole()"); } } public void filterUserList(ActionFormEvent event) { PortletRequest req = event.getActionRequest(); ListBoxBean usersPageLB = event.getListBoxBean("usersPageLB"); String numPages = usersPageLB.getSelectedValue(); try { Integer.parseInt(numPages); } catch (Exception e) { numPages = "10"; } TextFieldBean userEmailTF = event.getTextFieldBean("userEmailTF"); TextFieldBean userOrgTF = event.getTextFieldBean("userOrgTF"); req.getPortletSession().setAttribute(NUM_PAGES, numPages); req.getPortletSession().setAttribute(EMAIL_QUERY, userEmailTF.getValue()); req.getPortletSession().setAttribute(ORG_QUERY, userOrgTF.getValue()); } private void mailUserConfirmation(ActionFormEvent evt, User user) { PortletRequest req = evt.getActionRequest(); MailMessage mailToUser = new MailMessage(); String body = portalConfigService.getProperty("LOGIN_APPROVED_BODY"); if (body == null) body = getLocalizedText(req, "LOGIN_ACCOUNT_APPROVAL_ACCOUNT_CREATED"); StringBuffer message = new StringBuffer(body); String subject = portalConfigService.getProperty("LOGIN_APPROVED_SUBJECT"); if (subject == null) subject = getLocalizedText(req, "LOGIN_ACCOUNT_APPROVAL_ACCOUNT_CREATED"); mailToUser.setSubject(subject); message.append("\n\n"); message.append(getLocalizedText(req, "USERNAME")).append("\t"); message.append(user.getUserName()).append("\n"); message.append(getLocalizedText(req, "GIVENNAME")).append("\t"); message.append(user.getFirstName()).append("\n"); message.append(getLocalizedText(req, "FAMILYNAME")).append("\t"); message.append(user.getLastName()).append("\n"); message.append(getLocalizedText(req, "ORGANIZATION")).append("\t"); message.append(user.getOrganization()).append("\n"); message.append(getLocalizedText(req, "EMAILADDRESS")).append("\t"); message.append(user.getEmailAddress()).append("\n"); message.append("\n"); message.append(getLocalizedText(req, "USER_PASSWD_MSG")); message.append("\t").append(evt.getPasswordBean("password").getValue()); mailToUser.setBody(message.toString()); mailToUser.setEmailAddress(user.getEmailAddress()); mailToUser.setSender(portalConfigService.getProperty(PortalConfigService.MAIL_FROM)); try { mailService.sendMail(mailToUser); } catch (PortletServiceException e) { log.error("Unable to send mail message!", e); createErrorMessage(evt, getLocalizedText(req, "LOGIN_FAILURE_MAIL")); } }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -