package com.intrbiz.bergamot.ui.router.admin;
import java.io.IOException;
import java.util.UUID;
import com.intrbiz.balsa.engine.route.Router;
import com.intrbiz.balsa.metadata.WithDataAdapter;
import com.intrbiz.bergamot.config.model.ContactCfg;
import com.intrbiz.bergamot.data.BergamotDB;
import com.intrbiz.bergamot.metadata.GetBergamotSite;
import com.intrbiz.bergamot.metadata.IsaObjectId;
import com.intrbiz.bergamot.model.Site;
import com.intrbiz.bergamot.ui.BergamotApp;
import com.intrbiz.configuration.Configuration;
import com.intrbiz.metadata.Any;
import com.intrbiz.metadata.Param;
import com.intrbiz.metadata.Prefix;
import com.intrbiz.metadata.RequirePermission;
import com.intrbiz.metadata.RequireValidPrincipal;
import com.intrbiz.metadata.Template;
@Prefix("/admin/contact")
@Template("layout/main")
@RequireValidPrincipal()
@RequirePermission("ui.admin")
public class ContactAdminRouter extends Router<BergamotApp>
{
@Any("/")
@WithDataAdapter(BergamotDB.class)
public void index(BergamotDB db, @GetBergamotSite() Site site)
{
model("contacts", db.listContacts(site.getId()));
model("contact_templates", db.listConfigTemplates(site.getId(), Configuration.getRootElement(ContactCfg.class)));
encode("admin/contact/index");
}
@Any("/lock")
@WithDataAdapter(BergamotDB.class)
public void lock(BergamotDB db, @Param("id") @IsaObjectId UUID contactId) throws IOException
{
action("lock-password", db.getContact(contactId));
redirect(path("/admin/contact/"));
}
@Any("/unlock")
@WithDataAdapter(BergamotDB.class)
public void unlock(BergamotDB db, @Param("id") @IsaObjectId UUID contactId) throws IOException
{
action("unlock-password", db.getContact(contactId));
redirect(path("/admin/contact/"));
}
@Any("/reset")
@WithDataAdapter(BergamotDB.class)
public void reset(BergamotDB db, @Param("id") @IsaObjectId UUID contactId) throws IOException
{
action("reset-password", db.getContact(contactId));
redirect(path("/admin/contact/"));
}
}