From 44f4189767b09096188f2fc2334db1411cba9383 Mon Sep 17 00:00:00 2001 From: j2blake Date: Wed, 11 May 2011 19:24:00 +0000 Subject: [PATCH] NIHVIVO-1420 Get rid of VitroRequestPrep.isSelfEditing() and use other, more meaningful methods instead. --- .../UseRestrictedPagesByRoleLevelPolicy.java | 4 +++ .../usepages/UseMiscellaneousEditorPages.java | 11 +++++++ .../webapp/edit/n3editing/EditN3Utils.java | 29 +++++++++--------- webapp/web/edit/dashboardPropsList.jsp | 30 ++++++++++++------- 4 files changed, 50 insertions(+), 24 deletions(-) create mode 100644 webapp/src/edu/cornell/mannlib/vitro/webapp/auth/requestedAction/usepages/UseMiscellaneousEditorPages.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 09ca36896..6cdde2ce3 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 @@ -27,6 +27,7 @@ import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.usepages.UseAdvance import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.usepages.UseBasicAjaxControllers; 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.auth.requestedAction.usepages.UseMiscellaneousEditorPages; import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.usepages.UseMiscellaneousPages; import edu.cornell.mannlib.vitro.webapp.beans.BaseResourceBean.RoleLevel; @@ -93,6 +94,9 @@ public class UseRestrictedPagesByRoleLevelPolicy implements PolicyIface { } else if (whatToAuth instanceof SeeIndividualEditingPanel) { result = isAuthorized(whatToAuth, RoleLevel.EDITOR, userRole); + } else if (whatToAuth instanceof UseMiscellaneousEditorPages) { + result = isAuthorized(whatToAuth, RoleLevel.EDITOR, userRole); + } else if (whatToAuth instanceof UseBasicAjaxControllers) { result = isAuthorized(whatToAuth, RoleLevel.SELF, userRole); diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/auth/requestedAction/usepages/UseMiscellaneousEditorPages.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/auth/requestedAction/usepages/UseMiscellaneousEditorPages.java new file mode 100644 index 000000000..6b03bc755 --- /dev/null +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/auth/requestedAction/usepages/UseMiscellaneousEditorPages.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 odd-lots pages that were designed for Editors, Curators or DBAs? */ +public class UseMiscellaneousEditorPages extends RequestedAction implements + UsePagesRequestedAction { + // no fields +} diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/edit/n3editing/EditN3Utils.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/edit/n3editing/EditN3Utils.java index 64efba566..9733c809c 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/edit/n3editing/EditN3Utils.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/edit/n3editing/EditN3Utils.java @@ -10,23 +10,24 @@ import edu.cornell.mannlib.vitro.webapp.auth.identifier.IdentifierBundle; import edu.cornell.mannlib.vitro.webapp.auth.identifier.RequestIdentifiers; import edu.cornell.mannlib.vitro.webapp.auth.identifier.RoleIdentifier; import edu.cornell.mannlib.vitro.webapp.auth.identifier.SelfEditingIdentifierFactory; -import edu.cornell.mannlib.vitro.webapp.filters.VitroRequestPrep; public class EditN3Utils { - public static String getEditorUri(HttpServletRequest request){ - String editorUri = "Unknown N3 Editor"; - boolean selfEditing = VitroRequestPrep.isSelfEditing(request); - IdentifierBundle ids = - RequestIdentifiers.getIdBundleForRequest(request); - - if( selfEditing ) - editorUri = SelfEditingIdentifierFactory.getSelfEditingUri(ids); - else - editorUri = RoleIdentifier.getUri(ids); - - return editorUri; - } + public static String getEditorUri(HttpServletRequest request) { + IdentifierBundle ids = RequestIdentifiers.getIdBundleForRequest(request); + + String editorUri = SelfEditingIdentifierFactory.getSelfEditingUri(ids); + + if (editorUri == null) { + editorUri = RoleIdentifier.getUri(ids); + } + + if (editorUri == null) { + editorUri = "Unknown N3 Editor"; + } + + return editorUri; + } /** * Strips from a string any characters that are not valid in XML 1.0 diff --git a/webapp/web/edit/dashboardPropsList.jsp b/webapp/web/edit/dashboardPropsList.jsp index 9a51eaf6a..f15dfb74c 100644 --- a/webapp/web/edit/dashboardPropsList.jsp +++ b/webapp/web/edit/dashboardPropsList.jsp @@ -1,19 +1,23 @@ <%-- $This file is distributed under the terms of the license in /doc/license.txt$ --%> <%@ taglib uri="http://java.sun.com/jstl/core" prefix="c" %> -<%@ page import="edu.cornell.mannlib.vitro.webapp.beans.Individual" %> -<%@ page import="edu.cornell.mannlib.vitro.webapp.controller.VitroRequest" %> -<%@ page import="edu.cornell.mannlib.vitro.webapp.dao.WebappDaoFactory" %> -<%@ page import="edu.cornell.mannlib.vitro.webapp.beans.Property" %> -<%@ page import="edu.cornell.mannlib.vitro.webapp.beans.PropertyGroup" %> -<%@ page import="edu.cornell.mannlib.vitro.webapp.beans.ObjectProperty" %> +<%@ page import="edu.cornell.mannlib.vitro.webapp.auth.identifier.IdentifierBundle" %> +<%@ page import="edu.cornell.mannlib.vitro.webapp.auth.identifier.RequestIdentifiers" %> +<%@ page import="edu.cornell.mannlib.vitro.webapp.auth.identifier.SelfEditingIdentifierFactory" %> +<%@ page import="edu.cornell.mannlib.vitro.webapp.auth.policy.PolicyHelper" %> +<%@ page import="edu.cornell.mannlib.vitro.webapp.auth.requestedAction.usepages.UseMiscellaneousEditorPages" %> <%@ page import="edu.cornell.mannlib.vitro.webapp.beans.DataProperty" %> <%@ page import="edu.cornell.mannlib.vitro.webapp.beans.KeywordProperty" %> +<%@ page import="edu.cornell.mannlib.vitro.webapp.beans.Individual" %> +<%@ page import="edu.cornell.mannlib.vitro.webapp.beans.ObjectProperty" %> +<%@ page import="edu.cornell.mannlib.vitro.webapp.beans.Property" %> +<%@ page import="edu.cornell.mannlib.vitro.webapp.beans.PropertyGroup" %> +<%@ page import="edu.cornell.mannlib.vitro.webapp.controller.VitroRequest" %> <%@ page import="edu.cornell.mannlib.vitro.webapp.dao.PropertyGroupDao" %> +<%@ page import="edu.cornell.mannlib.vitro.webapp.dao.WebappDaoFactory" %> <%@ page import="java.util.ArrayList" %> <%@ page import="org.apache.commons.logging.Log" %> <%@ page import="org.apache.commons.logging.LogFactory" %> -<%@ page import="edu.cornell.mannlib.vitro.webapp.filters.VitroRequestPrep" %> <%@ page import="edu.cornell.mannlib.vedit.beans.LoginStatusBean" %> <%! public static Log log = LogFactory.getLog("edu.cornell.mannlib.vitro.webapp.jsp.edit.dashboardPropsList.jsp"); @@ -21,18 +25,24 @@ public static Log log = LogFactory.getLog("edu.cornell.mannlib.vitro.webapp.jsp. <% boolean showSelfEdits=false; boolean showCuratorEdits=false; -if( VitroRequestPrep.isSelfEditing(request) ) { + +IdentifierBundle ids = RequestIdentifiers.getIdBundleForRequest(request); +String editorUri = SelfEditingIdentifierFactory.getSelfEditingUri(ids); +if (editorUri != null) { showSelfEdits=true; log.debug("self editing active"); } else { log.debug("self editing inactive"); } -if (LoginStatusBean.getBean(request).isLoggedInAtLeast(LoginStatusBean.EDITOR)) { + +if (PolicyHelper.isAuthorizedForActions(request, new UseMiscellaneousEditorPages())) { showCuratorEdits=true; log.debug("curator editing active"); } else { log.debug("curator editing inactive"); -}%> +} +%> + <%-- just moving this into page scope for easy use --%> <% log.debug("Starting dashboardPropsList.jsp");