Example usage for com.liferay.portal.kernel.exception UserReminderQueryException UserReminderQueryException

List of usage examples for com.liferay.portal.kernel.exception UserReminderQueryException UserReminderQueryException

Introduction

In this page you can find the example usage for com.liferay.portal.kernel.exception UserReminderQueryException UserReminderQueryException.

Prototype

public UserReminderQueryException(Throwable cause) 

Source Link

Usage

From source file:com.liferay.login.web.internal.portlet.action.ForgotPasswordMVCActionCommand.java

License:Open Source License

protected void sendPassword(ActionRequest actionRequest, ActionResponse actionResponse) throws Exception {

    ThemeDisplay themeDisplay = (ThemeDisplay) actionRequest.getAttribute(WebKeys.THEME_DISPLAY);

    Company company = themeDisplay.getCompany();

    User user = getUser(actionRequest);//from   ww  w.  j a va  2 s  .  c  o  m

    if (PropsValues.USERS_REMINDER_QUERIES_ENABLED) {
        if (PropsValues.USERS_REMINDER_QUERIES_REQUIRED && !user.hasReminderQuery()) {

            throw new RequiredReminderQueryException(
                    "No reminder query or answer is defined for user " + user.getUserId());
        }

        String answer = ParamUtil.getString(actionRequest, "answer");

        String reminderQueryAnswer = user.getReminderQueryAnswer();

        if (!reminderQueryAnswer.equals(answer)) {
            throw new UserReminderQueryException("Reminder query answer does not match answer");
        }
    }

    PortletPreferences portletPreferences = actionRequest.getPreferences();

    String languageId = LanguageUtil.getLanguageId(actionRequest);

    String emailFromName = portletPreferences.getValue("emailFromName", null);
    String emailFromAddress = portletPreferences.getValue("emailFromAddress", null);
    String emailToAddress = user.getEmailAddress();

    String emailParam = "emailPasswordSent";

    if (company.isSendPasswordResetLink()) {
        emailParam = "emailPasswordReset";
    }

    String subject = portletPreferences.getValue(emailParam + "Subject_" + languageId, null);
    String body = portletPreferences.getValue(emailParam + "Body_" + languageId, null);

    LoginUtil.sendPassword(actionRequest, emailFromName, emailFromAddress, emailToAddress, subject, body);

    HttpServletRequest request = _portal.getHttpServletRequest(actionRequest);

    SessionMessages.add(request, "passwordSent");

    sendRedirect(actionRequest, actionResponse, null);
}