Search in sources :

Example 1 with ChangePasswordFormValidator

use of org.motechproject.server.web.validator.ChangePasswordFormValidator in project motech by motech.

the class ResetController method changePassword.

@RequestMapping(value = "/changepassword", method = RequestMethod.POST)
@ResponseBody
public ChangePasswordViewData changePassword(@RequestBody ChangePasswordForm form) {
    ChangePasswordViewData viewData = new ChangePasswordViewData(form);
    ChangePasswordFormValidator validator = new ChangePasswordFormValidator();
    List<String> errors = validator.validate(form);
    if (!errors.isEmpty()) {
        viewData.setErrors(errors);
    } else {
        try {
            MotechUserProfile profile = motechUserService.changeExpiredPassword(form.getUsername(), form.getOldPassword(), form.getPassword());
            if (profile != null) {
                viewData.setChangeSucceded(true);
            } else {
                viewData.getErrors().add("server.reset.wrongPassword");
            }
        } catch (PasswordValidatorException e) {
            viewData.getErrors().add(e.getMessage());
        } catch (LockedException e) {
            viewData.setUserBlocked(true);
        }
    }
    viewData.getChangePasswordForm().resetPasswordsAndUserName();
    return viewData;
}
Also used : ChangePasswordFormValidator(org.motechproject.server.web.validator.ChangePasswordFormValidator) MotechUserProfile(org.motechproject.security.domain.MotechUserProfile) LockedException(org.springframework.security.authentication.LockedException) PasswordValidatorException(org.motechproject.security.exception.PasswordValidatorException) ChangePasswordViewData(org.motechproject.server.web.dto.ChangePasswordViewData) RequestMapping(org.springframework.web.bind.annotation.RequestMapping) ResponseBody(org.springframework.web.bind.annotation.ResponseBody)

Aggregations

MotechUserProfile (org.motechproject.security.domain.MotechUserProfile)1 PasswordValidatorException (org.motechproject.security.exception.PasswordValidatorException)1 ChangePasswordViewData (org.motechproject.server.web.dto.ChangePasswordViewData)1 ChangePasswordFormValidator (org.motechproject.server.web.validator.ChangePasswordFormValidator)1 LockedException (org.springframework.security.authentication.LockedException)1 RequestMapping (org.springframework.web.bind.annotation.RequestMapping)1 ResponseBody (org.springframework.web.bind.annotation.ResponseBody)1