From b731c17f6a1ea742bdc41066a69e568355eebe31 Mon Sep 17 00:00:00 2001 From: j2blake Date: Fri, 17 Feb 2012 17:56:41 +0000 Subject: [PATCH] NIHVIVO-3542 Use a boolean flag to indicate whether the page is editable, instead of the presence or absence of an EditingPolicyHelper. --- .../edit/EditConfigurationTemplateModel.java | 10 +---- .../BaseIndividualTemplateModel.java | 12 ++---- .../CollatedObjectPropertyTemplateModel.java | 10 ++--- .../DataPropertyStatementTemplateModel.java | 8 ++-- .../individual/DataPropertyTemplateModel.java | 16 ++++---- .../individual/EditingPolicyHelper.java | 36 ------------------ .../individual/GroupedPropertyList.java | 6 +-- .../NameStatementTemplateModel.java | 4 +- .../ObjectPropertyStatementTemplateModel.java | 21 +++++----- .../ObjectPropertyTemplateModel.java | 38 +++++++++---------- .../PropertyGroupTemplateModel.java | 8 ++-- .../individual/PropertyTemplateModel.java | 2 +- ...UncollatedObjectPropertyTemplateModel.java | 8 ++-- 13 files changed, 62 insertions(+), 117 deletions(-) delete mode 100644 webapp/src/edu/cornell/mannlib/vitro/webapp/web/templatemodels/individual/EditingPolicyHelper.java diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/web/templatemodels/edit/EditConfigurationTemplateModel.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/web/templatemodels/edit/EditConfigurationTemplateModel.java index bda888656..bfea72c7d 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/web/templatemodels/edit/EditConfigurationTemplateModel.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/web/templatemodels/edit/EditConfigurationTemplateModel.java @@ -37,13 +37,8 @@ import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.FieldVTwo; import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.SelectListGeneratorVTwo; import edu.cornell.mannlib.vitro.webapp.web.beanswrappers.ReadOnlyBeansWrapper; import edu.cornell.mannlib.vitro.webapp.web.templatemodels.BaseTemplateModel; -import edu.cornell.mannlib.vitro.webapp.web.templatemodels.individual.DataPropertyStatementTemplateModel; -import edu.cornell.mannlib.vitro.webapp.web.templatemodels.individual.EditingPolicyHelper; import edu.cornell.mannlib.vitro.webapp.web.templatemodels.individual.ObjectPropertyStatementTemplateModel; import edu.cornell.mannlib.vitro.webapp.web.templatemodels.individual.ObjectPropertyTemplateModel; -import edu.cornell.mannlib.vitro.webapp.web.templatemodels.individual.PropertyStatementTemplateModel; -import freemarker.ext.beans.BeansWrapper; -import freemarker.template.DefaultObjectWrapper; import freemarker.template.TemplateModel; import freemarker.template.TemplateModelException; @@ -455,7 +450,7 @@ public class EditConfigurationTemplateModel extends BaseTemplateModel { predicateUri, objectKey, statementDisplay, - null, null, vreq); + false, null, vreq); ReadOnlyBeansWrapper wrapper = new ReadOnlyBeansWrapper(); return wrapper.wrap(osm); } @@ -466,8 +461,7 @@ public class EditConfigurationTemplateModel extends BaseTemplateModel { ObjectProperty op = EditConfigurationUtils.getObjectProperty(vreq); List propList = new ArrayList(); propList.add(op); - EditingPolicyHelper policyHelper = new EditingPolicyHelper(vreq); - ObjectPropertyTemplateModel otm = ObjectPropertyTemplateModel.getObjectPropertyTemplateModel(op, subject, vreq, policyHelper,propList); + ObjectPropertyTemplateModel otm = ObjectPropertyTemplateModel.getObjectPropertyTemplateModel(op, subject, vreq, true, propList); ReadOnlyBeansWrapper wrapper = new ReadOnlyBeansWrapper(); return wrapper.wrap(otm); } diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/web/templatemodels/individual/BaseIndividualTemplateModel.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/web/templatemodels/individual/BaseIndividualTemplateModel.java index 0d9d63f76..de7e00178 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/web/templatemodels/individual/BaseIndividualTemplateModel.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/web/templatemodels/individual/BaseIndividualTemplateModel.java @@ -37,21 +37,17 @@ public abstract class BaseIndividualTemplateModel extends BaseTemplateModel { protected final Individual individual; protected final LoginStatusBean loginStatusBean; protected final VitroRequest vreq; + private final boolean editing; protected GroupedPropertyList propertyList; - private EditingPolicyHelper policyHelper; - public BaseIndividualTemplateModel(Individual individual, VitroRequest vreq) { this.vreq = vreq; this.individual = individual; this.loginStatusBean = LoginStatusBean.getBean(vreq); // Needed for getting portal-sensitive urls. Remove if multi-portal support is removed. - // If editing, create a helper object to check requested actions against policies - if (isEditable()) { - policyHelper = new EditingPolicyHelper(vreq); - } + this.editing = isEditable(); } protected boolean isVClass(String vClassUri) { @@ -106,7 +102,7 @@ public abstract class BaseIndividualTemplateModel extends BaseTemplateModel { public GroupedPropertyList getPropertyList() { if (propertyList == null) { - propertyList = new GroupedPropertyList(individual, vreq, policyHelper); + propertyList = new GroupedPropertyList(individual, vreq, editing); } return propertyList; } @@ -135,7 +131,7 @@ public abstract class BaseIndividualTemplateModel extends BaseTemplateModel { * are handled like ordinary ObjectProperty instances. */ public NameStatementTemplateModel getNameStatement() { - return new NameStatementTemplateModel(getUri(), vreq, policyHelper); + return new NameStatementTemplateModel(getUri(), vreq, editing); } /* These methods simply forward to the methods of the wrapped individual. It would be desirable to diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/web/templatemodels/individual/CollatedObjectPropertyTemplateModel.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/web/templatemodels/individual/CollatedObjectPropertyTemplateModel.java index 6225d846e..5d10bafce 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/web/templatemodels/individual/CollatedObjectPropertyTemplateModel.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/web/templatemodels/individual/CollatedObjectPropertyTemplateModel.java @@ -39,11 +39,11 @@ public class CollatedObjectPropertyTemplateModel extends ObjectPropertyTemplateM private final VClassDao vclassDao; CollatedObjectPropertyTemplateModel(ObjectProperty op, Individual subject, - VitroRequest vreq, EditingPolicyHelper policyHelper, + VitroRequest vreq, boolean editing, List populatedObjectPropertyList) throws InvalidConfigurationException { - super(op, subject, vreq, policyHelper); + super(op, subject, vreq, editing); vclassDao = vreq.getWebappDaoFactory().getVClassDao(); @@ -57,7 +57,7 @@ public class CollatedObjectPropertyTemplateModel extends ObjectPropertyTemplateM postprocess(statementData); /* Collate the data */ - subclasses = collate(subjectUri, propertyUri, statementData, policyHelper); + subclasses = collate(subjectUri, propertyUri, statementData, editing); for (SubclassTemplateModel subclass : subclasses) { List list = subclass.getStatements(); @@ -188,7 +188,7 @@ public class CollatedObjectPropertyTemplateModel extends ObjectPropertyTemplateM // Collate the statements by subclass. private List collate(String subjectUri, String propertyUri, - List> statementData, EditingPolicyHelper policyHelper) { + List> statementData, boolean editing) { String objectKey = getObjectKey(); @@ -217,7 +217,7 @@ public class CollatedObjectPropertyTemplateModel extends ObjectPropertyTemplateM } listForThisSubclass.add(new ObjectPropertyStatementTemplateModel(subjectUri, - propertyUri, objectKey, map, policyHelper, getTemplateName(), vreq)); + propertyUri, objectKey, map, editing, getTemplateName(), vreq)); } diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/web/templatemodels/individual/DataPropertyStatementTemplateModel.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/web/templatemodels/individual/DataPropertyStatementTemplateModel.java index 0002ceec2..46d29bb1c 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/web/templatemodels/individual/DataPropertyStatementTemplateModel.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/web/templatemodels/individual/DataPropertyStatementTemplateModel.java @@ -28,13 +28,13 @@ public class DataPropertyStatementTemplateModel extends PropertyStatementTemplat //Extended to include vitro request to check for special parameters public DataPropertyStatementTemplateModel(String subjectUri, String propertyUri, - Literal literal, EditingPolicyHelper policyHelper, VitroRequest vreq) { + Literal literal, boolean editing, VitroRequest vreq) { super(subjectUri, propertyUri, vreq); //attempt to strip any odd HTML this.value = cleanTextForDisplay( literal.getLexicalForm() ); - setEditUrls(literal, policyHelper, propertyUri); + setEditUrls(literal, editing, propertyUri); } /* @@ -51,9 +51,9 @@ public class DataPropertyStatementTemplateModel extends PropertyStatementTemplat this.value = value; } - protected void setEditUrls(Literal value, EditingPolicyHelper policyHelper, String propertyUri) { + protected void setEditUrls(Literal value, boolean editing, String propertyUri) { - if (policyHelper == null) { + if ( ! editing ) { return; } diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/web/templatemodels/individual/DataPropertyTemplateModel.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/web/templatemodels/individual/DataPropertyTemplateModel.java index fb047ff30..57fac3899 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/web/templatemodels/individual/DataPropertyTemplateModel.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/web/templatemodels/individual/DataPropertyTemplateModel.java @@ -34,9 +34,9 @@ public class DataPropertyTemplateModel extends PropertyTemplateModel { private final List statements; DataPropertyTemplateModel(DataProperty dp, Individual subject, VitroRequest vreq, - EditingPolicyHelper policyHelper, List populatedDataPropertyList) { + boolean editing, List populatedDataPropertyList) { - super(dp, subject, policyHelper, vreq); + super(dp, subject, vreq); setName(dp.getPublicName()); statements = new ArrayList(); @@ -47,21 +47,19 @@ public class DataPropertyTemplateModel extends PropertyTemplateModel { DataPropertyStatementDao dpDao = vreq.getWebappDaoFactory().getDataPropertyStatementDao(); List values = dpDao.getDataPropertyValuesForIndividualByProperty(subject, dp); for (Literal value : values) { - statements.add(new DataPropertyStatementTemplateModel(subjectUri, propertyUri, value, policyHelper, vreq)); + statements.add(new DataPropertyStatementTemplateModel(subjectUri, propertyUri, value, editing, vreq)); } } else { log.debug("Data property " + getUri() + " is unpopulated."); } - setAddUrl(policyHelper, dp); + if ( editing ) { + setAddUrl(dp); + } } - protected void setAddUrl(EditingPolicyHelper policyHelper, Property property) { - - if (policyHelper == null) { - return; - } + protected void setAddUrl(Property property) { DataProperty dp = (DataProperty) property; // NIHVIVO-2790 vitro:moniker now included in the display, but don't allow new statements diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/web/templatemodels/individual/EditingPolicyHelper.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/web/templatemodels/individual/EditingPolicyHelper.java deleted file mode 100644 index 203b5a41b..000000000 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/web/templatemodels/individual/EditingPolicyHelper.java +++ /dev/null @@ -1,36 +0,0 @@ -/* $This file is distributed under the terms of the license in /doc/license.txt$ */ - -package edu.cornell.mannlib.vitro.webapp.web.templatemodels.individual; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; - -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.policy.RequestPolicyList; -import edu.cornell.mannlib.vitro.webapp.auth.policy.ifaces.Authorization; -import edu.cornell.mannlib.vitro.webapp.auth.policy.ifaces.PolicyDecision; -import edu.cornell.mannlib.vitro.webapp.auth.policy.ifaces.PolicyIface; -import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.ifaces.RequestedAction; -import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest; - -public class EditingPolicyHelper { - private static final Log log = LogFactory.getLog(EditingPolicyHelper.class); - - private final PolicyIface policy; - private final IdentifierBundle ids; - - public EditingPolicyHelper(VitroRequest vreq) { - this.policy = RequestPolicyList.getPolicies(vreq); - this.ids = RequestIdentifiers.getIdBundleForRequest(vreq); - } - - protected boolean isAuthorizedAction(RequestedAction action) { - PolicyDecision decision = getPolicyDecision(action); - return (decision != null && decision.getAuthorized() == Authorization.AUTHORIZED); - } - - private PolicyDecision getPolicyDecision(RequestedAction action) { - return policy.isAuthorized(ids, action); - } -} diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/web/templatemodels/individual/GroupedPropertyList.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/web/templatemodels/individual/GroupedPropertyList.java index cf007f043..61bbe0e6e 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/web/templatemodels/individual/GroupedPropertyList.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/web/templatemodels/individual/GroupedPropertyList.java @@ -56,13 +56,11 @@ public class GroupedPropertyList extends BaseTemplateModel { private List groups; GroupedPropertyList(Individual subject, VitroRequest vreq, - EditingPolicyHelper policyHelper) { + boolean editing) { this.vreq = vreq; this.subject = subject; this.wdf = vreq.getWebappDaoFactory(); - boolean editing = policyHelper != null; - // Create the property list for the subject. The properties will be put // into groups later. List propertyList = new ArrayList(); @@ -107,7 +105,7 @@ public class GroupedPropertyList extends BaseTemplateModel { propertyGroupList.size()); for (PropertyGroup propertyGroup : propertyGroupList) { groups.add(new PropertyGroupTemplateModel(vreq, propertyGroup, - subject, policyHelper, populatedDataPropertyList, + subject, editing, populatedDataPropertyList, populatedObjectPropertyList)); } diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/web/templatemodels/individual/NameStatementTemplateModel.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/web/templatemodels/individual/NameStatementTemplateModel.java index 2e76d474b..fd8d37f78 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/web/templatemodels/individual/NameStatementTemplateModel.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/web/templatemodels/individual/NameStatementTemplateModel.java @@ -22,7 +22,7 @@ public class NameStatementTemplateModel extends * This method handles the special case where we are creating a DataPropertyStatementTemplateModel outside the GroupedPropertyList. * Specifically, it allows rdfs:label to be treated like a data property statement and thus have editing links. */ - NameStatementTemplateModel(String subjectUri, VitroRequest vreq, EditingPolicyHelper policyHelper) { + NameStatementTemplateModel(String subjectUri, VitroRequest vreq, boolean editing) { super(subjectUri, VitroVocabulary.LABEL, vreq); WebappDaoFactory wdf = vreq.getWebappDaoFactory(); @@ -35,7 +35,7 @@ public class NameStatementTemplateModel extends if (literal != null) { value = cleanTextForDisplay( literal.getLexicalForm() ); - setEditUrls(literal, policyHelper, propertyUri); + setEditUrls(literal, editing, propertyUri); } else { // If the individual has no rdfs:label, use the local name. It will not be editable. (This replicates previous behavior; // perhaps we would want to allow a label to be added. But such individuals do not usually have their profiles viewed or diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/web/templatemodels/individual/ObjectPropertyStatementTemplateModel.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/web/templatemodels/individual/ObjectPropertyStatementTemplateModel.java index bde88c1b0..5c7d778ea 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/web/templatemodels/individual/ObjectPropertyStatementTemplateModel.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/web/templatemodels/individual/ObjectPropertyStatementTemplateModel.java @@ -31,7 +31,7 @@ public class ObjectPropertyStatementTemplateModel extends PropertyStatementTempl private final String templateName; private final String objectKey; public ObjectPropertyStatementTemplateModel(String subjectUri, String propertyUri, String objectKey, - Map data, EditingPolicyHelper policyHelper, String templateName, VitroRequest vreq) { + Map data, boolean editing, String templateName, VitroRequest vreq) { super(subjectUri, propertyUri, vreq); this.data = data; @@ -39,20 +39,21 @@ public class ObjectPropertyStatementTemplateModel extends PropertyStatementTempl this.templateName = templateName; //to keep track of later this.objectKey = objectKey; - setEditUrls(policyHelper); + + if ( editing ) { + setEditUrls(); + } } - protected void setEditUrls(EditingPolicyHelper policyHelper) { - // If the policyHelper is non-null, we are in edit mode, so create the list of editing permissions. + protected void setEditUrls() { + // If we are in edit mode, create the list of editing permissions. // We do this now rather than in getEditUrl() and getDeleteUrl(), because getEditUrl() also needs to know // whether a delete is allowed. - if (policyHelper != null) { - ObjectPropertyStatement ops = new ObjectPropertyStatementImpl(subjectUri, propertyUri, objectUri); + ObjectPropertyStatement ops = new ObjectPropertyStatementImpl(subjectUri, propertyUri, objectUri); - // Do delete url first, since used in building edit url - setDeleteUrl(); - setEditUrl(ops); - } + // Do delete url first, since used in building edit url + setDeleteUrl(); + setEditUrl(ops); } protected void setDeleteUrl() { diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/web/templatemodels/individual/ObjectPropertyTemplateModel.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/web/templatemodels/individual/ObjectPropertyTemplateModel.java index 5b782a746..48324a171 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/web/templatemodels/individual/ObjectPropertyTemplateModel.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/web/templatemodels/individual/ObjectPropertyTemplateModel.java @@ -90,15 +90,15 @@ public abstract class ObjectPropertyTemplateModel extends PropertyTemplateModel private String objectKey; ObjectPropertyTemplateModel(ObjectProperty op, Individual subject, VitroRequest vreq, - EditingPolicyHelper policyHelper) + boolean editing) throws InvalidConfigurationException { - super(op, subject, policyHelper, vreq); + super(op, subject, vreq); setName(op.getDomainPublic()); // Get the config for this object property try { - config = new PropertyListConfig(op, policyHelper); + config = new PropertyListConfig(op, editing); } catch (InvalidConfigurationException e) { throw e; } catch (Exception e) { @@ -107,14 +107,12 @@ public abstract class ObjectPropertyTemplateModel extends PropertyTemplateModel objectKey = getQueryObjectVariableName(); - setAddUrl(policyHelper, op); + if (editing) { + setAddUrl(op); + } } - protected void setAddUrl(EditingPolicyHelper policyHelper, Property property) { - - if (policyHelper == null) { - return; - } + protected void setAddUrl(Property property) { // Determine whether a new statement can be added RequestedAction action = new AddObjectPropStmt(subjectUri, propertyUri, RequestActionConstants.SOME_URI); @@ -207,19 +205,19 @@ public abstract class ObjectPropertyTemplateModel extends PropertyTemplateModel } public static ObjectPropertyTemplateModel getObjectPropertyTemplateModel(ObjectProperty op, - Individual subject, VitroRequest vreq, EditingPolicyHelper policyHelper, + Individual subject, VitroRequest vreq, boolean editing, List populatedObjectPropertyList) { if (op.getCollateBySubclass()) { try { - return new CollatedObjectPropertyTemplateModel(op, subject, vreq, policyHelper, populatedObjectPropertyList); + return new CollatedObjectPropertyTemplateModel(op, subject, vreq, editing, populatedObjectPropertyList); } catch (InvalidConfigurationException e) { log.warn(e.getMessage()); // If the collated config is invalid, instantiate an UncollatedObjectPropertyTemplateModel instead. } } try { - return new UncollatedObjectPropertyTemplateModel(op, subject, vreq, policyHelper, populatedObjectPropertyList); + return new UncollatedObjectPropertyTemplateModel(op, subject, vreq, editing, populatedObjectPropertyList); } catch (InvalidConfigurationException e) { log.error(e.getMessage()); return null; @@ -363,7 +361,7 @@ public abstract class ObjectPropertyTemplateModel extends PropertyTemplateModel private String templateName; private ObjectPropertyDataPostProcessor postprocessor = null; - PropertyListConfig(ObjectProperty op, EditingPolicyHelper policyHelper) + PropertyListConfig(ObjectProperty op, boolean editing) throws InvalidConfigurationException { // Get the custom config filename @@ -383,7 +381,7 @@ public abstract class ObjectPropertyTemplateModel extends PropertyTemplateModel configFilePath = getConfigFilePath(DEFAULT_CONFIG_FILE_NAME); // Should we test for the existence of the default, and throw an error if it doesn't exist? } - setValuesFromConfigFile(configFilePath, op, vreq.getWebappDaoFactory(), policyHelper); + setValuesFromConfigFile(configFilePath, op, vreq.getWebappDaoFactory(), editing); } catch (Exception e) { log.error("Error processing config file " + configFilePath + " for object property " + op.getURI(), e); @@ -403,7 +401,7 @@ public abstract class ObjectPropertyTemplateModel extends PropertyTemplateModel " in " + configFilePath + ":\n" + configError + " Using default config instead."); configFilePath = getConfigFilePath(DEFAULT_CONFIG_FILE_NAME); - setValuesFromConfigFile(configFilePath, op, vreq.getWebappDaoFactory(), policyHelper); + setValuesFromConfigFile(configFilePath, op, vreq.getWebappDaoFactory(), editing); } } @@ -443,7 +441,7 @@ public abstract class ObjectPropertyTemplateModel extends PropertyTemplateModel } private void setValuesFromConfigFile(String configFilePath, ObjectProperty op, WebappDaoFactory wdf, - EditingPolicyHelper policyHelper) { + boolean editing) { DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); DocumentBuilder db; @@ -454,7 +452,7 @@ public abstract class ObjectPropertyTemplateModel extends PropertyTemplateModel String propertyUri = op.getURI(); // Required values - selectQuery = getSelectQuery(doc, propertyUri, policyHelper); + selectQuery = getSelectQuery(doc, propertyUri, editing); templateName = getConfigValue(doc, NODE_NAME_TEMPLATE, propertyUri); @@ -482,19 +480,19 @@ public abstract class ObjectPropertyTemplateModel extends PropertyTemplateModel } } - private String getSelectQuery(Document doc, String propertyUri, EditingPolicyHelper policyHelper) { + private String getSelectQuery(Document doc, String propertyUri, boolean editing) { Node selectQueryNode = doc.getElementsByTagName(NODE_NAME_QUERY_SELECT).item(0); String value = null; if (selectQueryNode != null) { boolean collated = ObjectPropertyTemplateModel.this instanceof CollatedObjectPropertyTemplateModel; - /* If not editing the page (policyHelper == null), hide statements with missing linked individual or other + /* If not editing the page (editing == false), hide statements with missing linked individual or other * critical information missing (e.g., anchor and url on a link); otherwise, show these statements. * We might want to refine this based on whether the user can edit the statement in question, but that * would require a completely different approach: include the statement in the query results, and then during the * postprocessing phase, check the editing policy, and remove the statement if it's not editable. We would not * preprocess the query, as here. */ - boolean criticalDataRequired = policyHelper == null; + boolean criticalDataRequired = editing; NodeList children = selectQueryNode.getChildNodes(); int childCount = children.getLength(); value = ""; diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/web/templatemodels/individual/PropertyGroupTemplateModel.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/web/templatemodels/individual/PropertyGroupTemplateModel.java index 41bfacd86..357faeb40 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/web/templatemodels/individual/PropertyGroupTemplateModel.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/web/templatemodels/individual/PropertyGroupTemplateModel.java @@ -3,7 +3,6 @@ package edu.cornell.mannlib.vitro.webapp.web.templatemodels.individual; import java.util.ArrayList; -import java.util.HashMap; import java.util.List; import org.apache.commons.logging.Log; @@ -15,7 +14,6 @@ import edu.cornell.mannlib.vitro.webapp.beans.ObjectProperty; import edu.cornell.mannlib.vitro.webapp.beans.Property; import edu.cornell.mannlib.vitro.webapp.beans.PropertyGroup; import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest; -import edu.cornell.mannlib.vitro.webapp.dao.WebappDaoFactory; import edu.cornell.mannlib.vitro.webapp.web.templatemodels.BaseTemplateModel; public class PropertyGroupTemplateModel extends BaseTemplateModel { @@ -26,7 +24,7 @@ public class PropertyGroupTemplateModel extends BaseTemplateModel { private final List properties; PropertyGroupTemplateModel(VitroRequest vreq, PropertyGroup group, - Individual subject, EditingPolicyHelper policyHelper, + Individual subject, boolean editing, List populatedDataPropertyList, List populatedObjectPropertyList) { this.name = group.getName(); @@ -36,9 +34,9 @@ public class PropertyGroupTemplateModel extends BaseTemplateModel { for (Property p : propertyList) { if (p instanceof ObjectProperty) { ObjectProperty op = (ObjectProperty)p; - properties.add(ObjectPropertyTemplateModel.getObjectPropertyTemplateModel(op, subject, vreq, policyHelper, populatedObjectPropertyList)); + properties.add(ObjectPropertyTemplateModel.getObjectPropertyTemplateModel(op, subject, vreq, editing, populatedObjectPropertyList)); } else { - properties.add(new DataPropertyTemplateModel((DataProperty)p, subject, vreq, policyHelper, populatedDataPropertyList)); + properties.add(new DataPropertyTemplateModel((DataProperty)p, subject, vreq, editing, populatedDataPropertyList)); } } } diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/web/templatemodels/individual/PropertyTemplateModel.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/web/templatemodels/individual/PropertyTemplateModel.java index e82aa8830..9d8eb4638 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/web/templatemodels/individual/PropertyTemplateModel.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/web/templatemodels/individual/PropertyTemplateModel.java @@ -36,7 +36,7 @@ public abstract class PropertyTemplateModel extends BaseTemplateModel { private String name; - PropertyTemplateModel(Property property, Individual subject, EditingPolicyHelper policyHelper, VitroRequest vreq) { + PropertyTemplateModel(Property property, Individual subject, VitroRequest vreq) { this.vreq = vreq; subjectUri = subject.getURI(); propertyUri = property.getURI(); diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/web/templatemodels/individual/UncollatedObjectPropertyTemplateModel.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/web/templatemodels/individual/UncollatedObjectPropertyTemplateModel.java index c695d2fdc..62946abf8 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/web/templatemodels/individual/UncollatedObjectPropertyTemplateModel.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/web/templatemodels/individual/UncollatedObjectPropertyTemplateModel.java @@ -12,8 +12,6 @@ import org.apache.commons.logging.LogFactory; import edu.cornell.mannlib.vitro.webapp.beans.Individual; import edu.cornell.mannlib.vitro.webapp.beans.ObjectProperty; import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest; -import edu.cornell.mannlib.vitro.webapp.dao.ObjectPropertyStatementDao; -import edu.cornell.mannlib.vitro.webapp.dao.WebappDaoFactory; public class UncollatedObjectPropertyTemplateModel extends ObjectPropertyTemplateModel { @@ -22,11 +20,11 @@ public class UncollatedObjectPropertyTemplateModel extends ObjectPropertyTemplat private final List statements; UncollatedObjectPropertyTemplateModel(ObjectProperty op, Individual subject, - VitroRequest vreq, EditingPolicyHelper policyHelper, + VitroRequest vreq, boolean editing, List populatedObjectPropertyList) throws InvalidConfigurationException { - super(op, subject, vreq, policyHelper); + super(op, subject, vreq, editing); statements = new ArrayList(); if (populatedObjectPropertyList.contains(op)) { @@ -42,7 +40,7 @@ public class UncollatedObjectPropertyTemplateModel extends ObjectPropertyTemplat String objectKey = getObjectKey(); for (Map map : statementData) { statements.add(new ObjectPropertyStatementTemplateModel(subjectUri, - propertyUri, objectKey, map, policyHelper, getTemplateName(), vreq)); + propertyUri, objectKey, map, editing, getTemplateName(), vreq)); } postprocessStatementList(statements);