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 ce19a47fb..2e7872acc 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 @@ -19,6 +19,7 @@ import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.usepages.EditOwnAcc 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.ManagePortals; +import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.usepages.ManageSearchIndex; import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.usepages.ManageTabs; import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.usepages.ManageUserAccounts; import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.usepages.RefreshVisualizationCacheAction; @@ -65,6 +66,9 @@ public class UseRestrictedPagesByRoleLevelPolicy implements PolicyIface { } else if (whatToAuth instanceof ManageMenus) { result = isAuthorized(whatToAuth, RoleLevel.DB_ADMIN, userRole); + } else if (whatToAuth instanceof ManageSearchIndex) { + result = isAuthorized(whatToAuth, RoleLevel.DB_ADMIN, userRole); + } else if (whatToAuth instanceof UseMiscellaneousAdminPages) { result = isAuthorized(whatToAuth, RoleLevel.DB_ADMIN, userRole); diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/auth/requestedAction/usepages/ManageSearchIndex.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/auth/requestedAction/usepages/ManageSearchIndex.java new file mode 100644 index 000000000..5d1d7678b --- /dev/null +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/auth/requestedAction/usepages/ManageSearchIndex.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 manipulate the search index? */ +public class ManageSearchIndex extends RequestedAction implements + UsePagesRequestedAction { + // no fields +} 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 3e5e4fd19..3b423a57b 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 @@ -76,11 +76,12 @@ public class BaseSiteAdminController extends FreemarkerHttpServlet { urls.put("recomputeInferences", UrlBuilder.getUrl("/RecomputeInferences")); urls.put("rebuildClassGroupCache", UrlBuilder.getUrl("/browse?clearcache=1")); - - if (PolicyHelper.isAuthorizedForActions(vreq, IndexController.REQUIRED_ACTIONS)) { - urls.put("rebuildSearchIndex", UrlBuilder.getUrl("/SearchIndex")); - } } + + if (PolicyHelper.isAuthorizedForActions(vreq, IndexController.REQUIRED_ACTIONS)) { + urls.put("rebuildSearchIndex", UrlBuilder.getUrl("/SearchIndex")); + } + return urls; } diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/search/controller/IndexController.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/search/controller/IndexController.java index 69faa1ff6..b84eefef8 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/search/controller/IndexController.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/search/controller/IndexController.java @@ -9,8 +9,7 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.Actions; -import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.usepages.SeeSiteAdminPage; -import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.usepages.UseMiscellaneousAdminPages; +import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.usepages.ManageSearchIndex; 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.ExceptionResponseValues; @@ -34,11 +33,11 @@ public class IndexController extends FreemarkerHttpServlet { private static final Log log = LogFactory.getLog(IndexController.class); - public static final Actions REQUIRED_ACTIONS = new Actions(new UseMiscellaneousAdminPages()); + public static final Actions REQUIRED_ACTIONS = new Actions(new ManageSearchIndex()); @Override protected Actions requiredActions(VitroRequest vreq) { - return new Actions(new UseMiscellaneousAdminPages()); + return REQUIRED_ACTIONS; } @Override