From cd44d2070f61bf83df05279800d94ad5eb94fa12 Mon Sep 17 00:00:00 2001 From: j2blake Date: Fri, 23 Sep 2011 18:57:18 +0000 Subject: [PATCH] NIHVIVO-336 Create StartupStatusController, so admins can see the startup status from a link on the site admin page. --- .../UseRestrictedPagesByRoleLevelPolicy.java | 14 +++++--- .../usepages/SeeStartupStatus.java | 11 ++++++ .../admin/StartupStatusController.java | 36 +++++++++++++++++++ .../freemarker/BaseSiteAdminController.java | 7 ++-- 4 files changed, 62 insertions(+), 6 deletions(-) create mode 100644 webapp/src/edu/cornell/mannlib/vitro/webapp/auth/requestedAction/usepages/SeeStartupStatus.java create mode 100644 webapp/src/edu/cornell/mannlib/vitro/webapp/controller/admin/StartupStatusController.java diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/auth/policy/UseRestrictedPagesByRoleLevelPolicy.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/auth/policy/UseRestrictedPagesByRoleLevelPolicy.java index d7dbf4bdd..ce19a47fb 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/auth/policy/UseRestrictedPagesByRoleLevelPolicy.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/auth/policy/UseRestrictedPagesByRoleLevelPolicy.java @@ -25,6 +25,7 @@ import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.usepages.RefreshVis import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.usepages.SeeIndividualEditingPanel; import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.usepages.SeeRevisionInfo; import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.usepages.SeeSiteAdminPage; +import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.usepages.SeeStartupStatus; import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.usepages.SeeVerbosePropertyInformation; import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.usepages.UseAdvancedDataToolsPages; import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.usepages.UseBasicAjaxControllers; @@ -70,6 +71,15 @@ public class UseRestrictedPagesByRoleLevelPolicy implements PolicyIface { } else if (whatToAuth instanceof AccessSpecialDataModels) { result = isAuthorized(whatToAuth, RoleLevel.DB_ADMIN, userRole); + } else if (whatToAuth instanceof RebuildVClassGroupCache) { + result = isAuthorized(whatToAuth, RoleLevel.DB_ADMIN, userRole); + + } else if (whatToAuth instanceof RefreshVisualizationCacheAction) { + result = isAuthorized(whatToAuth, RoleLevel.DB_ADMIN, userRole); + + } else if (whatToAuth instanceof SeeStartupStatus) { + result = isAuthorized(whatToAuth, RoleLevel.DB_ADMIN, userRole); + } else if (whatToAuth instanceof EditOntology) { result = isAuthorized(whatToAuth, RoleLevel.CURATOR, userRole); @@ -112,10 +122,6 @@ public class UseRestrictedPagesByRoleLevelPolicy implements PolicyIface { } else if (whatToAuth instanceof EditOwnAccount) { result = isAuthorized(whatToAuth, RoleLevel.SELF, userRole); - } else if (whatToAuth instanceof RebuildVClassGroupCache) { - result = isAuthorized(whatToAuth, RoleLevel.DB_ADMIN, userRole); - } else if (whatToAuth instanceof RefreshVisualizationCacheAction) { - result = isAuthorized(whatToAuth, RoleLevel.DB_ADMIN, userRole); } else { result = defaultDecision("Unrecognized action"); } diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/auth/requestedAction/usepages/SeeStartupStatus.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/auth/requestedAction/usepages/SeeStartupStatus.java new file mode 100644 index 000000000..296b307e4 --- /dev/null +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/auth/requestedAction/usepages/SeeStartupStatus.java @@ -0,0 +1,11 @@ +/* $This file is distributed under the terms of the license in /doc/license.txt$ */ + +package edu.cornell.mannlib.vitro.webapp.auth.requestedAction.usepages; + +import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.ifaces.RequestedAction; + +/** Should we allow the user to use the Startup Status page? */ +public class SeeStartupStatus extends RequestedAction implements + UsePagesRequestedAction { + // no fields +} diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/admin/StartupStatusController.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/admin/StartupStatusController.java new file mode 100644 index 000000000..f9107feaf --- /dev/null +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/admin/StartupStatusController.java @@ -0,0 +1,36 @@ +/* $This file is distributed under the terms of the license in /doc/license.txt$ */ + +package edu.cornell.mannlib.vitro.webapp.controller.admin; + +import java.util.HashMap; +import java.util.Map; + +import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.Actions; +import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.usepages.SeeStartupStatus; +import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest; +import edu.cornell.mannlib.vitro.webapp.controller.freemarker.FreemarkerHttpServlet; +import edu.cornell.mannlib.vitro.webapp.controller.freemarker.responsevalues.ResponseValues; +import edu.cornell.mannlib.vitro.webapp.controller.freemarker.responsevalues.TemplateResponseValues; +import edu.cornell.mannlib.vitro.webapp.startup.StartupStatus; + +/** + * Display the startup status page. + */ +public class StartupStatusController extends FreemarkerHttpServlet { + + @Override + protected Actions requiredActions(VitroRequest vreq) { + return new Actions(new SeeStartupStatus()); + } + + @Override + protected ResponseValues processRequest(VitroRequest vreq) { + Map body = new HashMap(); + + body.put("title", "Startup Status"); + body.put("status", StartupStatus.getBean(getServletContext())); + + return new TemplateResponseValues("startupStatus-display.ftl", body); + } + +} diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/freemarker/BaseSiteAdminController.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/freemarker/BaseSiteAdminController.java index 9a0698c93..a405b046b 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/freemarker/BaseSiteAdminController.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/freemarker/BaseSiteAdminController.java @@ -21,11 +21,10 @@ import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.usepages.EditOntolo import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.usepages.EditSiteInformation; import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.usepages.ManageMenus; import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.usepages.ManageUserAccounts; -import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.usepages.RefreshVisualizationCacheAction; import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.usepages.SeeSiteAdminPage; +import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.usepages.SeeStartupStatus; import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.usepages.UseAdvancedDataToolsPages; import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.usepages.UseMiscellaneousAdminPages; -import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.usepages.UseMiscellaneousCuratorPages; import edu.cornell.mannlib.vitro.webapp.beans.VClassGroup; import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest; import edu.cornell.mannlib.vitro.webapp.controller.freemarker.UrlBuilder.ParamMap; @@ -139,6 +138,10 @@ public class BaseSiteAdminController extends FreemarkerHttpServlet { "switchToDisplayModel", "true")); } + if (PolicyHelper.isAuthorizedForActions(vreq, new SeeStartupStatus())) { + urls.put("startupStatus", UrlBuilder.getUrl("/startupStatus")); + } + return urls; }