/*
* $Id$
* $URL$
*/
package org.subethamail.web.action;
import java.util.logging.Level;
import lombok.Getter;
import lombok.Setter;
import lombok.extern.java.Log;
import org.hibernate.validator.constraints.Email;
import org.subethamail.common.NotFoundException;
import org.subethamail.web.Backend;
import org.subethamail.web.action.auth.AuthRequired;
import org.subethamail.web.model.ErrorMapModel;
/**
* Adds a site admin.
*
* @author Jon Stevens
* @author Jeff Schnitzer
*/
@Log
public class AdminAdd extends AuthRequired
{
public class Model extends ErrorMapModel
{
@Getter @Setter
@Email String email;
}
/** */
@Override
public void initialize()
{
this.getCtx().setModel(new Model());
}
/** */
@Override
public void authExecute() throws Exception
{
Model model = (Model)this.getCtx().getModel();
if (log.isLoggable(Level.FINE))
log.log(Level.FINE,"Adding site admin: {0}", model.email);
model.validate();
if (model.getErrors().isEmpty())
{
try
{
Backend.instance().getAdmin().setSiteAdminByEmail(model.email, true);
}
catch (NotFoundException nfe)
{
model.setError("email", "Could not find email address.");
}
}
}
}