/*
* $Id$
* $URL$
*/
package org.subethamail.web.action;
import lombok.Getter;
import lombok.Setter;
import org.hibernate.validator.constraints.Length;
import org.subethamail.core.acct.i.AuthCredentials;
import org.subethamail.core.acct.i.BadTokenException;
import org.subethamail.web.Backend;
import org.subethamail.web.action.auth.AuthAction;
import org.subethamail.web.model.ErrorMapModel;
/**
* Confirms the adding of an email address to an existing account.
*
* @author Jeff Schnitzer
*/
public class EmailAddConfirm extends AuthAction
{
public static class Model extends ErrorMapModel
{
/** */
@Length(min=1)
@Getter @Setter String token = "";
}
/** */
public void initialize()
{
this.getCtx().setModel(new Model());
}
/** */
public void execute() throws Exception
{
Model model = (Model)this.getCtx().getModel();
// Basic validation
model.validate();
// Maybe we can proceed?
if (model.getErrors().isEmpty())
{
try
{
AuthCredentials creds = Backend.instance().getAccountMgr().addEmail(model.token);
if (!this.isLoggedIn())
this.login(creds.getEmail(), creds.getPassword());
}
catch (BadTokenException ex)
{
model.setError("badtoken", "The token is invalid.");
}
}
}
}