/*
* $Id$
* $URL$
*/
package org.subethamail.web.action;
import lombok.Getter;
import lombok.Setter;
import lombok.extern.java.Log;
import org.hibernate.validator.constraints.Length;
import org.subethamail.entity.i.Validator;
import org.subethamail.web.Backend;
import org.subethamail.web.action.auth.AuthRequired;
import org.subethamail.web.model.ErrorMapModel;
/**
* Changes a user's password.
*
* @author Jon Stevens
* @author Jeff Schnitzer
*/
@Log
public class UserChangePassword extends AuthRequired
{
/** */
public static class Model extends ErrorMapModel
{
/** */
@Length(min=Validator.MIN_PERSON_PASSWORD, max=Validator.MAX_PERSON_PASSWORD)
@Getter @Setter String password = "";
/** Don't need to explicitly validate confirm because it must match password */
@Getter @Setter String confirm = "";
}
/** */
public void initialize()
{
this.getCtx().setModel(new Model());
}
/** */
public void authExecute() throws Exception
{
Model model = (Model)this.getCtx().getModel();
// Basic validation
model.validate();
if (!model.password.equals(model.confirm))
model.setError("password", "The passwords do not match.");
if (model.getErrors().isEmpty())
Backend.instance().getAccountMgr().setPassword(model.password);
}
}