📄 signupportlet.java
字号:
PortletRequest req = event.getActionRequest(); // Validate password String passwordValue = event.getPasswordBean("password").getValue(); String confirmPasswordValue = event.getPasswordBean("confirmPassword").getValue(); if (passwordValue == null) { createErrorMessage(event, this.getLocalizedText(req, "USER_PASSWORD_NOTSET")); return true; } // 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 { passwordValue = passwordValue.trim(); 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(Request request) { log.debug("Entering saveUser()"); // Account request // Create edit account request User newuser = this.userManagerService.createUser(); // Edit account attributes newuser.setUserName(request.getAttribute("userName")); newuser.setFirstName(request.getAttribute("firstName")); newuser.setLastName(request.getAttribute("lastName")); newuser.setFullName(request.getAttribute("lastName") + ", " + request.getAttribute("firstName")); newuser.setEmailAddress(request.getAttribute("emailAddress")); newuser.setOrganization(request.getAttribute("organization")); long now = Calendar.getInstance().getTime().getTime(); newuser.setAttribute(User.CREATEDATE, String.valueOf(now)); // Submit changes this.userManagerService.saveUser(newuser); String savePasswds = portalConfigService.getProperty(PortalConfigService.SAVE_PASSWORDS); if (savePasswds.equals(Boolean.TRUE.toString())) { PasswordEditor editor = passwordManagerService.editPassword(newuser); String password = request.getAttribute("password"); editor.setValue(password); passwordManagerService.saveHashedPassword(editor); } // Save user role List<PortletRole> defaultRoles = roleService.getDefaultRoles(); for (PortletRole role : defaultRoles) { roleService.addUserToRole(newuser, role); } log.debug("Exiting saveUser()"); return newuser; } public void notifyNewUser(ActionFormEvent evt) throws PortletException { ActionRequest req = evt.getActionRequest(); ActionResponse res = evt.getActionResponse(); TextFieldBean emailTF = evt.getTextFieldBean("emailAddress"); // create a request Request request = requestService.createRequest(ACTIVATE_ACCOUNT_LABEL); long now = Calendar.getInstance().getTime().getTime(); request.setLifetime(new Date(now + REQUEST_LIFETIME)); // request.setUserID(user.getID()); request.setAttribute("userName", evt.getTextFieldBean("userName").getValue()); request.setAttribute("firstName", evt.getTextFieldBean("firstName").getValue()); request.setAttribute("lastName", evt.getTextFieldBean("lastName").getValue()); request.setAttribute("emailAddress", evt.getTextFieldBean("emailAddress").getValue()); request.setAttribute("organization", evt.getTextFieldBean("organization").getValue()); // put hashed pass in request String savePasswds = portalConfigService.getProperty(PortalConfigService.SAVE_PASSWORDS); if (savePasswds.equals(Boolean.TRUE.toString())) { String pass = evt.getPasswordBean("password").getValue(); pass = passwordManagerService.getHashedPassword(pass); request.setAttribute("password", pass); } requestService.saveRequest(request); MailMessage mailToUser = new MailMessage(); mailToUser.setSender(portalConfigService.getProperty(PortalConfigService.MAIL_FROM)); StringBuffer body = new StringBuffer(); String activateURL = activateAccountURL + "&reqid=" + request.getOid(); String denyURL = denyAccountURL + "&reqid=" + request.getOid(); // check if this account request should be approved by an administrator boolean accountApproval = Boolean.valueOf(portalConfigService.getProperty(PortalConfigService.ADMIN_ACCOUNT_APPROVAL)).booleanValue(); if (accountApproval) { String admin = portalConfigService.getProperty(PortalConfigService.PORTAL_ADMIN_EMAIL); mailToUser.setEmailAddress(admin); String mailSubject = portalConfigService.getProperty("LOGIN_ACCOUNT_APPROVAL_ADMIN_MAILSUBJECT"); if (mailSubject == null) mailSubject = getLocalizedText(req, "LOGIN_ACCOUNT_APPROVAL_ADMIN_MAILSUBJECT"); mailToUser.setSubject(mailSubject); String adminBody = portalConfigService.getProperty("LOGIN_ACCOUNT_APPROVAL_ADMIN_MAIL"); if (adminBody == null) adminBody = getLocalizedText(req, "LOGIN_ACCOUNT_APPROVAL_ADMIN_MAIL"); body.append(adminBody).append("\n\n"); body.append(getLocalizedText(req, "LOGIN_ACCOUNT_APPROVAL_ALLOW")).append("\n\n"); body.append(activateURL).append("\n\n"); body.append(getLocalizedText(req, "LOGIN_ACCOUNT_APPROVAL_DENY")).append("\n\n"); body.append(denyURL).append("\n\n"); } else { mailToUser.setEmailAddress(emailTF.getValue()); String mailSubjectHeader = portalConfigService.getProperty("LOGIN_ACTIVATE_SUBJECT"); String loginActivateMail = portalConfigService.getProperty("LOGIN_ACTIVATE_BODY"); if (mailSubjectHeader == null) mailSubjectHeader = getLocalizedText(req, "LOGIN_ACTIVATE_SUBJECT"); mailToUser.setSubject(mailSubjectHeader); if (loginActivateMail == null) loginActivateMail = getLocalizedText(req, "LOGIN_ACTIVATE_MAIL"); body.append(loginActivateMail).append("\n\n"); body.append(activateURL).append("\n\n"); } body.append(getLocalizedText(req, "USERNAME")).append("\t"); body.append(evt.getTextFieldBean("userName").getValue()).append("\n"); body.append(getLocalizedText(req, "GIVENNAME")).append("\t"); body.append(evt.getTextFieldBean("firstName").getValue()).append("\n"); body.append(getLocalizedText(req, "FAMILYNAME")).append("\t"); body.append(evt.getTextFieldBean("lastName").getValue()).append("\n"); body.append(getLocalizedText(req, "ORGANIZATION")).append("\t"); body.append(evt.getTextFieldBean("organization").getValue()).append("\n"); body.append(getLocalizedText(req, "EMAILADDRESS")).append("\t"); body.append(evt.getTextFieldBean("emailAddress").getValue()).append("\n"); mailToUser.setBody(body.toString()); try { mailService.sendMail(mailToUser); } catch (PortletServiceException e) { createErrorMessage(evt, this.getLocalizedText(req, "LOGIN_FAILURE_MAIL")); throw new PortletException("Unable to send mail message!", e); } boolean adminRequired = Boolean.valueOf(portalConfigService.getProperty(PortalConfigService.ADMIN_ACCOUNT_APPROVAL)); if (adminRequired) { createSuccessMessage(evt, this.getLocalizedText(req, "LOGIN_ACCT_ADMIN_MAIL")); } else { createSuccessMessage(evt, this.getLocalizedText(req, "LOGIN_ACCT_MAIL")); } } private void doEmailAction(ActionFormEvent event, String msg, boolean createAccount) { ActionRequest req = event.getActionRequest(); ActionResponse res = event.getActionResponse(); String id = req.getParameter("reqid"); User user = null; Request request = requestService.getRequest(id, ACTIVATE_ACCOUNT_LABEL); if (request != null) { requestService.deleteRequest(request); String subject = ""; String body = ""; if (createAccount) { user = saveUser(request); createSuccessMessage(event, msg + " " + user.getUserName()); // send the user an email subject = portalConfigService.getProperty("LOGIN_ACCOUNT_APPROVAL_ACCOUNT_CREATED"); if (subject == null) subject = getLocalizedText(req, "LOGIN_ACCOUNT_APPROVAL_ACCOUNT_CREATED"); body = portalConfigService.getProperty("LOGIN_ACCOUNT_APPROVAL_ACCOUNT_CREATED_BODY"); if (body == null) body = getLocalizedText(req, "LOGIN_ACCOUNT_APPROVAL_ACCOUNT_CREATED"); } else { createSuccessMessage(event, msg); // send the user an email subject = portalConfigService.getProperty("LOGIN_ACCOUNT_APPROVAL_ACCOUNT_DENY"); if (subject == null) subject = getLocalizedText(req, "LOGIN_ACCOUNT_APPROVAL_ACCOUNT_DENY"); body = portalConfigService.getProperty("LOGIN_ACCOUNT_APPROVAL_ACCOUNT_DENY_BODY"); if (body == null) body = getLocalizedText(req, "LOGIN_ACCOUNT_APPROVAL_ACCOUNT_DENY"); } MailMessage mailToUser = new MailMessage(); mailToUser.setEmailAddress(user.getEmailAddress()); mailToUser.setSender(portalConfigService.getProperty(PortalConfigService.MAIL_FROM)); mailToUser.setSubject(subject); StringBuffer msgbody = new StringBuffer(); msgbody.append(body).append("\n\n"); msgbody.append(notificationURL); mailToUser.setBody(body.toString()); try { mailService.sendMail(mailToUser); } catch (PortletServiceException e) { log.error("Error: ", e); createErrorMessage(event, this.getLocalizedText(req, "LOGIN_FAILURE_MAIL")); } } setNextState(req, DEFAULT_VIEW_PAGE); } public void approveAccount(ActionFormEvent event) { PortletRequest req = event.getActionRequest(); String msg = this.getLocalizedText(req, "LOGIN_ACCOUNT_APPROVAL_ACCOUNT_CREATED"); doEmailAction(event, msg, true); setNextState(req, "signup/approve.jsp"); } public void denyAccount(ActionFormEvent event) { PortletRequest req = event.getActionRequest(); String msg = this.getLocalizedText(req, "LOGIN_ACCOUNT_APPROVAL_ACCOUNT_DENY"); doEmailAction(event, msg, false); setNextState(req, "signup/deny.jsp"); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -