package com.intrbiz.bergamot.ui.router.admin;
import java.util.UUID;
import com.intrbiz.balsa.engine.route.Router;
import com.intrbiz.balsa.metadata.WithDataAdapter;
import com.intrbiz.bergamot.config.model.CredentialCfg;
import com.intrbiz.bergamot.data.BergamotDB;
import com.intrbiz.bergamot.metadata.GetBergamotSite;
import com.intrbiz.bergamot.metadata.IsaObjectId;
import com.intrbiz.bergamot.model.Config;
import com.intrbiz.bergamot.model.Site;
import com.intrbiz.bergamot.ui.BergamotApp;
import com.intrbiz.metadata.Get;
import com.intrbiz.metadata.Prefix;
import com.intrbiz.metadata.RequireValidPrincipal;
import com.intrbiz.metadata.Template;
@Prefix("/admin/config")
@Template("layout/main")
@RequireValidPrincipal()
public class ConfigAdminRouter extends Router<BergamotApp>
{
@Get("/id/:id")
@WithDataAdapter(BergamotDB.class)
public void showConfigure(BergamotDB db, @IsaObjectId UUID id, @GetBergamotSite() Site site)
{
require(permission("read.config", id));
Config cfg = var("config", db.getConfig(id));
// special check for credentials
if (cfg.getConfiguration() instanceof CredentialCfg)
require(permission("config.change.apply", id));
encode("admin/config/view");
}
}