diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/auth/identifier/common/CommonIdentifierBundleFactory.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/auth/identifier/common/CommonIdentifierBundleFactory.java index 31688baba..44da8b360 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/auth/identifier/common/CommonIdentifierBundleFactory.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/auth/identifier/common/CommonIdentifierBundleFactory.java @@ -5,6 +5,8 @@ package edu.cornell.mannlib.vitro.webapp.auth.identifier.common; import java.util.ArrayList; import java.util.Collection; import java.util.Collections; +import java.util.HashSet; +import java.util.Set; import javax.servlet.ServletContext; import javax.servlet.ServletRequest; @@ -19,11 +21,15 @@ import edu.cornell.mannlib.vitro.webapp.auth.identifier.ArrayIdentifierBundle; import edu.cornell.mannlib.vitro.webapp.auth.identifier.Identifier; import edu.cornell.mannlib.vitro.webapp.auth.identifier.IdentifierBundle; import edu.cornell.mannlib.vitro.webapp.auth.identifier.IdentifierBundleFactory; +import edu.cornell.mannlib.vitro.webapp.auth.permissions.Permission; +import edu.cornell.mannlib.vitro.webapp.auth.permissions.PermissionRegistry; import edu.cornell.mannlib.vitro.webapp.beans.BaseResourceBean.RoleLevel; import edu.cornell.mannlib.vitro.webapp.beans.Individual; +import edu.cornell.mannlib.vitro.webapp.beans.PermissionSet; import edu.cornell.mannlib.vitro.webapp.beans.SelfEditingConfiguration; import edu.cornell.mannlib.vitro.webapp.beans.UserAccount; import edu.cornell.mannlib.vitro.webapp.dao.IndividualDao; +import edu.cornell.mannlib.vitro.webapp.dao.UserAccountsDao; import edu.cornell.mannlib.vitro.webapp.dao.WebappDaoFactory; /** @@ -53,6 +59,7 @@ public class CommonIdentifierBundleFactory implements IdentifierBundleFactory { bundle.addAll(createRoleLevelIdentifiers(req)); bundle.addAll(createBlacklistOrAssociatedIndividualIdentifiers(req)); bundle.addAll(createExplicitProxyEditingIdentifiers(req)); + bundle.addAll(createPermissionIdentifiers(req)); return bundle; } @@ -141,7 +148,8 @@ public class CommonIdentifierBundleFactory implements IdentifierBundleFactory { } /** - * Get all Individuals associated with the current user by explicit proxy relationship. + * Get all Individuals associated with the current user by explicit proxy + * relationship. */ private Collection createExplicitProxyEditingIdentifiers( HttpServletRequest req) { @@ -149,7 +157,7 @@ public class CommonIdentifierBundleFactory implements IdentifierBundleFactory { UserAccount user = LoginStatusBean.getCurrentUser(req); if (user != null) { - for(String proxiedUri: user.getProxiedIndividualUris()) { + for (String proxiedUri : user.getProxiedIndividualUris()) { ids.add(new HasProxyEditingRights(proxiedUri)); } } @@ -157,6 +165,44 @@ public class CommonIdentifierBundleFactory implements IdentifierBundleFactory { return ids; } + /** + * Create an identifier for each Permission that the User has. + */ + private Collection createPermissionIdentifiers( + HttpServletRequest req) { + Collection ids = new ArrayList(); + + UserAccount user = LoginStatusBean.getCurrentUser(req); + if (user == null) { + log.debug("No Permissions: not logged in."); + return ids; + } + + WebappDaoFactory wdf = (WebappDaoFactory) context + .getAttribute("webappDaoFactory"); + if (wdf == null) { + log.error("Could not get a WebappDaoFactory from the ServletContext"); + return ids; + } + + Set permissionUris = new HashSet(); + UserAccountsDao uaDao = wdf.getUserAccountsDao(); + for (String psUri: user.getPermissionSetUris()) { + PermissionSet ps = uaDao.getPermissionSetByUri(psUri); + if (ps != null) { + permissionUris.addAll(ps.getPermissionUris()); + } + } + + PermissionRegistry registry = PermissionRegistry.getRegistry(context); + for (String permissionUri: permissionUris) { + Permission permission = registry.getPermission(permissionUri); + ids.add(new HasPermission(permission)); + } + + return ids; + } + @Override public String toString() { return this.getClass().getSimpleName() + " - " + hashCode(); diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/auth/identifier/common/HasPermission.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/auth/identifier/common/HasPermission.java new file mode 100644 index 000000000..9621842b0 --- /dev/null +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/auth/identifier/common/HasPermission.java @@ -0,0 +1,44 @@ +/* $This file is distributed under the terms of the license in /doc/license.txt$ */ + +package edu.cornell.mannlib.vitro.webapp.auth.identifier.common; + +import java.util.Collection; +import java.util.HashSet; +import java.util.Set; + +import edu.cornell.mannlib.vitro.webapp.auth.identifier.Identifier; +import edu.cornell.mannlib.vitro.webapp.auth.identifier.IdentifierBundle; +import edu.cornell.mannlib.vitro.webapp.auth.permissions.Permission; + +/** + * The current user has this Permission, through one or more PermissionSets. + */ +public class HasPermission extends AbstractCommonIdentifier implements + Identifier { + public static Collection getIdentifiers(IdentifierBundle ids) { + return getIdentifiersForClass(ids, HasPermission.class); + } + + public static Collection getPermissions(IdentifierBundle ids) { + Set set = new HashSet(); + for (HasPermission id : getIdentifiers(ids)) { + set.add(id.getPermission()); + } + return set; + } + + private final Permission permission; + + public HasPermission(Permission permission) { + this.permission = permission; + } + + public Permission getPermission() { + return permission; + } + + @Override + public String toString() { + return "HasPermission[" + permission + "]"; + } +} diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/auth/permissions/BrokenPermission.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/auth/permissions/BrokenPermission.java new file mode 100644 index 000000000..f03d6c344 --- /dev/null +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/auth/permissions/BrokenPermission.java @@ -0,0 +1,55 @@ +/* $This file is distributed under the terms of the license in /doc/license.txt$ */ + +package edu.cornell.mannlib.vitro.webapp.auth.permissions; + +import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.ifaces.RequestedAction; + +/** + * This is what the PermissionRegistry hands out if you ask for a Permission + * that it doesn't know about. Nothing is authorized by this Permission. + */ +public class BrokenPermission implements Permission { + private final String uri; + private final String localName; + private final String namespace; + + public BrokenPermission(String uri) { + this.uri = uri; + + int namespaceBreak = uri.lastIndexOf("#"); + if (namespaceBreak == -1) { + namespaceBreak = uri.lastIndexOf("/"); + } + + int localNameStart = namespaceBreak + 1; + + this.namespace = uri.substring(0, localNameStart); + this.localName = uri.substring(localNameStart); + } + + @Override + public String getUri() { + return uri; + } + + @Override + public String getLocalName() { + return localName; + } + + @Override + public String getNamespace() { + return namespace; + } + + @Override + public boolean isAuthorized(RequestedAction whatToAuth) { + return false; + } + + @Override + public String toString() { + return "BrokenPermission[" + uri + "]"; + } + +} diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/auth/permissions/Permission.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/auth/permissions/Permission.java index 33a5b5261..8089db2ec 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/auth/permissions/Permission.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/auth/permissions/Permission.java @@ -2,10 +2,58 @@ package edu.cornell.mannlib.vitro.webapp.auth.permissions; +import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.ifaces.RequestedAction; + /** - * Base class that describes a unit of authorization, or permission to perform + * Interface that describes a unit of authorization, or permission to perform * requested actions. */ -public abstract class Permission { - // no members +public interface Permission { + /** + * Get the URI that identifies this Permission object. + */ + String getUri(); + + /** + * Convenience method to get the localName portion of the URI. + */ + String getLocalName(); + + /** + * Convenience method to get the namespace portion of the URI. + */ + String getNamespace(); + + /** + * Is a user with this Permission authorized to perform this + * RequestedAction? + */ + boolean isAuthorized(RequestedAction whatToAuth); + + /** + * An implementation of Permission that authorizes nothing. + */ + static Permission NOT_AUTHORIZED = new Permission() { + + @Override + public String getUri() { + return "java:" + Permission.class.getName() + "#NOT_AUTHORIZED"; + } + + @Override + public String getLocalName() { + return "NOT_AUTHORIZED"; + } + + @Override + public String getNamespace() { + return "java:" + Permission.class.getName(); + } + + @Override + public boolean isAuthorized(RequestedAction whatToAuth) { + return false; + } + + }; } diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/auth/permissions/PermissionRegistry.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/auth/permissions/PermissionRegistry.java new file mode 100644 index 000000000..dd169f190 --- /dev/null +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/auth/permissions/PermissionRegistry.java @@ -0,0 +1,148 @@ +/* $This file is distributed under the terms of the license in /doc/license.txt$ */ + +package edu.cornell.mannlib.vitro.webapp.auth.permissions; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.Collections; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import javax.servlet.ServletContext; +import javax.servlet.ServletContextEvent; +import javax.servlet.ServletContextListener; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +import edu.cornell.mannlib.vitro.webapp.startup.StartupStatus; + +/** + * An immutable collection of Permission objects, keyed by URI. Resides in the + * ServletContext. + * + * This is not thread-safe, so all Permissions should be added during context + * initialization. + */ +public class PermissionRegistry { + private static final Log log = LogFactory.getLog(PermissionRegistry.class); + + private static final String ATTRIBUTE_NAME = PermissionRegistry.class + .getName(); + + /** + * Has the registry been created yet? + */ + public static boolean isRegistryCreated(ServletContext ctx) { + return ctx.getAttribute(ATTRIBUTE_NAME) instanceof PermissionRegistry; + } + + /** + * Create the registry and store it in the context. + */ + public static void createRegistry(ServletContext ctx, + Collection permissions) { + if (ctx == null) { + throw new NullPointerException("ctx may not be null."); + } + if (permissions == null) { + throw new NullPointerException("permissions may not be null."); + } + if (ctx.getAttribute(ATTRIBUTE_NAME) != null) { + throw new IllegalStateException( + "PermissionRegistry has already been set."); + } + + PermissionRegistry registry = new PermissionRegistry(permissions); + ctx.setAttribute(ATTRIBUTE_NAME, registry); + } + + /** + * Get the registry from the context. If there isn't one, throw an exception. + */ + public static PermissionRegistry getRegistry(ServletContext ctx) { + if (ctx == null) { + throw new NullPointerException("ctx may not be null."); + } + + Object o = ctx.getAttribute(ATTRIBUTE_NAME); + if (o == null) { + throw new IllegalStateException( + "PermissionRegistry has not been set."); + } else if (!(o instanceof PermissionRegistry)) { + throw new IllegalStateException("PermissionRegistry was set to an " + + "invalid object: " + o); + } + + return (PermissionRegistry) o; + } + + private final Map permissionsMap; + + public PermissionRegistry(Collection permissions) { + Map map = new HashMap(); + for (Permission p : permissions) { + String uri = p.getUri(); + if (map.containsKey(uri)) { + throw new IllegalStateException("A Permission is already " + + "registered with this URI: '" + uri + "'."); + } + map.put(uri, p); + } + this.permissionsMap = Collections.unmodifiableMap(map); + } + + /** + * Is there a Permission registered with this URI? + */ + public boolean isPermission(String uri) { + return permissionsMap.containsKey(uri); + } + + /** + * Get the permission that is registered with this URI. If there is no such + * Permission, return a BrokenPermission that always denies authorization. + * + * If you want to know whether an actual Permission has been registered at + * this URI, call isPermission() instead. + */ + public Permission getPermission(String uri) { + Permission p = permissionsMap.get(uri); + if (p == null) { + log.warn("No Permission is registered for '" + uri + "'"); + return new BrokenPermission(uri); + } + + return p; + } + + // ---------------------------------------------------------------------- + // Setup class + // ---------------------------------------------------------------------- + + public static class Setup implements ServletContextListener { + @Override + public void contextInitialized(ServletContextEvent sce) { + ServletContext ctx = sce.getServletContext(); + StartupStatus ss = StartupStatus.getBean(ctx); + try { + List permissions = new ArrayList(); + permissions.addAll(SimplePermission.getAllInstances()); + + PermissionRegistry.createRegistry(ctx, permissions); + + ss.info(this, "Created the PermissionRegistry with " + + permissions.size() + " permissions."); + } catch (Exception e) { + ss.fatal(this, "Failed to initialize the PermissionRegistry.", + e); + } + } + + @Override + public void contextDestroyed(ServletContextEvent sce) { + sce.getServletContext().removeAttribute(ATTRIBUTE_NAME); + } + } +} diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/auth/permissions/PermissionSetsLoader.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/auth/permissions/PermissionSetsLoader.java index 7e8fb1d50..2693c3196 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/auth/permissions/PermissionSetsLoader.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/auth/permissions/PermissionSetsLoader.java @@ -2,6 +2,13 @@ package edu.cornell.mannlib.vitro.webapp.auth.permissions; +import static edu.cornell.mannlib.vitro.webapp.dao.VitroVocabulary.VITRO_AUTH; + +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.List; + import javax.servlet.ServletContext; import javax.servlet.ServletContextEvent; import javax.servlet.ServletContextListener; @@ -10,12 +17,24 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import com.hp.hpl.jena.ontology.OntModel; +import com.hp.hpl.jena.rdf.model.Model; +import com.hp.hpl.jena.rdf.model.ModelFactory; import com.hp.hpl.jena.rdf.model.Property; import com.hp.hpl.jena.rdf.model.Resource; +import com.hp.hpl.jena.rdf.model.Selector; +import com.hp.hpl.jena.rdf.model.SimpleSelector; +import com.hp.hpl.jena.rdf.model.Statement; +import com.hp.hpl.jena.rdf.model.StmtIterator; import com.hp.hpl.jena.shared.Lock; +import com.hp.hpl.jena.util.iterator.ClosableIterator; +import com.hp.hpl.jena.vocabulary.RDF; +import com.hp.hpl.jena.vocabulary.RDFS; -import edu.cornell.mannlib.vitro.webapp.config.ConfigurationProperties; +import edu.cornell.mannlib.vitro.webapp.beans.PermissionSet; +import edu.cornell.mannlib.vitro.webapp.beans.UserAccount; +import edu.cornell.mannlib.vitro.webapp.dao.UserAccountsDao; import edu.cornell.mannlib.vitro.webapp.dao.VitroVocabulary; +import edu.cornell.mannlib.vitro.webapp.dao.WebappDaoFactory; import edu.cornell.mannlib.vitro.webapp.dao.jena.ModelContext; import edu.cornell.mannlib.vitro.webapp.startup.StartupStatus; @@ -24,36 +43,29 @@ import edu.cornell.mannlib.vitro.webapp.startup.StartupStatus; * * The UserAccounts model must be created before this runs. * - * For now, we just use the four hard-coded "roles". + * The PermissionRegistry must be created before this runs. */ public class PermissionSetsLoader implements ServletContextListener { private static final Log log = LogFactory .getLog(PermissionSetsLoader.class); - public static final String URI_SELF_EDITOR = "http://permissionSet-1"; - public static final String URI_EDITOR = "http://permissionSet-4"; - public static final String URI_CURATOR = "http://permissionSet-5"; - public static final String URI_DBA = "http://permissionSet-50"; - + public static final String FILE_OF_PERMISSION_SETS_INFO = "/WEB-INF/resources/permission_config.n3"; + + public static final String URI_SELF_EDITOR = VITRO_AUTH + "SELF_EDITOR"; + public static final String URI_EDITOR = VITRO_AUTH + "EDITOR"; + public static final String URI_CURATOR = VITRO_AUTH + "CURATOR"; + public static final String URI_DBA = VITRO_AUTH + "ADMIN"; + @Override public void contextInitialized(ServletContextEvent sce) { ServletContext ctx = sce.getServletContext(); StartupStatus ss = StartupStatus.getBean(ctx); try { - String ns = ConfigurationProperties.getBean(ctx).getProperty( - "Vitro.defaultNamespace"); - - OntModel model = ModelContext.getBaseOntModelSelector(ctx) - .getUserAccountsModel(); - - ModelWrapper wrapper = new ModelWrapper(model); - wrapper.createPermissionSet(URI_SELF_EDITOR, "Self Editor"); - wrapper.createPermissionSet(URI_EDITOR, "Editor"); - wrapper.createPermissionSet(URI_CURATOR, "Curator"); - wrapper.createPermissionSet(URI_DBA, "Site Admin"); + new Loader(this, ctx, ss).load(); + new SmokeTester(this, ctx, ss).test(); } catch (Exception e) { - ss.fatal(this, "could not run PermissionSetsLoader" + e); + ss.fatal(this, "Failed to load the PermissionSets", e); } } @@ -62,32 +74,284 @@ public class PermissionSetsLoader implements ServletContextListener { // Nothing to tear down. } - private static class ModelWrapper { - private final OntModel model; + // ---------------------------------------------------------------------- + // Loader class + // ---------------------------------------------------------------------- - private final Property typeProperty; - private final Property labelProperty; - private final Resource permissionSet; + private static class Loader { + private static final int MAX_STATEMENTS_IN_WARNING = 5; - public ModelWrapper(OntModel model) { - this.model = model; + private ServletContextListener listener; + private final ServletContext ctx; + private final StartupStatus ss; + + private final OntModel userAccountsModel; + private final Property permissionSetType; + + private Model modelFromFile; + private Model filteredModel; + + private int howManyNewPermissionSets; + private int howManyOldPermissionSets; + + public Loader(ServletContextListener listener, ServletContext ctx, + StartupStatus ss) { + this.listener = listener; + this.ctx = ctx; + this.ss = ss; + + this.userAccountsModel = ModelContext.getBaseOntModelSelector(ctx) + .getUserAccountsModel(); + this.permissionSetType = this.userAccountsModel + .getProperty(VitroVocabulary.PERMISSIONSET); - typeProperty = model.createProperty(VitroVocabulary.RDF_TYPE); - labelProperty = model.createProperty(VitroVocabulary.LABEL); - permissionSet = model.createResource(VitroVocabulary.PERMISSIONSET); } - public void createPermissionSet(String uri, String label) { - model.enterCriticalSection(Lock.WRITE); + public void load() { try { - Resource r = model.createResource(uri); - model.add(r, typeProperty, permissionSet); - model.add(r, labelProperty, label); - log.debug("Created permission set: '" + uri + "', '" + label - + "'"); - } finally { - model.leaveCriticalSection(); + createModelFromFile(); + filterModelFromFile(); + checkForLeftoverStatements(); + removeExistingPermissionSetsFromUserAccountsModel(); + addNewStatementsToUserAccountsModel(); + + ss.info(listener, buildInfoMessage()); + } catch (LoaderException e) { + Throwable cause = e.getCause(); + if (cause == null) { + ss.warning(listener, e.getMessage()); + } else { + ss.warning(listener, e.getMessage(), e.getCause()); + } } } + + private void createModelFromFile() throws LoaderException { + InputStream stream = ctx + .getResourceAsStream(FILE_OF_PERMISSION_SETS_INFO); + + if (stream == null) { + throw new LoaderException("The permission sets config file " + + "doesn't exist in the servlet context: '" + + FILE_OF_PERMISSION_SETS_INFO + "'"); + } + + try { + modelFromFile = ModelFactory.createDefaultModel(); + modelFromFile.read(stream, null, "N3"); + } finally { + try { + stream.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + + log.debug("Loaded " + modelFromFile.size() + " statements"); + } + + /** + * Move all statements that relate to PermissionSets from the loaded + * model to the filtered model. + */ + private void filterModelFromFile() { + filteredModel = ModelFactory.createDefaultModel(); + + for (Resource r : iterable(modelFromFile.listResourcesWithProperty( + RDF.type, permissionSetType))) { + moveStatementsToFilteredModel(r); + howManyNewPermissionSets++; + } + + log.debug("Filtered " + filteredModel.size() + " statements for " + + howManyNewPermissionSets + " PermissionSets; " + + modelFromFile.size() + " extraneous statements."); + } + + /** + * Move the statements about this PermissionSet from the loaded model to + * the filtered model. + */ + private void moveStatementsToFilteredModel(Resource ps) { + Selector sel = new SimpleSelector(ps, null, (String) null); + for (Statement stmt : iterable(modelFromFile.listStatements(sel))) { + filteredModel.add(stmt); + modelFromFile.remove(stmt); + } + } + + /** + * Complain about any statements that were not moved to the filtered + * model. + */ + private void checkForLeftoverStatements() { + List list = iterable(modelFromFile.listStatements()); + if (list.isEmpty()) { + return; + } + + String message = "The PermissionSets configuration file contained " + + list.size() + + " statements that didn't describe PermissionSets: "; + for (int i = 0; i < Math + .min(list.size(), MAX_STATEMENTS_IN_WARNING); i++) { + Statement stmt = list.get(i); + message += "(" + stmt.asTriple() + ") "; + } + if (list.size() > MAX_STATEMENTS_IN_WARNING) { + message += ", ..."; + } + + ss.warning(listener, message); + } + + private void removeExistingPermissionSetsFromUserAccountsModel() { + userAccountsModel.enterCriticalSection(Lock.WRITE); + try { + for (Resource r : iterable(userAccountsModel + .listResourcesWithProperty(RDF.type, permissionSetType))) { + Selector sel = new SimpleSelector(r, null, (String) null); + StmtIterator stmts = userAccountsModel.listStatements(sel); + userAccountsModel.remove(stmts); + howManyOldPermissionSets++; + } + } finally { + userAccountsModel.leaveCriticalSection(); + } + + log.debug("Deleted " + howManyOldPermissionSets + + " old PermissionSets from the user model."); + } + + private void addNewStatementsToUserAccountsModel() { + userAccountsModel.enterCriticalSection(Lock.WRITE); + try { + userAccountsModel.add(filteredModel); + } finally { + userAccountsModel.leaveCriticalSection(); + } + } + + private String buildInfoMessage() { + String message = "Loaded " + howManyNewPermissionSets + + " PermissionSets: "; + Selector sel = new SimpleSelector(null, RDFS.label, (String) null); + for (Statement stmt : iterable(filteredModel.listStatements(sel))) { + String label = stmt.getObject().asLiteral().getString(); + message += "'" + label + "' "; + } + return message; + } + + private List iterable(ClosableIterator iterator) { + List list = new ArrayList(); + try { + while (iterator.hasNext()) { + list.add(iterator.next()); + } + } finally { + iterator.close(); + } + return list; + } + + } + + // ---------------------------------------------------------------------- + // SmokeTester class + // ---------------------------------------------------------------------- + + private static class SmokeTester { + private ServletContextListener listener; + private final ServletContext ctx; + private final StartupStatus ss; + + private final UserAccountsDao uaDao; + + public SmokeTester(ServletContextListener listener, ServletContext ctx, + StartupStatus ss) { + this.listener = listener; + this.ctx = ctx; + this.ss = ss; + + WebappDaoFactory wadf = (WebappDaoFactory) ctx + .getAttribute("webappDaoFactory"); + if (wadf == null) { + throw new IllegalStateException( + "No webappDaoFactory on the servlet context"); + } + this.uaDao = wadf.getUserAccountsDao(); + } + + public void test() { + checkForPermissionSetsWithoutLabels(); + checkForReferencesToNonexistentPermissionSets(); + checkForReferencesToNonexistentPermissions(); + warnIfNoDefaultPermissionSetsForNewUsers(); + } + + private void checkForPermissionSetsWithoutLabels() { + for (PermissionSet ps : uaDao.getAllPermissionSets()) { + if (ps.getLabel().isEmpty()) { + ss.warning(listener, "This PermissionSet has no label: " + + ps.getUri()); + } + } + } + + private void checkForReferencesToNonexistentPermissionSets() { + for (UserAccount user : uaDao.getAllUserAccounts()) { + for (String psUri : user.getPermissionSetUris()) { + if (uaDao.getPermissionSetByUri(psUri) == null) { + ss.warning(listener, "The user '" + user.getFirstName() + + " " + user.getLastName() + + "' has the PermissionSet '" + psUri + + "', but the PermissionSet doesn't exist."); + } + } + } + } + + private void checkForReferencesToNonexistentPermissions() { + PermissionRegistry registry = PermissionRegistry.getRegistry(ctx); + for (PermissionSet ps : uaDao.getAllPermissionSets()) { + for (String pUri : ps.getPermissionUris()) { + if (!registry.isPermission(pUri)) { + ss.warning(listener, + "The PermissionSet '" + ps.getLabel() + + "' has the Permission '" + pUri + + "', but the Permission " + + "is not found in the registry."); + } + } + } + } + + private void warnIfNoDefaultPermissionSetsForNewUsers() { + for (PermissionSet ps : uaDao.getAllPermissionSets()) { + if (ps.isDefaultForNewUsers()) { + return; + } + } + ss.warning(listener, "No PermissionSet has been declared to be a " + + "Default PermissionSet for new users."); + } + + } + + // ---------------------------------------------------------------------- + // Handy dandy exception. + // ---------------------------------------------------------------------- + + private static class LoaderException extends Exception { + + public LoaderException(String message) { + super(message); + } + + public LoaderException(String message, Throwable cause) { + super(message, cause); + } + } } diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/auth/permissions/SimplePermission.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/auth/permissions/SimplePermission.java new file mode 100644 index 000000000..10e9e5e8b --- /dev/null +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/auth/permissions/SimplePermission.java @@ -0,0 +1,143 @@ +/* $This file is distributed under the terms of the license in /doc/license.txt$ */ + +package edu.cornell.mannlib.vitro.webapp.auth.permissions; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +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.SimpleRequestedAction; +import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.ifaces.RequestedAction; + +/** + * A class of simple permissions. Each instance holds a RequestedAction, and + * will only authorize that RequestedAction (or one with the same URI). + */ +public class SimplePermission implements Permission { + private static final Log log = LogFactory.getLog(SimplePermission.class); + + private static final String NAMESPACE = "java:" + + SimplePermission.class.getName() + "#"; + + private static final Map allInstances = new HashMap(); + + public static final SimplePermission ACCESS_SPECIAL_DATA_MODELS = new SimplePermission( + "AccessSpecialDataModels"); + public static final SimplePermission DO_BACK_END_EDITING = new SimplePermission( + "DoBackEndEditing"); + public static final SimplePermission DO_FRONT_END_EDITING = new SimplePermission( + "DoFrontEndEditing"); + public static final SimplePermission EDIT_ONTOLOGY = new SimplePermission( + "EditOntology"); + public static final SimplePermission EDIT_OWN_ACCOUNT = new SimplePermission( + "EditOwnAccount"); + public static final SimplePermission EDIT_SITE_INFORMATION = new SimplePermission( + "EditSiteInformation"); + public static final SimplePermission MANAGE_MENUS = new SimplePermission( + "ManageMenus"); + public static final SimplePermission MANAGE_OWN_PROXIES = new SimplePermission( + "ManageOwnProxies"); + public static final SimplePermission MANAGE_PORTALS = new SimplePermission( + "ManagePortals"); + public static final SimplePermission MANAGE_PROXIES = new SimplePermission( + "ManageProxies"); + public static final SimplePermission MANAGE_SEARCH_INDEX = new SimplePermission( + "ManageSearchIndex"); + public static final SimplePermission MANAGE_TABS = new SimplePermission( + "ManageTabs"); + public static final SimplePermission MANAGE_USER_ACCOUNTS = new SimplePermission( + "ManageUserAccounts"); + public static final SimplePermission QUERY_USER_ACCOUNTS_MODEL = new SimplePermission( + "QueryUserAccountsModel"); + public static final SimplePermission REBUILD_VCLASS_GROUP_CACHE = new SimplePermission( + "RebuildVClassGroupCache"); + public static final SimplePermission REFRESH_VISUALIZATION_CACHE = new SimplePermission( + "RefreshVisualizationCache"); + public static final SimplePermission SEE_INDVIDUAL_EDITING_PANEL = new SimplePermission( + "SeeIndividualEditingPanel"); + public static final SimplePermission SEE_REVISION_INFO = new SimplePermission( + "SeeRevisionInfo"); + public static final SimplePermission SEE_SITE_ADMIN_PAGE = new SimplePermission( + "SeeSiteAdminPage"); + public static final SimplePermission SEE_STARTUP_STATUS = new SimplePermission( + "SeeStartupStatus"); + public static final SimplePermission SEE_VERBOSE_PROPERTY_INFORMATION = new SimplePermission( + "SeeVerbosePropertyInformation"); + public static final SimplePermission USE_ADVANCED_DATA_TOOLS_PAGES = new SimplePermission( + "UseAdvancedDataToolsPages"); + public static final SimplePermission USE_BASIC_AJAX_CONTROLLERS = new SimplePermission( + "UseBasicAjaxControllers"); + public static final SimplePermission USE_MISCELLANEOUS_ADMIN_PAGES = new SimplePermission( + "UseMiscellaneousAdminPages"); + public static final SimplePermission USE_MISCELLANEOUS_CURATOR_PAGES = new SimplePermission( + "UseMiscellaneousCuratorPages"); + public static final SimplePermission USE_MISCELLANEOUS_EDITOR_PAGES = new SimplePermission( + "UseMiscellaneousEditorPages"); + public static final SimplePermission USE_MISCELLANEOUS_PAGES = new SimplePermission( + "UseMiscellaneousPages"); + + public static List getAllInstances() { + return new ArrayList(allInstances.values()); + } + + private final String localName; + private final String uri; + public final RequestedAction ACTION; + public final Actions ACTIONS; + + public SimplePermission(String localName) { + if (localName == null) { + throw new NullPointerException("name may not be null."); + } + + this.localName = localName; + this.uri = NAMESPACE + localName; + + this.ACTION = new SimpleRequestedAction(localName); + this.ACTIONS = new Actions(this.ACTION); + + if (allInstances.containsKey(this.uri)) { + throw new IllegalStateException("A SimplePermission named '" + + this.uri + "' already exists."); + } + allInstances.put(uri, this); + } + + @Override + public String getLocalName() { + return this.localName; + } + + @Override + public String getNamespace() { + return NAMESPACE; + } + + @Override + public String getUri() { + return NAMESPACE + this.localName; + } + + @Override + public boolean isAuthorized(RequestedAction whatToAuth) { + if (whatToAuth != null) { + if (ACTION.getURI().equals(whatToAuth.getURI())) { + log.debug(this + " authorizes " + whatToAuth); + return true; + } + } + log.debug(this + " does not authorize " + whatToAuth); + return false; + } + + @Override + public String toString() { + return "SimplePermission['" + localName + "']"; + } + +} diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/auth/policy/PermissionsPolicy.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/auth/policy/PermissionsPolicy.java new file mode 100644 index 000000000..b6be06774 --- /dev/null +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/auth/policy/PermissionsPolicy.java @@ -0,0 +1,37 @@ +/* $This file is distributed under the terms of the license in /doc/license.txt$ */ + +package edu.cornell.mannlib.vitro.webapp.auth.policy; + +import edu.cornell.mannlib.vitro.webapp.auth.identifier.IdentifierBundle; +import edu.cornell.mannlib.vitro.webapp.auth.identifier.common.HasPermission; +import edu.cornell.mannlib.vitro.webapp.auth.permissions.Permission; +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; + +/** + * The user is authorized to perform the RequestedAction if one of his + * Permissions will authorize it. + */ +public class PermissionsPolicy implements PolicyIface { + + @Override + public PolicyDecision isAuthorized(IdentifierBundle whoToAuth, + RequestedAction whatToAuth) { + for (Permission p : HasPermission.getPermissions(whoToAuth)) { + if (p.isAuthorized(whatToAuth)) { + return new BasicPolicyDecision(Authorization.AUTHORIZED, + "PermissionsPolicy: approved by " + p); + } + } + return new BasicPolicyDecision(Authorization.INCONCLUSIVE, + "no permission will approve " + whatToAuth); + } + + @Override + public String toString() { + return "PermissionsPolicy - " + hashCode(); + } + +} 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 3c9b2b591..3ee7efb12 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 @@ -10,35 +10,8 @@ import edu.cornell.mannlib.vitro.webapp.auth.identifier.common.HasRoleLevel; 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.admin.RebuildVClassGroupCache; import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.ifaces.RequestedAction; import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.querymodel.QueryFullModel; -import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.querymodel.QueryUserAccountsModel; -import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.usepages.AccessSpecialDataModels; -import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.usepages.DoFrontEndEditing; -import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.usepages.DoBackEndEditing; -import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.usepages.EditOntology; -import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.usepages.EditOwnAccount; -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.ManageOwnProxies; -import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.usepages.ManagePortals; -import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.usepages.ManageProxies; -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; -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; -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; /** @@ -62,90 +35,9 @@ public class UseRestrictedPagesByRoleLevelPolicy implements PolicyIface { RoleLevel userRole = HasRoleLevel.getUsersRoleLevel(whoToAuth); PolicyDecision result; - if (whatToAuth instanceof UseAdvancedDataToolsPages) { - result = isAuthorized(whatToAuth, RoleLevel.DB_ADMIN, userRole); - - } else if (whatToAuth instanceof ManageUserAccounts) { - result = isAuthorized(whatToAuth, RoleLevel.DB_ADMIN, userRole); - - } 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); - - } 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 ManageProxies) { - result = isAuthorized(whatToAuth, RoleLevel.DB_ADMIN, userRole); - - } else if (whatToAuth instanceof EditOntology) { - result = isAuthorized(whatToAuth, RoleLevel.CURATOR, userRole); - - } else if (whatToAuth instanceof ManagePortals) { - result = isAuthorized(whatToAuth, RoleLevel.CURATOR, userRole); - - } else if (whatToAuth instanceof ManageTabs) { - result = isAuthorized(whatToAuth, RoleLevel.CURATOR, userRole); - - } else if (whatToAuth instanceof EditSiteInformation) { - result = isAuthorized(whatToAuth, RoleLevel.CURATOR, userRole); - - } else if (whatToAuth instanceof SeeVerbosePropertyInformation) { - result = isAuthorized(whatToAuth, RoleLevel.CURATOR, userRole); - - } else if (whatToAuth instanceof UseMiscellaneousCuratorPages) { - result = isAuthorized(whatToAuth, RoleLevel.CURATOR, userRole); - - } else if (whatToAuth instanceof DoBackEndEditing) { - result = isAuthorized(whatToAuth, RoleLevel.EDITOR, userRole); - - } else if (whatToAuth instanceof SeeSiteAdminPage) { - result = isAuthorized(whatToAuth, RoleLevel.EDITOR, userRole); - - } else if (whatToAuth instanceof SeeRevisionInfo) { - result = isAuthorized(whatToAuth, RoleLevel.EDITOR, userRole); - - } 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); - - } else if (whatToAuth instanceof UseMiscellaneousPages) { - result = isAuthorized(whatToAuth, RoleLevel.SELF, userRole); - - } else if (whatToAuth instanceof EditOwnAccount) { - result = isAuthorized(whatToAuth, RoleLevel.SELF, userRole); - - } else if (whatToAuth instanceof ManageOwnProxies) { - result = isAuthorized(whatToAuth, RoleLevel.SELF, userRole); - - } else if (whatToAuth instanceof QueryUserAccountsModel) { - result = isAuthorized(whatToAuth, RoleLevel.SELF, userRole); - - } else if (whatToAuth instanceof DoFrontEndEditing) { - result = isAuthorized(whatToAuth, RoleLevel.SELF, userRole); - - } else if (whatToAuth instanceof QueryFullModel) { + if (whatToAuth instanceof QueryFullModel) { result = isAuthorized(whatToAuth, RoleLevel.PUBLIC, userRole); - + } else { result = defaultDecision("Unrecognized action"); } diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/auth/policy/setup/CommonPolicyFamilySetup.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/auth/policy/setup/CommonPolicyFamilySetup.java index 8f21eb5ef..2a9d02a27 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/auth/policy/setup/CommonPolicyFamilySetup.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/auth/policy/setup/CommonPolicyFamilySetup.java @@ -11,6 +11,7 @@ import edu.cornell.mannlib.vitro.webapp.auth.identifier.common.CommonIdentifierB import edu.cornell.mannlib.vitro.webapp.auth.policy.DisplayRestrictedDataByRoleLevelPolicy; import edu.cornell.mannlib.vitro.webapp.auth.policy.DisplayRestrictedDataToSelfPolicy; import edu.cornell.mannlib.vitro.webapp.auth.policy.EditRestrictedDataByRoleLevelPolicy; +import edu.cornell.mannlib.vitro.webapp.auth.policy.PermissionsPolicy; import edu.cornell.mannlib.vitro.webapp.auth.policy.SelfEditingPolicy; import edu.cornell.mannlib.vitro.webapp.auth.policy.ServletPolicyList; import edu.cornell.mannlib.vitro.webapp.auth.policy.UseRestrictedPagesByRoleLevelPolicy; @@ -27,6 +28,8 @@ public class CommonPolicyFamilySetup implements ServletContextListener { StartupStatus ss = StartupStatus.getBean(ctx); try { + ServletPolicyList.addPolicy(ctx, new PermissionsPolicy()); + ServletPolicyList.addPolicy(ctx, new DisplayRestrictedDataByRoleLevelPolicy(ctx)); ServletPolicyList.addPolicy(ctx, diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/auth/requestedAction/SimpleRequestedAction.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/auth/requestedAction/SimpleRequestedAction.java new file mode 100644 index 000000000..89beacf13 --- /dev/null +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/auth/requestedAction/SimpleRequestedAction.java @@ -0,0 +1,49 @@ +/* $This file is distributed under the terms of the license in /doc/license.txt$ */ + +package edu.cornell.mannlib.vitro.webapp.auth.requestedAction; + +import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.ifaces.RequestedAction; + +/** + * A RequestedAction that can be recognized by a SimplePermission. + */ +public class SimpleRequestedAction extends RequestedAction { + private final String localName; + + public SimpleRequestedAction(String localName) { + if (localName == null) { + throw new NullPointerException("localName may not be null."); + } + + this.localName = localName; + } + + @Override + public String getURI() { + return "java:" + this.getClass().getName() + "#" + localName; + } + + @Override + public int hashCode() { + return (localName == null) ? 0 : localName.hashCode(); + } + + @Override + public boolean equals(Object o) { + if (o instanceof SimpleRequestedAction) { + SimpleRequestedAction that = (SimpleRequestedAction) o; + return equivalent(this.localName, that.localName); + } + return false; + } + + private boolean equivalent(Object o1, Object o2) { + return (o1 == null) ? (o2 == null) : o1.equals(o2); + } + + @Override + public String toString() { + return "SimpleRequestedAction['" + localName + "']"; + } + +} diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/auth/requestedAction/admin/RebuildVClassGroupCache.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/auth/requestedAction/admin/RebuildVClassGroupCache.java deleted file mode 100644 index 0dd3c3a69..000000000 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/auth/requestedAction/admin/RebuildVClassGroupCache.java +++ /dev/null @@ -1,10 +0,0 @@ -/* $This file is distributed under the terms of the license in /doc/license.txt$ */ -package edu.cornell.mannlib.vitro.webapp.auth.requestedAction.admin; - -import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.ifaces.AdminRequestedAction; -import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.ifaces.RequestedAction; - -public class RebuildVClassGroupCache extends RequestedAction implements - AdminRequestedAction { - -} diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/auth/requestedAction/ifaces/RequestActionConstants.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/auth/requestedAction/ifaces/RequestActionConstants.java index 79fdc2426..738814cbb 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/auth/requestedAction/ifaces/RequestActionConstants.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/auth/requestedAction/ifaces/RequestActionConstants.java @@ -3,7 +3,7 @@ package edu.cornell.mannlib.vitro.webapp.auth.requestedAction.ifaces; public class RequestActionConstants { - public static String actionNamespace = "java://"; + public static String actionNamespace = "java:"; public static String SOME_URI = "?SOME_URI"; public static String SOME_LITERAL = "?SOME_LITERAL"; diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/auth/requestedAction/ifaces/RequestedAction.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/auth/requestedAction/ifaces/RequestedAction.java index b22a3e5c6..cbc94ee1e 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/auth/requestedAction/ifaces/RequestedAction.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/auth/requestedAction/ifaces/RequestedAction.java @@ -8,7 +8,7 @@ public abstract class RequestedAction { * In its most basic form, a RequestAction needs to have an identifier. * Sometimes this will be enough. */ - public final String getURI() { + public String getURI() { return RequestActionConstants.actionNamespace + this.getClass().getName(); } diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/auth/requestedAction/querymodel/QueryUserAccountsModel.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/auth/requestedAction/querymodel/QueryUserAccountsModel.java deleted file mode 100644 index 15f4b5990..000000000 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/auth/requestedAction/querymodel/QueryUserAccountsModel.java +++ /dev/null @@ -1,10 +0,0 @@ -/* $This file is distributed under the terms of the license in /doc/license.txt$ */ - -package edu.cornell.mannlib.vitro.webapp.auth.requestedAction.querymodel; - -import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.ifaces.RequestedAction; - -/** Should we allow the user to query the User Accounts model? */ -public class QueryUserAccountsModel extends RequestedAction { - // no fields -} diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/auth/requestedAction/usepages/AccessSpecialDataModels.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/auth/requestedAction/usepages/AccessSpecialDataModels.java deleted file mode 100644 index 5a9040684..000000000 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/auth/requestedAction/usepages/AccessSpecialDataModels.java +++ /dev/null @@ -1,10 +0,0 @@ -/* $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 read any write different data models on request? */ -public class AccessSpecialDataModels extends RequestedAction { - // no fields -} diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/auth/requestedAction/usepages/DoBackEndEditing.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/auth/requestedAction/usepages/DoBackEndEditing.java deleted file mode 100644 index ff807e413..000000000 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/auth/requestedAction/usepages/DoBackEndEditing.java +++ /dev/null @@ -1,11 +0,0 @@ -/* $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 back-end editing pages (blue screen editing)? */ -public class DoBackEndEditing extends RequestedAction implements - UsePagesRequestedAction { - // no fields -} diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/auth/requestedAction/usepages/DoFrontEndEditing.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/auth/requestedAction/usepages/DoFrontEndEditing.java deleted file mode 100644 index 5fc5d88c6..000000000 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/auth/requestedAction/usepages/DoFrontEndEditing.java +++ /dev/null @@ -1,11 +0,0 @@ -/* $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 font-end editing pages (n3 editing) ? */ -public class DoFrontEndEditing extends RequestedAction implements - UsePagesRequestedAction { - // no fields -} diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/auth/requestedAction/usepages/EditOntology.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/auth/requestedAction/usepages/EditOntology.java deleted file mode 100644 index d24a0a327..000000000 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/auth/requestedAction/usepages/EditOntology.java +++ /dev/null @@ -1,11 +0,0 @@ -/* $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 pages for the Ontology Editor? */ -public class EditOntology extends RequestedAction implements - UsePagesRequestedAction { - // no fields -} diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/auth/requestedAction/usepages/EditOwnAccount.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/auth/requestedAction/usepages/EditOwnAccount.java deleted file mode 100644 index 3dc6b73b5..000000000 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/auth/requestedAction/usepages/EditOwnAccount.java +++ /dev/null @@ -1,11 +0,0 @@ -/* $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 edit his own account (name, email, etc)? */ -public class EditOwnAccount extends RequestedAction implements - UsePagesRequestedAction { - // no fields -} diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/auth/requestedAction/usepages/EditSiteInformation.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/auth/requestedAction/usepages/EditSiteInformation.java deleted file mode 100644 index 41ee04a57..000000000 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/auth/requestedAction/usepages/EditSiteInformation.java +++ /dev/null @@ -1,11 +0,0 @@ -/* $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 page for editing the site info? */ -public class EditSiteInformation extends RequestedAction implements - UsePagesRequestedAction { - // no fields -} diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/auth/requestedAction/usepages/ManageMenus.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/auth/requestedAction/usepages/ManageMenus.java deleted file mode 100644 index d6419e39d..000000000 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/auth/requestedAction/usepages/ManageMenus.java +++ /dev/null @@ -1,11 +0,0 @@ -/* $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 pages for editing menus? */ -public class ManageMenus extends RequestedAction implements - UsePagesRequestedAction { - // no fields -} diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/auth/requestedAction/usepages/ManageOwnProxies.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/auth/requestedAction/usepages/ManageOwnProxies.java deleted file mode 100644 index f468b4ea0..000000000 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/auth/requestedAction/usepages/ManageOwnProxies.java +++ /dev/null @@ -1,11 +0,0 @@ -/* $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 manage the proxy editors for his own profile? */ -public class ManageOwnProxies extends RequestedAction implements - UsePagesRequestedAction { - // no fields -} diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/auth/requestedAction/usepages/ManagePortals.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/auth/requestedAction/usepages/ManagePortals.java deleted file mode 100644 index 3c6fb8cc1..000000000 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/auth/requestedAction/usepages/ManagePortals.java +++ /dev/null @@ -1,11 +0,0 @@ -/* $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 pages for editing portals? */ -public class ManagePortals extends RequestedAction implements - UsePagesRequestedAction { - // no fields -} diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/auth/requestedAction/usepages/ManageProxies.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/auth/requestedAction/usepages/ManageProxies.java deleted file mode 100644 index 0e8aafc4d..000000000 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/auth/requestedAction/usepages/ManageProxies.java +++ /dev/null @@ -1,11 +0,0 @@ -/* $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 manage the proxy editors for everyone? */ -public class ManageProxies extends RequestedAction implements - UsePagesRequestedAction { - // no fields -} 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 deleted file mode 100644 index 5d1d7678b..000000000 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/auth/requestedAction/usepages/ManageSearchIndex.java +++ /dev/null @@ -1,11 +0,0 @@ -/* $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/auth/requestedAction/usepages/ManageTabs.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/auth/requestedAction/usepages/ManageTabs.java deleted file mode 100644 index 292ca7029..000000000 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/auth/requestedAction/usepages/ManageTabs.java +++ /dev/null @@ -1,11 +0,0 @@ -/* $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 pages for editing tabs? */ -public class ManageTabs extends RequestedAction implements - UsePagesRequestedAction { - // no fields -} diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/auth/requestedAction/usepages/ManageUserAccounts.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/auth/requestedAction/usepages/ManageUserAccounts.java deleted file mode 100644 index 9c1bf0761..000000000 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/auth/requestedAction/usepages/ManageUserAccounts.java +++ /dev/null @@ -1,11 +0,0 @@ -/* $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 create, edit, or delete user accounts? */ -public class ManageUserAccounts extends RequestedAction implements - UsePagesRequestedAction { - // no fields -} diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/auth/requestedAction/usepages/RefreshVisualizationCacheAction.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/auth/requestedAction/usepages/RefreshVisualizationCacheAction.java deleted file mode 100644 index 8b59d2d84..000000000 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/auth/requestedAction/usepages/RefreshVisualizationCacheAction.java +++ /dev/null @@ -1,10 +0,0 @@ -/* $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 rebuild the cache constructed of models for visualizations? */ -public class RefreshVisualizationCacheAction extends RequestedAction implements UsePagesRequestedAction { - // no fields -} diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/auth/requestedAction/usepages/SeeIndividualEditingPanel.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/auth/requestedAction/usepages/SeeIndividualEditingPanel.java deleted file mode 100644 index 7fdac4062..000000000 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/auth/requestedAction/usepages/SeeIndividualEditingPanel.java +++ /dev/null @@ -1,10 +0,0 @@ -/* $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 see the Editing panel for an individual? */ -public class SeeIndividualEditingPanel extends RequestedAction { - // no fields -} diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/auth/requestedAction/usepages/SeeRevisionInfo.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/auth/requestedAction/usepages/SeeRevisionInfo.java deleted file mode 100644 index 6dd38b3a6..000000000 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/auth/requestedAction/usepages/SeeRevisionInfo.java +++ /dev/null @@ -1,16 +0,0 @@ -/* $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 see the RevisionInfo page? - * - * Note that this will also control whether they see the revision info in the - * footer of all pages. - */ -public class SeeRevisionInfo extends RequestedAction implements - UsePagesRequestedAction { - // no fields -} diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/auth/requestedAction/usepages/SeeSiteAdminPage.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/auth/requestedAction/usepages/SeeSiteAdminPage.java deleted file mode 100644 index 9a4881887..000000000 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/auth/requestedAction/usepages/SeeSiteAdminPage.java +++ /dev/null @@ -1,11 +0,0 @@ -/* $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 Site Admin page? */ -public class SeeSiteAdminPage extends RequestedAction implements - UsePagesRequestedAction { - // no fields -} 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 deleted file mode 100644 index 296b307e4..000000000 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/auth/requestedAction/usepages/SeeStartupStatus.java +++ /dev/null @@ -1,11 +0,0 @@ -/* $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/auth/requestedAction/usepages/SeeVerbosePropertyInformation.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/auth/requestedAction/usepages/SeeVerbosePropertyInformation.java deleted file mode 100644 index c54eaf239..000000000 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/auth/requestedAction/usepages/SeeVerbosePropertyInformation.java +++ /dev/null @@ -1,10 +0,0 @@ -/* $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 see verbose property information? */ -public class SeeVerbosePropertyInformation extends RequestedAction { - // no fields -} diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/auth/requestedAction/usepages/UseAdvancedDataToolsPages.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/auth/requestedAction/usepages/UseAdvancedDataToolsPages.java deleted file mode 100644 index 221585671..000000000 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/auth/requestedAction/usepages/UseAdvancedDataToolsPages.java +++ /dev/null @@ -1,11 +0,0 @@ -/* $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 pages for Advanced Data Tools? */ -public class UseAdvancedDataToolsPages extends RequestedAction implements - UsePagesRequestedAction { - // no fields -} diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/auth/requestedAction/usepages/UseBasicAjaxControllers.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/auth/requestedAction/usepages/UseBasicAjaxControllers.java deleted file mode 100644 index 9e1070146..000000000 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/auth/requestedAction/usepages/UseBasicAjaxControllers.java +++ /dev/null @@ -1,11 +0,0 @@ -/* $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 basic Ajax controllers? */ -public class UseBasicAjaxControllers extends RequestedAction implements - UsePagesRequestedAction { - // no fields -} diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/auth/requestedAction/usepages/UseMiscellaneousAdminPages.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/auth/requestedAction/usepages/UseMiscellaneousAdminPages.java deleted file mode 100644 index ab5280efd..000000000 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/auth/requestedAction/usepages/UseMiscellaneousAdminPages.java +++ /dev/null @@ -1,11 +0,0 @@ -/* $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 DBAs? */ -public class UseMiscellaneousAdminPages extends RequestedAction implements - UsePagesRequestedAction { - // no fields -} diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/auth/requestedAction/usepages/UseMiscellaneousCuratorPages.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/auth/requestedAction/usepages/UseMiscellaneousCuratorPages.java deleted file mode 100644 index 0b013d5b0..000000000 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/auth/requestedAction/usepages/UseMiscellaneousCuratorPages.java +++ /dev/null @@ -1,11 +0,0 @@ -/* $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 Curators or DBAs? */ -public class UseMiscellaneousCuratorPages extends RequestedAction implements - UsePagesRequestedAction { - // no fields -} 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 deleted file mode 100644 index 6b03bc755..000000000 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/auth/requestedAction/usepages/UseMiscellaneousEditorPages.java +++ /dev/null @@ -1,11 +0,0 @@ -/* $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/auth/requestedAction/usepages/UseMiscellaneousPages.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/auth/requestedAction/usepages/UseMiscellaneousPages.java deleted file mode 100644 index ed48b69d9..000000000 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/auth/requestedAction/usepages/UseMiscellaneousPages.java +++ /dev/null @@ -1,14 +0,0 @@ -/* $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 - * anyone who is logged in? - */ -public class UseMiscellaneousPages extends RequestedAction implements - UsePagesRequestedAction { - // no fields -} diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/beans/PermissionSet.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/beans/PermissionSet.java index 160fb7c62..0af4001a8 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/beans/PermissionSet.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/beans/PermissionSet.java @@ -18,6 +18,8 @@ public class PermissionSet { /** This may be empty, but it should never be null. */ private String label = ""; + private boolean defaultForNewUsers; + /** This may be empty, but it should never be null. */ private Set permissionUris = Collections.emptySet(); @@ -37,6 +39,15 @@ public class PermissionSet { this.label = (label == null) ? "" : label; } + public boolean isDefaultForNewUsers() { + return defaultForNewUsers; + } + + public void setDefaultForNewUsers(Boolean defaultForNewUsers) { + this.defaultForNewUsers = (defaultForNewUsers == null) ? false + : defaultForNewUsers.booleanValue(); + } + public Set getPermissionUris() { return permissionUris; } diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/SparqlQueryBuilderServlet.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/SparqlQueryBuilderServlet.java index e09f84d91..3083c4663 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/SparqlQueryBuilderServlet.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/SparqlQueryBuilderServlet.java @@ -19,8 +19,7 @@ import com.hp.hpl.jena.rdf.model.Model; import com.hp.hpl.jena.sparql.resultset.ResultSetFormat; import edu.cornell.mannlib.vedit.controller.BaseEditController; -import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.Actions; -import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.usepages.UseAdvancedDataToolsPages; +import edu.cornell.mannlib.vitro.webapp.auth.permissions.SimplePermission; /** * This servlet works as a RequestDispatcher to direct to the sparl query builder page. @@ -72,7 +71,8 @@ public class SparqlQueryBuilderServlet extends BaseEditController { protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { - if (!isAuthorizedToDisplayPage(request, response, new Actions(new UseAdvancedDataToolsPages()))) { + if (!isAuthorizedToDisplayPage(request, response, + SimplePermission.USE_ADVANCED_DATA_TOOLS_PAGES.ACTIONS)) { return; } diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/SparqlQueryServlet.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/SparqlQueryServlet.java index 9590b5da0..dd6db37c2 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/SparqlQueryServlet.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/SparqlQueryServlet.java @@ -44,8 +44,7 @@ import com.hp.hpl.jena.sparql.resultset.ResultSetFormat; import com.hp.hpl.jena.vocabulary.XSD; import edu.cornell.mannlib.vedit.controller.BaseEditController; -import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.Actions; -import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.usepages.UseAdvancedDataToolsPages; +import edu.cornell.mannlib.vitro.webapp.auth.permissions.SimplePermission; import edu.cornell.mannlib.vitro.webapp.beans.Ontology; import edu.cornell.mannlib.vitro.webapp.dao.OntologyDao; import edu.cornell.mannlib.vitro.webapp.utils.SparqlQueryUtils; @@ -101,7 +100,8 @@ public class SparqlQueryServlet extends BaseEditController { protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { - if (!isAuthorizedToDisplayPage(request, response, new Actions(new UseAdvancedDataToolsPages()))) { + if (!isAuthorizedToDisplayPage(request, response, + SimplePermission.USE_ADVANCED_DATA_TOOLS_PAGES.ACTIONS)) { return; } diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/accounts/admin/UserAccountsAdminController.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/accounts/admin/UserAccountsAdminController.java index 9a3b73d10..c8457d8ad 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/accounts/admin/UserAccountsAdminController.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/accounts/admin/UserAccountsAdminController.java @@ -7,8 +7,8 @@ import java.util.Collection; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import edu.cornell.mannlib.vitro.webapp.auth.permissions.SimplePermission; import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.Actions; -import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.usepages.ManageUserAccounts; import edu.cornell.mannlib.vitro.webapp.beans.DisplayMessage; import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest; import edu.cornell.mannlib.vitro.webapp.controller.freemarker.FreemarkerHttpServlet; @@ -29,7 +29,7 @@ public class UserAccountsAdminController extends FreemarkerHttpServlet { @Override protected Actions requiredActions(VitroRequest vreq) { - return new Actions(new ManageUserAccounts()); + return SimplePermission.MANAGE_USER_ACCOUNTS.ACTIONS; } @Override diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/accounts/admin/ajax/UserAccountsAjaxController.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/accounts/admin/ajax/UserAccountsAjaxController.java index ba3e7b269..6c6f23076 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/accounts/admin/ajax/UserAccountsAjaxController.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/accounts/admin/ajax/UserAccountsAjaxController.java @@ -10,8 +10,8 @@ import javax.servlet.http.HttpServletResponse; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import edu.cornell.mannlib.vitro.webapp.auth.permissions.SimplePermission; import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.Actions; -import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.usepages.ManageUserAccounts; import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest; import edu.cornell.mannlib.vitro.webapp.controller.ajax.VitroAjaxController; @@ -26,7 +26,7 @@ public class UserAccountsAjaxController extends VitroAjaxController { @Override protected Actions requiredActions(VitroRequest vreq) { - return new Actions(new ManageUserAccounts()); + return SimplePermission.MANAGE_USER_ACCOUNTS.ACTIONS; } @Override diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/accounts/manageproxies/ManageProxiesController.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/accounts/manageproxies/ManageProxiesController.java index ffcaf5afa..53169ef27 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/accounts/manageproxies/ManageProxiesController.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/accounts/manageproxies/ManageProxiesController.java @@ -7,8 +7,8 @@ import java.util.Map; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import edu.cornell.mannlib.vitro.webapp.auth.permissions.SimplePermission; import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.Actions; -import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.usepages.ManageProxies; import edu.cornell.mannlib.vitro.webapp.controller.AbstractPageHandler.Message; import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest; import edu.cornell.mannlib.vitro.webapp.controller.freemarker.FreemarkerHttpServlet; @@ -27,7 +27,7 @@ public class ManageProxiesController extends FreemarkerHttpServlet { @Override protected Actions requiredActions(VitroRequest vreq) { - return new Actions(new ManageProxies()); + return SimplePermission.MANAGE_PROXIES.ACTIONS; } @Override diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/accounts/manageproxies/ajax/ManageProxiesAjaxController.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/accounts/manageproxies/ajax/ManageProxiesAjaxController.java index 4747e6bc3..7fbfd3e1d 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/accounts/manageproxies/ajax/ManageProxiesAjaxController.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/accounts/manageproxies/ajax/ManageProxiesAjaxController.java @@ -10,9 +10,8 @@ import javax.servlet.http.HttpServletResponse; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import edu.cornell.mannlib.vitro.webapp.auth.permissions.SimplePermission; import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.Actions; -import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.usepages.ManageOwnProxies; -import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.usepages.ManageProxies; import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest; import edu.cornell.mannlib.vitro.webapp.controller.ajax.VitroAjaxController; @@ -27,7 +26,8 @@ public class ManageProxiesAjaxController extends VitroAjaxController { @Override protected Actions requiredActions(VitroRequest vreq) { - return new Actions(new ManageOwnProxies()).or(new ManageProxies()); + return SimplePermission.MANAGE_OWN_PROXIES.ACTIONS + .or(SimplePermission.MANAGE_PROXIES.ACTION); } @Override diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/accounts/user/UserAccountsMyAccountPage.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/accounts/user/UserAccountsMyAccountPage.java index 7dde0303f..19feb2bc4 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/accounts/user/UserAccountsMyAccountPage.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/accounts/user/UserAccountsMyAccountPage.java @@ -13,8 +13,8 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import edu.cornell.mannlib.vedit.beans.LoginStatusBean; +import edu.cornell.mannlib.vitro.webapp.auth.permissions.SimplePermission; import edu.cornell.mannlib.vitro.webapp.auth.policy.PolicyHelper; -import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.usepages.ManageOwnProxies; import edu.cornell.mannlib.vitro.webapp.beans.Individual; import edu.cornell.mannlib.vitro.webapp.beans.SelfEditingConfiguration; import edu.cornell.mannlib.vitro.webapp.beans.UserAccount; @@ -201,8 +201,8 @@ public class UserAccountsMyAccountPage extends UserAccountsPage { } boolean isProxyPanelAuthorized() { - return PolicyHelper - .isAuthorizedForActions(vreq, new ManageOwnProxies()) + return PolicyHelper.isAuthorizedForActions(vreq, + SimplePermission.MANAGE_OWN_PROXIES.ACTIONS) && (getProfilePage(userAccount) != null); } diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/accounts/user/UserAccountsUserController.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/accounts/user/UserAccountsUserController.java index c15933cdc..ac1a73519 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/accounts/user/UserAccountsUserController.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/accounts/user/UserAccountsUserController.java @@ -7,8 +7,8 @@ import static edu.cornell.mannlib.vedit.beans.LoginStatusBean.AuthenticationSour import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import edu.cornell.mannlib.vitro.webapp.auth.permissions.SimplePermission; import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.Actions; -import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.usepages.EditOwnAccount; import edu.cornell.mannlib.vitro.webapp.beans.DisplayMessage; import edu.cornell.mannlib.vitro.webapp.beans.UserAccount; import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest; @@ -37,7 +37,7 @@ public class UserAccountsUserController extends FreemarkerHttpServlet { String action = vreq.getPathInfo(); if (ACTION_MY_ACCOUNT.equals(action)) { - return new Actions(new EditOwnAccount()); + return SimplePermission.EDIT_OWN_ACCOUNT.ACTIONS; } else { return Actions.AUTHORIZED; } 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 index a782954ea..2b5866b5a 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/admin/StartupStatusController.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/admin/StartupStatusController.java @@ -5,8 +5,8 @@ package edu.cornell.mannlib.vitro.webapp.controller.admin; import java.util.HashMap; import java.util.Map; +import edu.cornell.mannlib.vitro.webapp.auth.permissions.SimplePermission; 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.beans.ApplicationBean; import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest; import edu.cornell.mannlib.vitro.webapp.controller.freemarker.FreemarkerHttpServlet; @@ -21,7 +21,7 @@ public class StartupStatusController extends FreemarkerHttpServlet { @Override protected Actions requiredActions(VitroRequest vreq) { - return new Actions(new SeeStartupStatus()); + return SimplePermission.SEE_STARTUP_STATUS.ACTIONS; } @Override diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/ajax/SparqlQueryAjaxController.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/ajax/SparqlQueryAjaxController.java index 5801a8409..de461c8cb 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/ajax/SparqlQueryAjaxController.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/ajax/SparqlQueryAjaxController.java @@ -26,9 +26,9 @@ import com.hp.hpl.jena.query.ResultSetFormatter; import com.hp.hpl.jena.query.Syntax; import com.hp.hpl.jena.rdf.model.Model; +import edu.cornell.mannlib.vitro.webapp.auth.permissions.SimplePermission; import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.Actions; import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.querymodel.QueryFullModel; -import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.querymodel.QueryUserAccountsModel; import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest; import edu.cornell.mannlib.vitro.webapp.dao.jena.OntModelSelector; @@ -53,7 +53,7 @@ public class SparqlQueryAjaxController extends VitroAjaxController { protected Actions requiredActions(VitroRequest vreq) { String modelParam = getModelParam(vreq); if (OPTION_MODEL_USER_ACCOUNTS.equals(modelParam)) { - return new Actions(new QueryUserAccountsModel()); + return SimplePermission.QUERY_USER_ACCOUNTS_MODEL.ACTIONS; } else { return new Actions(new QueryFullModel()); } diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/ApplicationBeanRetryController.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/ApplicationBeanRetryController.java index dea8ecad7..889708376 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/ApplicationBeanRetryController.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/ApplicationBeanRetryController.java @@ -20,8 +20,7 @@ import edu.cornell.mannlib.vedit.beans.FormObject; import edu.cornell.mannlib.vedit.beans.Option; import edu.cornell.mannlib.vedit.controller.BaseEditController; import edu.cornell.mannlib.vedit.util.FormUtils; -import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.Actions; -import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.usepages.EditSiteInformation; +import edu.cornell.mannlib.vitro.webapp.auth.permissions.SimplePermission; import edu.cornell.mannlib.vitro.webapp.beans.ApplicationBean; import edu.cornell.mannlib.vitro.webapp.controller.Controllers; import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest; @@ -33,7 +32,8 @@ public class ApplicationBeanRetryController extends BaseEditController { public void doPost (HttpServletRequest req, HttpServletResponse response) { - if (!isAuthorizedToDisplayPage(req, response, new Actions(new EditSiteInformation()))) { + if (!isAuthorizedToDisplayPage(req, response, + SimplePermission.EDIT_SITE_INFORMATION.ACTIONS)) { return; } diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/Classes2ClassesOperationController.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/Classes2ClassesOperationController.java index 75b9c0efa..7829d9765 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/Classes2ClassesOperationController.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/Classes2ClassesOperationController.java @@ -13,8 +13,7 @@ import org.apache.commons.logging.LogFactory; import edu.cornell.mannlib.vedit.beans.EditProcessObject; import edu.cornell.mannlib.vedit.controller.BaseEditController; -import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.Actions; -import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.usepages.EditOntology; +import edu.cornell.mannlib.vitro.webapp.auth.permissions.SimplePermission; import edu.cornell.mannlib.vitro.webapp.beans.Classes2Classes; import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest; import edu.cornell.mannlib.vitro.webapp.dao.Classes2ClassesDao; @@ -25,7 +24,7 @@ public class Classes2ClassesOperationController extends BaseEditController { private static final Log log = LogFactory.getLog(Classes2ClassesOperationController.class.getName()); public void doGet(HttpServletRequest req, HttpServletResponse response) { - if (!isAuthorizedToDisplayPage(req, response, new Actions(new EditOntology()))) { + if (!isAuthorizedToDisplayPage(req, response, SimplePermission.EDIT_ONTOLOGY.ACTIONS)) { return; } diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/Classes2ClassesRetryController.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/Classes2ClassesRetryController.java index 1a6c2b685..011d8d757 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/Classes2ClassesRetryController.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/Classes2ClassesRetryController.java @@ -15,8 +15,7 @@ import edu.cornell.mannlib.vedit.beans.EditProcessObject; import edu.cornell.mannlib.vedit.beans.FormObject; import edu.cornell.mannlib.vedit.controller.BaseEditController; import edu.cornell.mannlib.vedit.util.FormUtils; -import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.Actions; -import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.usepages.EditOntology; +import edu.cornell.mannlib.vitro.webapp.auth.permissions.SimplePermission; import edu.cornell.mannlib.vitro.webapp.beans.Classes2Classes; import edu.cornell.mannlib.vitro.webapp.controller.Controllers; import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest; @@ -28,7 +27,7 @@ public class Classes2ClassesRetryController extends BaseEditController { private static final Log log = LogFactory.getLog(Classes2ClassesRetryController.class.getName()); public void doPost (HttpServletRequest req, HttpServletResponse response) { - if (!isAuthorizedToDisplayPage(req, response, new Actions(new EditOntology()))) { + if (!isAuthorizedToDisplayPage(req, response, SimplePermission.EDIT_ONTOLOGY.ACTIONS)) { return; } diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/ClassgroupRetryController.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/ClassgroupRetryController.java index fcb41574d..a8ceda4e3 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/ClassgroupRetryController.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/ClassgroupRetryController.java @@ -21,8 +21,7 @@ import edu.cornell.mannlib.vedit.forwarder.impl.UrlForwarder; import edu.cornell.mannlib.vedit.util.FormUtils; import edu.cornell.mannlib.vedit.validator.Validator; import edu.cornell.mannlib.vedit.validator.impl.RequiredFieldValidator; -import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.Actions; -import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.usepages.UseMiscellaneousAdminPages; +import edu.cornell.mannlib.vitro.webapp.auth.permissions.SimplePermission; import edu.cornell.mannlib.vitro.webapp.beans.VClassGroup; import edu.cornell.mannlib.vitro.webapp.controller.Controllers; import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest; @@ -34,7 +33,8 @@ public class ClassgroupRetryController extends BaseEditController { private static final Log log = LogFactory.getLog(ClassgroupRetryController.class.getName()); public void doPost (HttpServletRequest req, HttpServletResponse response) { - if (!isAuthorizedToDisplayPage(req, response, new Actions(new UseMiscellaneousAdminPages()))) { + if (!isAuthorizedToDisplayPage(req, response, + SimplePermission.USE_MISCELLANEOUS_ADMIN_PAGES.ACTIONS)) { return; } diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/DataPropertyStatementRetryController.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/DataPropertyStatementRetryController.java index 50b2132dc..0b60c2478 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/DataPropertyStatementRetryController.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/DataPropertyStatementRetryController.java @@ -18,8 +18,7 @@ import edu.cornell.mannlib.vedit.beans.FormObject; import edu.cornell.mannlib.vedit.beans.Option; import edu.cornell.mannlib.vedit.controller.BaseEditController; import edu.cornell.mannlib.vedit.util.FormUtils; -import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.Actions; -import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.usepages.DoBackEndEditing; +import edu.cornell.mannlib.vitro.webapp.auth.permissions.SimplePermission; import edu.cornell.mannlib.vitro.webapp.beans.DataProperty; import edu.cornell.mannlib.vitro.webapp.beans.DataPropertyStatement; import edu.cornell.mannlib.vitro.webapp.beans.DataPropertyStatementImpl; @@ -35,9 +34,10 @@ public class DataPropertyStatementRetryController extends BaseEditController { private static final Log log = LogFactory.getLog(DataPropertyStatementRetryController.class.getName()); public void doPost (HttpServletRequest request, HttpServletResponse response) { - if (!isAuthorizedToDisplayPage(request, response, new Actions(new DoBackEndEditing()))) { - return; - } + if (!isAuthorizedToDisplayPage(request, response, + SimplePermission.DO_BACK_END_EDITING.ACTIONS)) { + return; + } //create an EditProcessObject for this and put it in the session EditProcessObject epo = super.createEpo(request); diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/DatapropEditController.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/DatapropEditController.java index 8bf3792da..8f2f8a172 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/DatapropEditController.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/DatapropEditController.java @@ -19,8 +19,7 @@ import org.apache.commons.logging.LogFactory; import edu.cornell.mannlib.vedit.beans.EditProcessObject; import edu.cornell.mannlib.vedit.beans.FormObject; import edu.cornell.mannlib.vedit.controller.BaseEditController; -import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.Actions; -import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.usepages.EditOntology; +import edu.cornell.mannlib.vitro.webapp.auth.permissions.SimplePermission; import edu.cornell.mannlib.vitro.webapp.beans.ApplicationBean; import edu.cornell.mannlib.vitro.webapp.beans.DataProperty; import edu.cornell.mannlib.vitro.webapp.beans.Ontology; @@ -35,7 +34,7 @@ public class DatapropEditController extends BaseEditController { private static final Log log = LogFactory.getLog(DatapropEditController.class.getName()); public void doPost (HttpServletRequest request, HttpServletResponse response) { - if (!isAuthorizedToDisplayPage(request, response, new Actions(new EditOntology()))) { + if (!isAuthorizedToDisplayPage(request, response, SimplePermission.EDIT_ONTOLOGY.ACTIONS)) { return; } diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/DatapropRetryController.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/DatapropRetryController.java index a04658bb1..e2ca0c95e 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/DatapropRetryController.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/DatapropRetryController.java @@ -25,9 +25,8 @@ import edu.cornell.mannlib.vedit.forwarder.impl.UrlForwarder; import edu.cornell.mannlib.vedit.util.FormUtils; import edu.cornell.mannlib.vedit.validator.impl.IntValidator; import edu.cornell.mannlib.vedit.validator.impl.XMLNameValidator; +import edu.cornell.mannlib.vitro.webapp.auth.permissions.SimplePermission; import edu.cornell.mannlib.vitro.webapp.auth.policy.bean.PropertyRestrictionListener; -import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.Actions; -import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.usepages.EditOntology; import edu.cornell.mannlib.vitro.webapp.beans.DataProperty; import edu.cornell.mannlib.vitro.webapp.beans.VClass; import edu.cornell.mannlib.vitro.webapp.controller.Controllers; @@ -45,7 +44,7 @@ public class DatapropRetryController extends BaseEditController { @Override public void doPost (HttpServletRequest request, HttpServletResponse response) { - if (!isAuthorizedToDisplayPage(request, response, new Actions(new EditOntology()))) { + if (!isAuthorizedToDisplayPage(request, response, SimplePermission.EDIT_ONTOLOGY.ACTIONS)) { return; } diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/DatatypeRetryController.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/DatatypeRetryController.java index d0a744f59..04055e945 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/DatatypeRetryController.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/DatatypeRetryController.java @@ -16,8 +16,7 @@ import edu.cornell.mannlib.vedit.beans.FormObject; import edu.cornell.mannlib.vedit.controller.BaseEditController; import edu.cornell.mannlib.vedit.forwarder.PageForwarder; import edu.cornell.mannlib.vedit.util.FormUtils; -import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.Actions; -import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.usepages.EditOntology; +import edu.cornell.mannlib.vitro.webapp.auth.permissions.SimplePermission; import edu.cornell.mannlib.vitro.webapp.beans.Datatype; import edu.cornell.mannlib.vitro.webapp.controller.Controllers; import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest; @@ -29,7 +28,7 @@ public class DatatypeRetryController extends BaseEditController { private static final Log log = LogFactory.getLog(DatatypeRetryController.class.getName()); public void doPost (HttpServletRequest req, HttpServletResponse response) { - if (!isAuthorizedToDisplayPage(req, response, new Actions(new EditOntology()))) { + if (!isAuthorizedToDisplayPage(req, response, SimplePermission.EDIT_ONTOLOGY.ACTIONS)) { return; } diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/EntityEditController.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/EntityEditController.java index b66dc6157..3e2e6bce1 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/EntityEditController.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/EntityEditController.java @@ -15,7 +15,6 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.commons.codec.binary.Base64; -import org.apache.commons.collections.map.ListOrderedMap; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -24,15 +23,13 @@ import edu.cornell.mannlib.vedit.beans.FormObject; import edu.cornell.mannlib.vedit.beans.Option; import edu.cornell.mannlib.vedit.controller.BaseEditController; import edu.cornell.mannlib.vedit.util.FormUtils; -import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.Actions; -import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.usepages.DoBackEndEditing; +import edu.cornell.mannlib.vitro.webapp.auth.permissions.SimplePermission; import edu.cornell.mannlib.vitro.webapp.beans.ApplicationBean; import edu.cornell.mannlib.vitro.webapp.beans.DataPropertyStatement; import edu.cornell.mannlib.vitro.webapp.beans.Individual; import edu.cornell.mannlib.vitro.webapp.beans.IndividualImpl; import edu.cornell.mannlib.vitro.webapp.beans.PropertyInstance; import edu.cornell.mannlib.vitro.webapp.beans.VClass; -import edu.cornell.mannlib.vitro.webapp.beans.VClassGroup; import edu.cornell.mannlib.vitro.webapp.controller.Controllers; import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest; import edu.cornell.mannlib.vitro.webapp.dao.PropertyInstanceDao; @@ -42,7 +39,8 @@ public class EntityEditController extends BaseEditController { private static final Log log = LogFactory.getLog(EntityEditController.class.getName()); public void doGet (HttpServletRequest request, HttpServletResponse response) { - if (!isAuthorizedToDisplayPage(request, response, new Actions(new DoBackEndEditing()))) { + if (!isAuthorizedToDisplayPage(request, response, + SimplePermission.DO_BACK_END_EDITING.ACTIONS)) { return; } diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/EntityRetryController.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/EntityRetryController.java index 617916f47..4cc312433 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/EntityRetryController.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/EntityRetryController.java @@ -7,14 +7,12 @@ import java.net.URLEncoder; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.ArrayList; -import java.util.Calendar; import java.util.Collections; import java.util.HashMap; import java.util.Iterator; import java.util.LinkedList; import java.util.List; import java.util.Map; -import java.util.TimeZone; import javax.servlet.RequestDispatcher; import javax.servlet.http.HttpServletRequest; @@ -35,9 +33,8 @@ import edu.cornell.mannlib.vedit.forwarder.PageForwarder; import edu.cornell.mannlib.vedit.forwarder.impl.UrlForwarder; import edu.cornell.mannlib.vedit.util.FormUtils; import edu.cornell.mannlib.vedit.validator.impl.RequiredFieldValidator; +import edu.cornell.mannlib.vitro.webapp.auth.permissions.SimplePermission; import edu.cornell.mannlib.vitro.webapp.beans.ApplicationBean; -import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.Actions; -import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.usepages.DoBackEndEditing; import edu.cornell.mannlib.vitro.webapp.beans.DataProperty; import edu.cornell.mannlib.vitro.webapp.beans.DataPropertyStatement; import edu.cornell.mannlib.vitro.webapp.beans.Individual; @@ -59,7 +56,8 @@ public class EntityRetryController extends BaseEditController { private static final Log log = LogFactory.getLog(EntityRetryController.class.getName()); public void doPost (HttpServletRequest request, HttpServletResponse response) { - if (!isAuthorizedToDisplayPage(request, response, new Actions(new DoBackEndEditing()))) { + if (!isAuthorizedToDisplayPage(request, response, + SimplePermission.DO_BACK_END_EDITING.ACTIONS)) { return; } diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/ExternalIdRetryController.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/ExternalIdRetryController.java index 0785f7c8d..944e0ead4 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/ExternalIdRetryController.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/ExternalIdRetryController.java @@ -19,8 +19,7 @@ import edu.cornell.mannlib.vedit.beans.FormObject; import edu.cornell.mannlib.vedit.beans.Option; import edu.cornell.mannlib.vedit.controller.BaseEditController; import edu.cornell.mannlib.vedit.util.FormUtils; -import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.Actions; -import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.usepages.DoBackEndEditing; +import edu.cornell.mannlib.vitro.webapp.auth.permissions.SimplePermission; import edu.cornell.mannlib.vitro.webapp.beans.DataPropertyStatement; import edu.cornell.mannlib.vitro.webapp.beans.DataPropertyStatementImpl; import edu.cornell.mannlib.vitro.webapp.beans.Individual; @@ -35,7 +34,8 @@ public class ExternalIdRetryController extends BaseEditController { private static final Log log = LogFactory.getLog(ExternalIdRetryController.class.getName()); public void doPost (HttpServletRequest request, HttpServletResponse response) { - if (!isAuthorizedToDisplayPage(request, response, new Actions(new DoBackEndEditing()))) { + if (!isAuthorizedToDisplayPage(request, response, + SimplePermission.DO_BACK_END_EDITING.ACTIONS)) { return; } diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/IndividualTypeOperationController.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/IndividualTypeOperationController.java index ff3fa8cd2..b3c6303b6 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/IndividualTypeOperationController.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/IndividualTypeOperationController.java @@ -13,8 +13,7 @@ import org.apache.commons.logging.LogFactory; import edu.cornell.mannlib.vedit.beans.EditProcessObject; import edu.cornell.mannlib.vedit.controller.BaseEditController; -import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.Actions; -import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.usepages.DoBackEndEditing; +import edu.cornell.mannlib.vitro.webapp.auth.permissions.SimplePermission; import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest; import edu.cornell.mannlib.vitro.webapp.dao.IndividualDao; @@ -23,7 +22,8 @@ public class IndividualTypeOperationController extends BaseEditController { private static final Log log = LogFactory.getLog(IndividualTypeOperationController.class.getName()); public void doGet(HttpServletRequest req, HttpServletResponse response) { - if (!isAuthorizedToDisplayPage(req, response, new Actions(new DoBackEndEditing()))) { + if (!isAuthorizedToDisplayPage(req, response, + SimplePermission.DO_BACK_END_EDITING.ACTIONS)) { return; } diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/IndividualTypeRetryController.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/IndividualTypeRetryController.java index ba528ca49..ef899b81b 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/IndividualTypeRetryController.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/IndividualTypeRetryController.java @@ -25,8 +25,7 @@ import edu.cornell.mannlib.vedit.beans.EditProcessObject; import edu.cornell.mannlib.vedit.beans.FormObject; import edu.cornell.mannlib.vedit.beans.Option; import edu.cornell.mannlib.vedit.controller.BaseEditController; -import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.Actions; -import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.usepages.DoBackEndEditing; +import edu.cornell.mannlib.vitro.webapp.auth.permissions.SimplePermission; import edu.cornell.mannlib.vitro.webapp.beans.Individual; import edu.cornell.mannlib.vitro.webapp.beans.IndividualImpl; import edu.cornell.mannlib.vitro.webapp.beans.VClass; @@ -41,7 +40,8 @@ public class IndividualTypeRetryController extends BaseEditController { private static final Log log = LogFactory.getLog(IndividualTypeRetryController.class.getName()); public void doGet (HttpServletRequest request, HttpServletResponse response) { - if (!isAuthorizedToDisplayPage(request, response, new Actions(new DoBackEndEditing()))) { + if (!isAuthorizedToDisplayPage(request, response, + SimplePermission.DO_BACK_END_EDITING.ACTIONS)) { return; } diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/NamespacePrefixOperationController.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/NamespacePrefixOperationController.java index 5488392b2..50e60642b 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/NamespacePrefixOperationController.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/NamespacePrefixOperationController.java @@ -22,8 +22,7 @@ import com.hp.hpl.jena.shared.Lock; import edu.cornell.mannlib.vedit.beans.EditProcessObject; import edu.cornell.mannlib.vedit.controller.BaseEditController; -import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.Actions; -import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.usepages.UseMiscellaneousAdminPages; +import edu.cornell.mannlib.vitro.webapp.auth.permissions.SimplePermission; import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest; import edu.cornell.mannlib.vitro.webapp.dao.VitroVocabulary; @@ -32,7 +31,8 @@ public class NamespacePrefixOperationController extends BaseEditController { private static final Log log = LogFactory.getLog(IndividualTypeOperationController.class.getName()); public void doPost(HttpServletRequest req, HttpServletResponse response) { - if (!isAuthorizedToDisplayPage(req, response, new Actions(new UseMiscellaneousAdminPages()))) { + if (!isAuthorizedToDisplayPage(req, response, + SimplePermission.USE_MISCELLANEOUS_ADMIN_PAGES.ACTIONS)) { return; } diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/NamespacePrefixRetryController.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/NamespacePrefixRetryController.java index 10b114988..efa7480bf 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/NamespacePrefixRetryController.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/NamespacePrefixRetryController.java @@ -11,8 +11,7 @@ import org.apache.commons.logging.LogFactory; import edu.cornell.mannlib.vedit.beans.EditProcessObject; import edu.cornell.mannlib.vedit.controller.BaseEditController; -import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.Actions; -import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.usepages.UseMiscellaneousAdminPages; +import edu.cornell.mannlib.vitro.webapp.auth.permissions.SimplePermission; import edu.cornell.mannlib.vitro.webapp.controller.Controllers; public class NamespacePrefixRetryController extends BaseEditController { @@ -20,7 +19,8 @@ public class NamespacePrefixRetryController extends BaseEditController { private static final Log log = LogFactory.getLog(NamespacePrefixRetryController.class.getName()); public void doGet(HttpServletRequest request, HttpServletResponse response) { - if (!isAuthorizedToDisplayPage(request, response, new Actions(new UseMiscellaneousAdminPages()))) { + if (!isAuthorizedToDisplayPage(request, response, + SimplePermission.USE_MISCELLANEOUS_ADMIN_PAGES.ACTIONS)) { return; } diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/ObjectPropertyStatementRetryController.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/ObjectPropertyStatementRetryController.java index f584e8722..2eaf3a7ca 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/ObjectPropertyStatementRetryController.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/ObjectPropertyStatementRetryController.java @@ -23,8 +23,7 @@ import edu.cornell.mannlib.vedit.beans.FormObject; import edu.cornell.mannlib.vedit.beans.Option; import edu.cornell.mannlib.vedit.controller.BaseEditController; import edu.cornell.mannlib.vedit.util.FormUtils; -import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.Actions; -import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.usepages.DoBackEndEditing; +import edu.cornell.mannlib.vitro.webapp.auth.permissions.SimplePermission; import edu.cornell.mannlib.vitro.webapp.beans.Individual; import edu.cornell.mannlib.vitro.webapp.beans.ObjectProperty; import edu.cornell.mannlib.vitro.webapp.beans.PropertyInstance; @@ -42,7 +41,8 @@ public class ObjectPropertyStatementRetryController extends BaseEditController { private static final Log log = LogFactory.getLog(ObjectPropertyStatementRetryController.class.getName()); public void doPost (HttpServletRequest request, HttpServletResponse response) { - if (!isAuthorizedToDisplayPage(request, response, new Actions(new DoBackEndEditing()))) { + if (!isAuthorizedToDisplayPage(request, response, + SimplePermission.DO_BACK_END_EDITING.ACTIONS)) { return; } diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/OntologyEditController.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/OntologyEditController.java index c90b4b636..f77c4b9dc 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/OntologyEditController.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/OntologyEditController.java @@ -17,8 +17,7 @@ import edu.cornell.mannlib.vedit.beans.EditProcessObject; import edu.cornell.mannlib.vedit.beans.FormObject; import edu.cornell.mannlib.vedit.beans.Option; import edu.cornell.mannlib.vedit.controller.BaseEditController; -import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.Actions; -import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.usepages.EditOntology; +import edu.cornell.mannlib.vitro.webapp.auth.permissions.SimplePermission; import edu.cornell.mannlib.vitro.webapp.beans.Ontology; import edu.cornell.mannlib.vitro.webapp.controller.Controllers; import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest; @@ -31,7 +30,7 @@ public class OntologyEditController extends BaseEditController { @Override public void doPost (HttpServletRequest req, HttpServletResponse response) { - if (!isAuthorizedToDisplayPage(req, response, new Actions(new EditOntology()))) { + if (!isAuthorizedToDisplayPage(req, response, SimplePermission.EDIT_ONTOLOGY.ACTIONS)) { return; } diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/OntologyRetryController.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/OntologyRetryController.java index 464777d6c..70827553e 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/OntologyRetryController.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/OntologyRetryController.java @@ -22,8 +22,7 @@ import edu.cornell.mannlib.vedit.forwarder.impl.UrlForwarder; import edu.cornell.mannlib.vedit.util.FormUtils; import edu.cornell.mannlib.vedit.validator.Validator; import edu.cornell.mannlib.vedit.validator.impl.RequiredFieldValidator; -import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.Actions; -import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.usepages.EditOntology; +import edu.cornell.mannlib.vitro.webapp.auth.permissions.SimplePermission; import edu.cornell.mannlib.vitro.webapp.beans.Ontology; import edu.cornell.mannlib.vitro.webapp.controller.Controllers; import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest; @@ -34,7 +33,7 @@ public class OntologyRetryController extends BaseEditController { private static final Log log = LogFactory.getLog(OntologyRetryController.class.getName()); public void doPost (HttpServletRequest req, HttpServletResponse response) { - if (!isAuthorizedToDisplayPage(req, response, new Actions(new EditOntology()))) { + if (!isAuthorizedToDisplayPage(req, response, SimplePermission.EDIT_ONTOLOGY.ACTIONS)) { return; } diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/PrimitiveDelete.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/PrimitiveDelete.java index 3072ea026..f5dfe6836 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/PrimitiveDelete.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/PrimitiveDelete.java @@ -9,8 +9,8 @@ import org.apache.commons.lang.StringUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import edu.cornell.mannlib.vitro.webapp.auth.permissions.SimplePermission; import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.Actions; -import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.usepages.UseBasicAjaxControllers; import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest; import edu.cornell.mannlib.vitro.webapp.controller.ajax.VitroAjaxController; import edu.cornell.mannlib.vitro.webapp.dao.IndividualDao; @@ -24,7 +24,7 @@ public class PrimitiveDelete extends VitroAjaxController { @Override protected Actions requiredActions(VitroRequest vreq) { - return new Actions(new UseBasicAjaxControllers()); + return SimplePermission.USE_BASIC_AJAX_CONTROLLERS.ACTIONS; } @Override diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/PrimitiveRdfEdit.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/PrimitiveRdfEdit.java index 8976e369d..d78b04a87 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/PrimitiveRdfEdit.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/PrimitiveRdfEdit.java @@ -9,9 +9,7 @@ import java.util.HashSet; import java.util.Set; import javax.servlet.ServletException; -import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; -import javax.servlet.http.HttpSession; import org.apache.commons.httpclient.HttpStatus; import org.apache.commons.logging.Log; @@ -21,9 +19,8 @@ import com.hp.hpl.jena.ontology.OntModel; import com.hp.hpl.jena.rdf.model.Model; import com.hp.hpl.jena.shared.Lock; -import edu.cornell.mannlib.vitro.webapp.auth.policy.PolicyHelper; +import edu.cornell.mannlib.vitro.webapp.auth.permissions.SimplePermission; import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.Actions; -import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.usepages.UseBasicAjaxControllers; import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest; import edu.cornell.mannlib.vitro.webapp.controller.ajax.VitroAjaxController; import edu.cornell.mannlib.vitro.webapp.dao.jena.DependentResourceDeleteJena; @@ -38,7 +35,7 @@ public class PrimitiveRdfEdit extends VitroAjaxController { //Using the same setsup as primitive delete @Override protected Actions requiredActions(VitroRequest vreq) { - return new Actions(new UseBasicAjaxControllers()); + return SimplePermission.USE_BASIC_AJAX_CONTROLLERS.ACTIONS; } @Override diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/Properties2PropertiesOperationController.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/Properties2PropertiesOperationController.java index 464305508..ba0d3fc0f 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/Properties2PropertiesOperationController.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/Properties2PropertiesOperationController.java @@ -13,8 +13,7 @@ import org.apache.commons.logging.LogFactory; import edu.cornell.mannlib.vedit.beans.EditProcessObject; import edu.cornell.mannlib.vedit.controller.BaseEditController; -import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.Actions; -import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.usepages.EditOntology; +import edu.cornell.mannlib.vitro.webapp.auth.permissions.SimplePermission; import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest; import edu.cornell.mannlib.vitro.webapp.dao.PropertyDao; @@ -27,7 +26,7 @@ public class Properties2PropertiesOperationController extends private static final boolean REMOVE = true; public void doPost(HttpServletRequest req, HttpServletResponse response) { - if (!isAuthorizedToDisplayPage(req, response, new Actions(new EditOntology()))) { + if (!isAuthorizedToDisplayPage(req, response, SimplePermission.EDIT_ONTOLOGY.ACTIONS)) { return; } diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/Properties2PropertiesRetryController.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/Properties2PropertiesRetryController.java index 79d63e610..48c7ddcfd 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/Properties2PropertiesRetryController.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/Properties2PropertiesRetryController.java @@ -23,8 +23,7 @@ import edu.cornell.mannlib.vedit.beans.FormObject; import edu.cornell.mannlib.vedit.beans.Option; import edu.cornell.mannlib.vedit.controller.BaseEditController; import edu.cornell.mannlib.vedit.util.FormUtils; -import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.Actions; -import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.usepages.EditOntology; +import edu.cornell.mannlib.vitro.webapp.auth.permissions.SimplePermission; import edu.cornell.mannlib.vitro.webapp.controller.Controllers; import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest; import edu.cornell.mannlib.vitro.webapp.dao.DataPropertyDao; @@ -35,7 +34,7 @@ public class Properties2PropertiesRetryController extends BaseEditController { private static final Log log = LogFactory.getLog(Properties2PropertiesRetryController.class.getName()); public void doGet (HttpServletRequest req, HttpServletResponse response) { - if (!isAuthorizedToDisplayPage(req, response, new Actions(new EditOntology()))) { + if (!isAuthorizedToDisplayPage(req, response, SimplePermission.EDIT_ONTOLOGY.ACTIONS)) { return; } diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/PropertyEditController.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/PropertyEditController.java index 9802f6452..26554c6fb 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/PropertyEditController.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/PropertyEditController.java @@ -19,8 +19,7 @@ import org.apache.commons.logging.LogFactory; import edu.cornell.mannlib.vedit.beans.EditProcessObject; import edu.cornell.mannlib.vedit.beans.FormObject; import edu.cornell.mannlib.vedit.controller.BaseEditController; -import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.Actions; -import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.usepages.EditOntology; +import edu.cornell.mannlib.vitro.webapp.auth.permissions.SimplePermission; import edu.cornell.mannlib.vitro.webapp.beans.ObjectProperty; import edu.cornell.mannlib.vitro.webapp.beans.PropertyGroup; import edu.cornell.mannlib.vitro.webapp.beans.VClass; @@ -35,7 +34,8 @@ public class PropertyEditController extends BaseEditController { private static final Log log = LogFactory.getLog(PropertyEditController.class.getName()); public void doPost (HttpServletRequest request, HttpServletResponse response) { - if (!isAuthorizedToDisplayPage(request, response, new Actions(new EditOntology()))) { + if (!isAuthorizedToDisplayPage(request, response, + SimplePermission.EDIT_ONTOLOGY.ACTIONS)) { return; } diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/PropertyGroupRetryController.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/PropertyGroupRetryController.java index 4d4931e0d..2e56baa9e 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/PropertyGroupRetryController.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/PropertyGroupRetryController.java @@ -21,8 +21,7 @@ import edu.cornell.mannlib.vedit.forwarder.impl.UrlForwarder; import edu.cornell.mannlib.vedit.util.FormUtils; import edu.cornell.mannlib.vedit.validator.Validator; import edu.cornell.mannlib.vedit.validator.impl.RequiredFieldValidator; -import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.Actions; -import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.usepages.UseMiscellaneousAdminPages; +import edu.cornell.mannlib.vitro.webapp.auth.permissions.SimplePermission; import edu.cornell.mannlib.vitro.webapp.beans.PropertyGroup; import edu.cornell.mannlib.vitro.webapp.controller.Controllers; import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest; @@ -33,7 +32,8 @@ public class PropertyGroupRetryController extends BaseEditController { private static final Log log = LogFactory.getLog(PropertyGroupRetryController.class.getName()); public void doPost (HttpServletRequest req, HttpServletResponse response) { - if (!isAuthorizedToDisplayPage(req, response, new Actions(new UseMiscellaneousAdminPages()))) { + if (!isAuthorizedToDisplayPage(req, response, + SimplePermission.USE_MISCELLANEOUS_ADMIN_PAGES.ACTIONS)) { return; } diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/PropertyRetryController.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/PropertyRetryController.java index 1ca9a3d39..73b24ac4c 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/PropertyRetryController.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/PropertyRetryController.java @@ -30,10 +30,8 @@ import edu.cornell.mannlib.vedit.util.FormUtils; import edu.cornell.mannlib.vedit.validator.Validator; import edu.cornell.mannlib.vedit.validator.impl.IntValidator; import edu.cornell.mannlib.vedit.validator.impl.XMLNameValidator; +import edu.cornell.mannlib.vitro.webapp.auth.permissions.SimplePermission; import edu.cornell.mannlib.vitro.webapp.auth.policy.bean.PropertyRestrictionListener; -import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.Actions; -import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.usepages.EditOntology; -import edu.cornell.mannlib.vitro.webapp.beans.DataProperty; import edu.cornell.mannlib.vitro.webapp.beans.ObjectProperty; import edu.cornell.mannlib.vitro.webapp.beans.VClass; import edu.cornell.mannlib.vitro.webapp.controller.Controllers; @@ -50,7 +48,7 @@ public class PropertyRetryController extends BaseEditController { @Override public void doPost (HttpServletRequest req, HttpServletResponse response) { - if (!isAuthorizedToDisplayPage(req, response, new Actions(new EditOntology()))) { + if (!isAuthorizedToDisplayPage(req, response, SimplePermission.EDIT_ONTOLOGY.ACTIONS)) { return; } diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/RefactorOperationController.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/RefactorOperationController.java index 88c2a6711..51b7603e1 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/RefactorOperationController.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/RefactorOperationController.java @@ -47,8 +47,7 @@ import com.hp.hpl.jena.vocabulary.RDF; import edu.cornell.mannlib.vedit.beans.EditProcessObject; import edu.cornell.mannlib.vedit.beans.LoginStatusBean; import edu.cornell.mannlib.vedit.controller.BaseEditController; -import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.Actions; -import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.usepages.EditOntology; +import edu.cornell.mannlib.vitro.webapp.auth.permissions.SimplePermission; import edu.cornell.mannlib.vitro.webapp.controller.Controllers; import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest; import edu.cornell.mannlib.vitro.webapp.dao.jena.ModelContext; @@ -454,7 +453,7 @@ public class RefactorOperationController extends BaseEditController { } public void doPost(HttpServletRequest req, HttpServletResponse response) { - if (!isAuthorizedToDisplayPage(req, response, new Actions(new EditOntology()))) { + if (!isAuthorizedToDisplayPage(req, response, SimplePermission.EDIT_ONTOLOGY.ACTIONS)) { return; } diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/RefactorRetryController.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/RefactorRetryController.java index ee1ad1939..20c570e15 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/RefactorRetryController.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/RefactorRetryController.java @@ -23,8 +23,7 @@ import edu.cornell.mannlib.vedit.beans.FormObject; import edu.cornell.mannlib.vedit.beans.Option; import edu.cornell.mannlib.vedit.controller.BaseEditController; import edu.cornell.mannlib.vedit.util.FormUtils; -import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.Actions; -import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.usepages.EditOntology; +import edu.cornell.mannlib.vitro.webapp.auth.permissions.SimplePermission; import edu.cornell.mannlib.vitro.webapp.beans.DataProperty; import edu.cornell.mannlib.vitro.webapp.beans.ObjectProperty; import edu.cornell.mannlib.vitro.webapp.controller.Controllers; @@ -103,7 +102,7 @@ public class RefactorRetryController extends BaseEditController { } public void doGet(HttpServletRequest request, HttpServletResponse response) { - if (!isAuthorizedToDisplayPage(request, response, new Actions(new EditOntology()))) { + if (!isAuthorizedToDisplayPage(request, response, SimplePermission.EDIT_ONTOLOGY.ACTIONS)) { return; } diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/ReorderController.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/ReorderController.java index e6b30c48c..8aeb939b1 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/ReorderController.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/ReorderController.java @@ -10,20 +10,18 @@ import org.apache.commons.logging.LogFactory; import com.hp.hpl.jena.datatypes.TypeMapper; import com.hp.hpl.jena.ontology.OntModel; +import com.hp.hpl.jena.rdf.model.Literal; import com.hp.hpl.jena.rdf.model.Model; import com.hp.hpl.jena.rdf.model.ModelFactory; -import com.hp.hpl.jena.rdf.model.Resource; -import com.hp.hpl.jena.rdf.model.ResourceFactory; import com.hp.hpl.jena.rdf.model.Property; import com.hp.hpl.jena.rdf.model.RDFNode; -import com.hp.hpl.jena.rdf.model.Literal; +import com.hp.hpl.jena.rdf.model.Resource; +import com.hp.hpl.jena.rdf.model.ResourceFactory; import com.hp.hpl.jena.shared.Lock; - +import edu.cornell.mannlib.vitro.webapp.auth.permissions.SimplePermission; import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.Actions; -import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.usepages.UseBasicAjaxControllers; import edu.cornell.mannlib.vitro.webapp.beans.DataProperty; -import edu.cornell.mannlib.vitro.webapp.beans.DataPropertyStatementImpl; import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest; import edu.cornell.mannlib.vitro.webapp.controller.ajax.VitroAjaxController; import edu.cornell.mannlib.vitro.webapp.dao.DataPropertyStatementDao; @@ -48,7 +46,7 @@ public class ReorderController extends VitroAjaxController { @Override protected Actions requiredActions(VitroRequest vreq) { - return new Actions(new UseBasicAjaxControllers()); + return SimplePermission.USE_BASIC_AJAX_CONTROLLERS.ACTIONS; } @Override diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/RestrictionOperationController.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/RestrictionOperationController.java index b96d1c2be..3af9fbb1e 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/RestrictionOperationController.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/RestrictionOperationController.java @@ -16,7 +16,6 @@ import com.hp.hpl.jena.datatypes.TypeMapper; import com.hp.hpl.jena.ontology.OntClass; import com.hp.hpl.jena.ontology.OntModel; import com.hp.hpl.jena.ontology.OntProperty; -import com.hp.hpl.jena.ontology.OntResource; import com.hp.hpl.jena.ontology.Restriction; import com.hp.hpl.jena.rdf.model.Literal; import com.hp.hpl.jena.rdf.model.Resource; @@ -24,8 +23,7 @@ import com.hp.hpl.jena.shared.Lock; import edu.cornell.mannlib.vedit.beans.EditProcessObject; import edu.cornell.mannlib.vedit.controller.BaseEditController; -import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.Actions; -import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.usepages.EditOntology; +import edu.cornell.mannlib.vitro.webapp.auth.permissions.SimplePermission; import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest; import edu.cornell.mannlib.vitro.webapp.dao.jena.event.EditEvent; @@ -34,7 +32,7 @@ public class RestrictionOperationController extends BaseEditController { private static final Log log = LogFactory.getLog(RestrictionOperationController.class.getName()); public void doPost(HttpServletRequest req, HttpServletResponse response) { - if (!isAuthorizedToDisplayPage(req, response, new Actions(new EditOntology()))) { + if (!isAuthorizedToDisplayPage(req, response, SimplePermission.EDIT_ONTOLOGY.ACTIONS)) { return; } diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/RestrictionRetryController.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/RestrictionRetryController.java index af6d21462..61fa4f3cf 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/RestrictionRetryController.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/RestrictionRetryController.java @@ -21,8 +21,7 @@ import edu.cornell.mannlib.vedit.beans.EditProcessObject; import edu.cornell.mannlib.vedit.beans.FormObject; import edu.cornell.mannlib.vedit.beans.Option; import edu.cornell.mannlib.vedit.controller.BaseEditController; -import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.Actions; -import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.usepages.EditOntology; +import edu.cornell.mannlib.vitro.webapp.auth.permissions.SimplePermission; import edu.cornell.mannlib.vitro.webapp.beans.Datatype; import edu.cornell.mannlib.vitro.webapp.beans.Property; import edu.cornell.mannlib.vitro.webapp.beans.VClass; @@ -38,7 +37,7 @@ public class RestrictionRetryController extends BaseEditController { private static final boolean OBJECT = false; public void doGet(HttpServletRequest req, HttpServletResponse response) { - if (!isAuthorizedToDisplayPage(req, response, new Actions(new EditOntology()))) { + if (!isAuthorizedToDisplayPage(req, response, SimplePermission.EDIT_ONTOLOGY.ACTIONS)) { return; } diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/VclassEditController.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/VclassEditController.java index 69d2eff4a..db5c499d5 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/VclassEditController.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/VclassEditController.java @@ -15,20 +15,17 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import com.hp.hpl.jena.vocabulary.OWL; -import com.hp.hpl.jena.vocabulary.RDF; import edu.cornell.mannlib.vedit.beans.EditProcessObject; import edu.cornell.mannlib.vedit.beans.FormObject; import edu.cornell.mannlib.vedit.controller.BaseEditController; -import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.Actions; -import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.usepages.EditOntology; +import edu.cornell.mannlib.vitro.webapp.auth.permissions.SimplePermission; import edu.cornell.mannlib.vitro.webapp.beans.VClass; import edu.cornell.mannlib.vitro.webapp.beans.VClassGroup; import edu.cornell.mannlib.vitro.webapp.controller.Controllers; import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest; import edu.cornell.mannlib.vitro.webapp.dao.VClassDao; import edu.cornell.mannlib.vitro.webapp.dao.VClassGroupDao; -import edu.cornell.mannlib.vitro.webapp.dao.WebappDaoFactoryConfig; import edu.cornell.mannlib.vitro.webapp.dao.WebappDaoFactory; public class VclassEditController extends BaseEditController { @@ -37,7 +34,7 @@ public class VclassEditController extends BaseEditController { private static final int NUM_COLS = 12; public void doPost (HttpServletRequest req, HttpServletResponse response) { - if (!isAuthorizedToDisplayPage(req, response, new Actions(new EditOntology()))) { + if (!isAuthorizedToDisplayPage(req, response, SimplePermission.EDIT_ONTOLOGY.ACTIONS)) { return; } diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/VclassRetryController.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/VclassRetryController.java index af086f830..57da63de7 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/VclassRetryController.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/VclassRetryController.java @@ -10,7 +10,6 @@ import java.util.LinkedList; import java.util.List; import javax.servlet.RequestDispatcher; -import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -26,8 +25,7 @@ import edu.cornell.mannlib.vedit.forwarder.impl.UrlForwarder; import edu.cornell.mannlib.vedit.listener.ChangeListener; import edu.cornell.mannlib.vedit.util.FormUtils; import edu.cornell.mannlib.vedit.validator.impl.XMLNameValidator; -import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.Actions; -import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.usepages.EditOntology; +import edu.cornell.mannlib.vitro.webapp.auth.permissions.SimplePermission; import edu.cornell.mannlib.vitro.webapp.beans.Classes2Classes; import edu.cornell.mannlib.vitro.webapp.beans.VClass; import edu.cornell.mannlib.vitro.webapp.controller.Controllers; @@ -43,7 +41,7 @@ public class VclassRetryController extends BaseEditController { private static final Log log = LogFactory.getLog(VclassRetryController.class.getName()); public void doPost (HttpServletRequest req, HttpServletResponse response) { - if (!isAuthorizedToDisplayPage(req, response, new Actions(new EditOntology()))) { + if (!isAuthorizedToDisplayPage(req, response, SimplePermission.EDIT_ONTOLOGY.ACTIONS)) { return; } diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/listing/AllClassGroupsListingController.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/listing/AllClassGroupsListingController.java index d430a9fa4..a30756a63 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/listing/AllClassGroupsListingController.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/listing/AllClassGroupsListingController.java @@ -14,8 +14,7 @@ import javax.servlet.http.HttpServletResponse; import org.apache.commons.lang.StringUtils; import edu.cornell.mannlib.vedit.controller.BaseEditController; -import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.Actions; -import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.usepages.EditOntology; +import edu.cornell.mannlib.vitro.webapp.auth.permissions.SimplePermission; import edu.cornell.mannlib.vitro.webapp.beans.VClass; import edu.cornell.mannlib.vitro.webapp.beans.VClassGroup; import edu.cornell.mannlib.vitro.webapp.controller.Controllers; @@ -28,7 +27,7 @@ public class AllClassGroupsListingController extends BaseEditController { @Override public void doGet(HttpServletRequest request, HttpServletResponse response) { - if (!isAuthorizedToDisplayPage(request, response, new Actions(new EditOntology()))) { + if (!isAuthorizedToDisplayPage(request, response, SimplePermission.EDIT_ONTOLOGY.ACTIONS)) { return; } diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/listing/ClassHierarchyListingController.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/listing/ClassHierarchyListingController.java index 7f9600367..2bab7453e 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/listing/ClassHierarchyListingController.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/listing/ClassHierarchyListingController.java @@ -18,13 +18,10 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import com.hp.hpl.jena.vocabulary.OWL; -import com.hp.hpl.jena.vocabulary.RDF; -import com.hp.hpl.jena.vocabulary.RDFS; import edu.cornell.mannlib.vedit.beans.ButtonForm; import edu.cornell.mannlib.vedit.controller.BaseEditController; -import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.Actions; -import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.usepages.EditOntology; +import edu.cornell.mannlib.vitro.webapp.auth.permissions.SimplePermission; import edu.cornell.mannlib.vitro.webapp.beans.Ontology; import edu.cornell.mannlib.vitro.webapp.beans.VClass; import edu.cornell.mannlib.vitro.webapp.beans.VClassGroup; @@ -33,9 +30,7 @@ import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest; import edu.cornell.mannlib.vitro.webapp.dao.OntologyDao; import edu.cornell.mannlib.vitro.webapp.dao.VClassDao; import edu.cornell.mannlib.vitro.webapp.dao.VClassGroupDao; -import edu.cornell.mannlib.vitro.webapp.dao.WebappDaoFactoryConfig; import edu.cornell.mannlib.vitro.webapp.dao.WebappDaoFactory; -import edu.cornell.mannlib.vitro.webapp.dao.jena.WebappDaoFactoryJena; public class ClassHierarchyListingController extends BaseEditController { @@ -48,7 +43,7 @@ public class ClassHierarchyListingController extends BaseEditController { @Override public void doGet(HttpServletRequest request, HttpServletResponse response) { - if (!isAuthorizedToDisplayPage(request, response, new Actions(new EditOntology()))) { + if (!isAuthorizedToDisplayPage(request, response, SimplePermission.EDIT_ONTOLOGY.ACTIONS)) { return; } diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/listing/DataPropertyHierarchyListingController.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/listing/DataPropertyHierarchyListingController.java index 0c027c596..8d0f9f7c5 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/listing/DataPropertyHierarchyListingController.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/listing/DataPropertyHierarchyListingController.java @@ -21,8 +21,7 @@ import org.apache.commons.logging.LogFactory; import edu.cornell.mannlib.vedit.beans.ButtonForm; import edu.cornell.mannlib.vedit.controller.BaseEditController; -import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.Actions; -import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.usepages.EditOntology; +import edu.cornell.mannlib.vitro.webapp.auth.permissions.SimplePermission; import edu.cornell.mannlib.vitro.webapp.beans.DataProperty; import edu.cornell.mannlib.vitro.webapp.beans.Datatype; import edu.cornell.mannlib.vitro.webapp.beans.PropertyGroup; @@ -48,7 +47,7 @@ public class DataPropertyHierarchyListingController extends BaseEditController { @Override public void doGet(HttpServletRequest request, HttpServletResponse response) { - if (!isAuthorizedToDisplayPage(request, response, new Actions(new EditOntology()))) { + if (!isAuthorizedToDisplayPage(request, response, SimplePermission.EDIT_ONTOLOGY.ACTIONS)) { return; } diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/listing/DataPropertyStatementListingController.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/listing/DataPropertyStatementListingController.java index 1d80db679..f1dd0cfc2 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/listing/DataPropertyStatementListingController.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/listing/DataPropertyStatementListingController.java @@ -10,8 +10,7 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import edu.cornell.mannlib.vedit.controller.BaseEditController; -import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.Actions; -import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.usepages.EditOntology; +import edu.cornell.mannlib.vitro.webapp.auth.permissions.SimplePermission; import edu.cornell.mannlib.vitro.webapp.beans.DataProperty; import edu.cornell.mannlib.vitro.webapp.beans.DataPropertyStatement; import edu.cornell.mannlib.vitro.webapp.beans.Individual; @@ -24,7 +23,7 @@ import edu.cornell.mannlib.vitro.webapp.dao.IndividualDao; public class DataPropertyStatementListingController extends BaseEditController { public void doGet(HttpServletRequest request, HttpServletResponse response) { - if (!isAuthorizedToDisplayPage(request, response, new Actions(new EditOntology()))) { + if (!isAuthorizedToDisplayPage(request, response, SimplePermission.EDIT_ONTOLOGY.ACTIONS)) { return; } diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/listing/DatatypePropertiesListingController.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/listing/DatatypePropertiesListingController.java index 3e2ad3e4d..9f4f75107 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/listing/DatatypePropertiesListingController.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/listing/DatatypePropertiesListingController.java @@ -16,8 +16,7 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import edu.cornell.mannlib.vedit.controller.BaseEditController; -import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.Actions; -import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.usepages.EditOntology; +import edu.cornell.mannlib.vitro.webapp.auth.permissions.SimplePermission; import edu.cornell.mannlib.vitro.webapp.beans.DataProperty; import edu.cornell.mannlib.vitro.webapp.beans.Datatype; import edu.cornell.mannlib.vitro.webapp.beans.PropertyGroup; @@ -34,7 +33,7 @@ public class DatatypePropertiesListingController extends BaseEditController { @Override public void doGet(HttpServletRequest request, HttpServletResponse response) { - if (!isAuthorizedToDisplayPage(request, response, new Actions(new EditOntology()))) { + if (!isAuthorizedToDisplayPage(request, response, SimplePermission.EDIT_ONTOLOGY.ACTIONS)) { return; } diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/listing/IndividualsListingController.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/listing/IndividualsListingController.java index 7f1ebaeec..29eed71a9 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/listing/IndividualsListingController.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/listing/IndividualsListingController.java @@ -14,8 +14,7 @@ import javax.servlet.http.HttpServletResponse; import edu.cornell.mannlib.vedit.beans.ButtonForm; import edu.cornell.mannlib.vedit.controller.BaseEditController; -import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.Actions; -import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.usepages.EditOntology; +import edu.cornell.mannlib.vitro.webapp.auth.permissions.SimplePermission; import edu.cornell.mannlib.vitro.webapp.beans.Individual; import edu.cornell.mannlib.vitro.webapp.beans.VClass; import edu.cornell.mannlib.vitro.webapp.controller.Controllers; @@ -29,7 +28,7 @@ public class IndividualsListingController extends BaseEditController { //private static final int MAX_INDIVIDUALS = 50; public void doGet(HttpServletRequest request, HttpServletResponse response) { - if (!isAuthorizedToDisplayPage(request, response, new Actions(new EditOntology()))) { + if (!isAuthorizedToDisplayPage(request, response, SimplePermission.EDIT_ONTOLOGY.ACTIONS)) { return; } diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/listing/ObjectPropertyHierarchyListingController.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/listing/ObjectPropertyHierarchyListingController.java index 8578e1823..66d2419aa 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/listing/ObjectPropertyHierarchyListingController.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/listing/ObjectPropertyHierarchyListingController.java @@ -22,8 +22,7 @@ import org.apache.commons.logging.LogFactory; import edu.cornell.mannlib.vedit.beans.ButtonForm; import edu.cornell.mannlib.vedit.controller.BaseEditController; -import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.Actions; -import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.usepages.EditOntology; +import edu.cornell.mannlib.vitro.webapp.auth.permissions.SimplePermission; import edu.cornell.mannlib.vitro.webapp.beans.ObjectProperty; import edu.cornell.mannlib.vitro.webapp.beans.PropertyGroup; import edu.cornell.mannlib.vitro.webapp.beans.VClass; @@ -46,7 +45,7 @@ public class ObjectPropertyHierarchyListingController extends BaseEditController @Override public void doGet(HttpServletRequest request, HttpServletResponse response) { - if (!isAuthorizedToDisplayPage(request, response, new Actions(new EditOntology()))) { + if (!isAuthorizedToDisplayPage(request, response, SimplePermission.EDIT_ONTOLOGY.ACTIONS)) { return; } diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/listing/ObjectPropertyStatementListingController.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/listing/ObjectPropertyStatementListingController.java index a4d142432..e790a3423 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/listing/ObjectPropertyStatementListingController.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/listing/ObjectPropertyStatementListingController.java @@ -13,8 +13,7 @@ import javax.servlet.http.HttpServletResponse; import edu.cornell.mannlib.vedit.beans.ButtonForm; import edu.cornell.mannlib.vedit.controller.BaseEditController; -import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.Actions; -import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.usepages.EditOntology; +import edu.cornell.mannlib.vitro.webapp.auth.permissions.SimplePermission; import edu.cornell.mannlib.vitro.webapp.beans.Individual; import edu.cornell.mannlib.vitro.webapp.beans.ObjectProperty; import edu.cornell.mannlib.vitro.webapp.beans.ObjectPropertyStatement; @@ -28,7 +27,7 @@ public class ObjectPropertyStatementListingController extends BaseEditController { public void doGet(HttpServletRequest request, HttpServletResponse response) { - if (!isAuthorizedToDisplayPage(request, response, new Actions(new EditOntology()))) { + if (!isAuthorizedToDisplayPage(request, response, SimplePermission.EDIT_ONTOLOGY.ACTIONS)) { return; } diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/listing/OntologiesListingController.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/listing/OntologiesListingController.java index ad35adfb8..ef519caa8 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/listing/OntologiesListingController.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/listing/OntologiesListingController.java @@ -11,8 +11,7 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import edu.cornell.mannlib.vedit.controller.BaseEditController; -import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.Actions; -import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.usepages.EditOntology; +import edu.cornell.mannlib.vitro.webapp.auth.permissions.SimplePermission; import edu.cornell.mannlib.vitro.webapp.beans.Ontology; import edu.cornell.mannlib.vitro.webapp.controller.Controllers; import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest; @@ -22,7 +21,7 @@ public class OntologiesListingController extends BaseEditController { @Override public void doGet(HttpServletRequest request, HttpServletResponse response) { - if (!isAuthorizedToDisplayPage(request, response, new Actions(new EditOntology()))) { + if (!isAuthorizedToDisplayPage(request, response, SimplePermission.EDIT_ONTOLOGY.ACTIONS)) { return; } diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/listing/PropertyGroupsListingController.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/listing/PropertyGroupsListingController.java index 59f5d571e..bcfe4fc1e 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/listing/PropertyGroupsListingController.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/listing/PropertyGroupsListingController.java @@ -19,8 +19,7 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import edu.cornell.mannlib.vedit.controller.BaseEditController; -import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.Actions; -import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.usepages.EditOntology; +import edu.cornell.mannlib.vitro.webapp.auth.permissions.SimplePermission; import edu.cornell.mannlib.vitro.webapp.beans.DataProperty; import edu.cornell.mannlib.vitro.webapp.beans.ObjectProperty; import edu.cornell.mannlib.vitro.webapp.beans.Property; @@ -37,7 +36,8 @@ public class PropertyGroupsListingController extends BaseEditController { @Override public void doGet(HttpServletRequest request, HttpServletResponse response) { - if (!isAuthorizedToDisplayPage(request, response, new Actions(new EditOntology()))) { + if (!isAuthorizedToDisplayPage(request, response, + SimplePermission.EDIT_ONTOLOGY.ACTIONS)) { return; } diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/listing/PropertyWebappsListingController.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/listing/PropertyWebappsListingController.java index 49401fa64..0cb4ff40e 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/listing/PropertyWebappsListingController.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/listing/PropertyWebappsListingController.java @@ -21,8 +21,7 @@ import org.apache.commons.logging.LogFactory; import edu.cornell.mannlib.vedit.beans.ButtonForm; import edu.cornell.mannlib.vedit.controller.BaseEditController; -import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.Actions; -import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.usepages.EditOntology; +import edu.cornell.mannlib.vitro.webapp.auth.permissions.SimplePermission; import edu.cornell.mannlib.vitro.webapp.beans.ObjectProperty; import edu.cornell.mannlib.vitro.webapp.beans.Ontology; import edu.cornell.mannlib.vitro.webapp.beans.PropertyGroup; @@ -42,7 +41,7 @@ public class PropertyWebappsListingController extends BaseEditController { private int NUM_COLS = 9; public void doGet(HttpServletRequest request, HttpServletResponse response) { - if (!isAuthorizedToDisplayPage(request, response, new Actions(new EditOntology()))) { + if (!isAuthorizedToDisplayPage(request, response, SimplePermission.EDIT_ONTOLOGY.ACTIONS)) { return; } diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/listing/VClassWebappWithInstancesListingController.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/listing/VClassWebappWithInstancesListingController.java index 312602c5b..612189303 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/listing/VClassWebappWithInstancesListingController.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/listing/VClassWebappWithInstancesListingController.java @@ -14,8 +14,7 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import edu.cornell.mannlib.vedit.controller.BaseEditController; -import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.Actions; -import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.usepages.EditOntology; +import edu.cornell.mannlib.vitro.webapp.auth.permissions.SimplePermission; import edu.cornell.mannlib.vitro.webapp.beans.Individual; import edu.cornell.mannlib.vitro.webapp.beans.ObjectProperty; import edu.cornell.mannlib.vitro.webapp.beans.VClass; @@ -29,7 +28,7 @@ public class VClassWebappWithInstancesListingController extends BaseEditControll private int NUM_COLS = 6; public void doGet(HttpServletRequest request, HttpServletResponse response) { - if (!isAuthorizedToDisplayPage(request, response, new Actions(new EditOntology()))) { + if (!isAuthorizedToDisplayPage(request, response, SimplePermission.EDIT_ONTOLOGY.ACTIONS)) { return; } diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/listing/VClassWebappsListingController.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/listing/VClassWebappsListingController.java index 8a0345951..369152a3a 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/listing/VClassWebappsListingController.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/listing/VClassWebappsListingController.java @@ -15,8 +15,7 @@ import javax.servlet.http.HttpServletResponse; import edu.cornell.mannlib.vedit.beans.ButtonForm; import edu.cornell.mannlib.vedit.controller.BaseEditController; -import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.Actions; -import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.usepages.EditOntology; +import edu.cornell.mannlib.vitro.webapp.auth.permissions.SimplePermission; import edu.cornell.mannlib.vitro.webapp.beans.Ontology; import edu.cornell.mannlib.vitro.webapp.beans.VClass; import edu.cornell.mannlib.vitro.webapp.beans.VClassGroup; @@ -33,7 +32,7 @@ public class VClassWebappsListingController extends BaseEditController { private int NUM_COLS = 9; public void doGet(HttpServletRequest request, HttpServletResponse response) { - if (!isAuthorizedToDisplayPage(request, response, new Actions(new EditOntology()))) { + if (!isAuthorizedToDisplayPage(request, response, SimplePermission.EDIT_ONTOLOGY.ACTIONS)) { return; } diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/listing/jena/NamespacesListingController.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/listing/jena/NamespacesListingController.java index ad48fd536..dda705e85 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/listing/jena/NamespacesListingController.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/listing/jena/NamespacesListingController.java @@ -19,8 +19,7 @@ import com.hp.hpl.jena.shared.Lock; import com.hp.hpl.jena.util.iterator.ClosableIterator; import edu.cornell.mannlib.vedit.controller.BaseEditController; -import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.Actions; -import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.usepages.UseMiscellaneousAdminPages; +import edu.cornell.mannlib.vitro.webapp.auth.permissions.SimplePermission; import edu.cornell.mannlib.vitro.webapp.controller.Controllers; import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest; import edu.cornell.mannlib.vitro.webapp.dao.VitroVocabulary; @@ -28,7 +27,8 @@ import edu.cornell.mannlib.vitro.webapp.dao.VitroVocabulary; public class NamespacesListingController extends BaseEditController { public void doGet(HttpServletRequest request, HttpServletResponse response) { - if (!isAuthorizedToDisplayPage(request, response, new Actions(new UseMiscellaneousAdminPages()))) { + if (!isAuthorizedToDisplayPage(request, response, + SimplePermission.USE_MISCELLANEOUS_ADMIN_PAGES.ACTIONS)) { return; } diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/listing/jena/RestrictionsListingController.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/listing/jena/RestrictionsListingController.java index 4f829caf0..1788dc42c 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/listing/jena/RestrictionsListingController.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/listing/jena/RestrictionsListingController.java @@ -26,8 +26,7 @@ import com.hp.hpl.jena.util.iterator.ClosableIterator; import edu.cornell.mannlib.vedit.beans.EditProcessObject; import edu.cornell.mannlib.vedit.controller.BaseEditController; -import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.Actions; -import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.usepages.EditOntology; +import edu.cornell.mannlib.vitro.webapp.auth.permissions.SimplePermission; import edu.cornell.mannlib.vitro.webapp.beans.Individual; import edu.cornell.mannlib.vitro.webapp.beans.ObjectProperty; import edu.cornell.mannlib.vitro.webapp.beans.VClass; @@ -44,7 +43,7 @@ public class RestrictionsListingController extends BaseEditController { private EditProcessObject epo = null; public void doGet(HttpServletRequest request, HttpServletResponse response) { - if (!isAuthorizedToDisplayPage(request, response, new Actions(new EditOntology()))) { + if (!isAuthorizedToDisplayPage(request, response, SimplePermission.EDIT_ONTOLOGY.ACTIONS)) { return; } 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 29c584157..159141d3b 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 @@ -15,18 +15,9 @@ import org.apache.commons.logging.LogFactory; import edu.cornell.mannlib.vedit.beans.Option; import edu.cornell.mannlib.vedit.util.FormUtils; +import edu.cornell.mannlib.vitro.webapp.auth.permissions.SimplePermission; import edu.cornell.mannlib.vitro.webapp.auth.policy.PolicyHelper; import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.Actions; -import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.usepages.DoBackEndEditing; -import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.usepages.EditOntology; -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.ManageProxies; -import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.usepages.ManageUserAccounts; -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.beans.VClassGroup; import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest; import edu.cornell.mannlib.vitro.webapp.controller.freemarker.UrlBuilder.ParamMap; @@ -43,7 +34,7 @@ public class BaseSiteAdminController extends FreemarkerHttpServlet { private static final Log log = LogFactory.getLog(BaseSiteAdminController.class); protected static final String TEMPLATE_DEFAULT = "siteAdmin-main.ftl"; - public static final Actions REQUIRED_ACTIONS = new Actions(new SeeSiteAdminPage()); + public static final Actions REQUIRED_ACTIONS = SimplePermission.SEE_SITE_ADMIN_PAGE.ACTIONS; @Override protected Actions requiredActions(VitroRequest vreq) { @@ -73,10 +64,8 @@ public class BaseSiteAdminController extends FreemarkerHttpServlet { Map urls = new HashMap(); - if (PolicyHelper.isAuthorizedForActions(vreq, new UseMiscellaneousAdminPages())) { - + if (PolicyHelper.isAuthorizedForActions(vreq, SimplePermission.USE_MISCELLANEOUS_ADMIN_PAGES.ACTIONS)) { urls.put("recomputeInferences", UrlBuilder.getUrl("/RecomputeInferences")); - urls.put("rebuildClassGroupCache", UrlBuilder.getUrl("/browse?clearcache=1")); } @@ -91,7 +80,8 @@ public class BaseSiteAdminController extends FreemarkerHttpServlet { Map map = new HashMap(); - if (PolicyHelper.isAuthorizedForActions(vreq, new DoBackEndEditing())) { + if (PolicyHelper.isAuthorizedForActions(vreq, + SimplePermission.DO_BACK_END_EDITING.ACTIONS)) { map.put("formAction", UrlBuilder.getUrl("/editRequestDispatch")); @@ -128,25 +118,25 @@ public class BaseSiteAdminController extends FreemarkerHttpServlet { Map data = new HashMap(); - if (PolicyHelper.isAuthorizedForActions(vreq, new ManageUserAccounts())) { + if (PolicyHelper.isAuthorizedForActions(vreq, SimplePermission.MANAGE_USER_ACCOUNTS.ACTIONS)) { data.put("userAccounts", UrlBuilder.getUrl("/accountsAdmin")); } - if (PolicyHelper.isAuthorizedForActions(vreq, new ManageProxies())) { + if (PolicyHelper.isAuthorizedForActions(vreq, SimplePermission.MANAGE_PROXIES.ACTIONS)) { data.put("manageProxies", UrlBuilder.getUrl("/manageProxies")); } - if (PolicyHelper.isAuthorizedForActions(vreq, new EditSiteInformation())) { + if (PolicyHelper.isAuthorizedForActions(vreq, SimplePermission.EDIT_SITE_INFORMATION.ACTIONS)) { data.put("siteInfo", UrlBuilder.getUrl("/editForm", "controller", "ApplicationBean")); } - if (PolicyHelper.isAuthorizedForActions(vreq, new ManageMenus())) { + if (PolicyHelper.isAuthorizedForActions(vreq, SimplePermission.MANAGE_MENUS.ACTIONS)) { data.put("menuManagement", UrlBuilder.getUrl("/individual", "uri", "http://vitro.mannlib.cornell.edu/ontologies/display/1.1#DefaultMenu", "switchToDisplayModel", "true")); } - if (PolicyHelper.isAuthorizedForActions(vreq, new SeeStartupStatus())) { + if (PolicyHelper.isAuthorizedForActions(vreq, SimplePermission.SEE_STARTUP_STATUS.ACTIONS)) { data.put("startupStatus", UrlBuilder.getUrl("/startupStatus")); data.put("startupStatusAlert", !StartupStatus.getBean(getServletContext()).allClear()); } @@ -158,7 +148,7 @@ public class BaseSiteAdminController extends FreemarkerHttpServlet { Map map = new HashMap(); - if (PolicyHelper.isAuthorizedForActions(vreq, new EditOntology())) { + if (PolicyHelper.isAuthorizedForActions(vreq, SimplePermission.EDIT_ONTOLOGY.ACTIONS)) { String pelletError = null; String pelletExplanation = null; @@ -200,7 +190,7 @@ public class BaseSiteAdminController extends FreemarkerHttpServlet { Map urls = new HashMap(); - if (PolicyHelper.isAuthorizedForActions(vreq, new UseAdvancedDataToolsPages())) { + if (PolicyHelper.isAuthorizedForActions(vreq, SimplePermission.USE_ADVANCED_DATA_TOOLS_PAGES.ACTIONS)) { urls.put("ingest", UrlBuilder.getUrl("/ingest")); urls.put("rdfData", UrlBuilder.getUrl("/uploadRDFForm")); urls.put("rdfExport", UrlBuilder.getUrl("/export")); diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/freemarker/BrowseController.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/freemarker/BrowseController.java index 892e01933..bf7877b74 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/freemarker/BrowseController.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/freemarker/BrowseController.java @@ -10,9 +10,9 @@ import java.util.Map; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import edu.cornell.mannlib.vitro.webapp.auth.permissions.SimplePermission; import edu.cornell.mannlib.vitro.webapp.auth.policy.PolicyHelper; import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.Actions; -import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.admin.RebuildVClassGroupCache; import edu.cornell.mannlib.vitro.webapp.beans.VClassGroup; import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest; import edu.cornell.mannlib.vitro.webapp.controller.freemarker.responsevalues.ResponseValues; @@ -36,7 +36,7 @@ public class BrowseController extends FreemarkerHttpServlet { @Override protected Actions requiredActions(VitroRequest vreq) { if ( vreq.getParameter("clearcache") != null ) - return new Actions(new RebuildVClassGroupCache() ); + return SimplePermission.REBUILD_VCLASS_GROUP_CACHE.ACTIONS; else return Actions.AUTHORIZED; } @@ -51,7 +51,7 @@ public class BrowseController extends FreemarkerHttpServlet { if ( vreq.getParameter("clearcache") != null ) { //mainly for debugging - if( PolicyHelper.isAuthorizedForActions(vreq, new RebuildVClassGroupCache()) ){ + if( PolicyHelper.isAuthorizedForActions(vreq, SimplePermission.REBUILD_VCLASS_GROUP_CACHE.ACTIONS) ){ clearGroupCache(); } } diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/freemarker/FreemarkerHttpServlet.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/freemarker/FreemarkerHttpServlet.java index c62eab84d..7928493e1 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/freemarker/FreemarkerHttpServlet.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/freemarker/FreemarkerHttpServlet.java @@ -8,7 +8,6 @@ import java.io.IOException; import java.io.PrintWriter; import java.io.StringWriter; import java.util.Calendar; - import java.util.Date; import java.util.HashMap; import java.util.Map; @@ -21,10 +20,9 @@ import org.apache.commons.lang.StringUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import edu.cornell.mannlib.vitro.webapp.auth.permissions.SimplePermission; import edu.cornell.mannlib.vitro.webapp.auth.policy.PolicyHelper; import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.Actions; -import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.usepages.EditOwnAccount; -import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.usepages.UseMiscellaneousAdminPages; import edu.cornell.mannlib.vitro.webapp.beans.ApplicationBean; import edu.cornell.mannlib.vitro.webapp.beans.DisplayMessage; import edu.cornell.mannlib.vitro.webapp.controller.VitroHttpServlet; @@ -167,7 +165,7 @@ public class FreemarkerHttpServlet extends VitroHttpServlet { boolean sentEmail = false; // If the user is authorized, display the error data on the page - if (PolicyHelper.isAuthorizedForActions(vreq, new UseMiscellaneousAdminPages())) { + if (PolicyHelper.isAuthorizedForActions(vreq, SimplePermission.USE_MISCELLANEOUS_ADMIN_PAGES.ACTIONS)) { templateMap.put("adminErrorData", adminErrorData); // Else send the data to the site administrator @@ -364,7 +362,7 @@ public class FreemarkerHttpServlet extends VitroHttpServlet { urls.put("currentPage", getCurrentPageUrl(vreq)); urls.put("referringPage", getReferringPageUrl(vreq)); - if (PolicyHelper.isAuthorizedForActions(vreq, new EditOwnAccount())) { + if (PolicyHelper.isAuthorizedForActions(vreq, SimplePermission.EDIT_OWN_ACCOUNT.ACTIONS)) { urls.put("myAccount", UrlBuilder.getUrl("/accounts/myAccount")); } else { urls.remove("myAccount"); // clear value from a previous request diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/freemarker/IndividualController.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/freemarker/IndividualController.java index 810900921..9090908ab 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/freemarker/IndividualController.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/freemarker/IndividualController.java @@ -32,8 +32,8 @@ import com.hp.hpl.jena.shared.Lock; import com.hp.hpl.jena.vocabulary.RDF; import com.hp.hpl.jena.vocabulary.RDFS; +import edu.cornell.mannlib.vitro.webapp.auth.permissions.SimplePermission; import edu.cornell.mannlib.vitro.webapp.auth.policy.PolicyHelper; -import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.usepages.SeeVerbosePropertyInformation; import edu.cornell.mannlib.vitro.webapp.beans.DataPropertyStatement; import edu.cornell.mannlib.vitro.webapp.beans.Individual; import edu.cornell.mannlib.vitro.webapp.beans.ObjectProperty; @@ -169,7 +169,7 @@ public class IndividualController extends FreemarkerHttpServlet { Map map = null; - if (PolicyHelper.isAuthorizedForActions(vreq, new SeeVerbosePropertyInformation())) { + if (PolicyHelper.isAuthorizedForActions(vreq, SimplePermission.SEE_VERBOSE_PROPERTY_INFORMATION.ACTIONS)) { // Get current verbose property display value String verbose = vreq.getParameter("verbose"); Boolean verboseValue; diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/freemarker/MenuManagementController.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/freemarker/MenuManagementController.java index 43b5e7fda..626e99587 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/freemarker/MenuManagementController.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/freemarker/MenuManagementController.java @@ -2,29 +2,15 @@ package edu.cornell.mannlib.vitro.webapp.controller.freemarker; +import java.util.ArrayList; import java.util.HashMap; import java.util.Map; -import java.util.List; -import java.util.ArrayList; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import edu.cornell.mannlib.vitro.webapp.utils.pageDataGetter.MenuManagementDataUtils; - -import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.Actions; -import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.usepages.ManageMenus; -import edu.cornell.mannlib.vitro.webapp.beans.VClass; -import edu.cornell.mannlib.vitro.webapp.beans.VClassGroup; -import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest; -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.dao.DisplayVocabulary; -import edu.cornell.mannlib.vitro.webapp.dao.VitroVocabulary; -import edu.cornell.mannlib.vitro.webapp.dao.jena.VClassGroupCache; - -import com.hp.hpl.jena.ontology.OntModel; import com.hp.hpl.jena.ontology.Individual; +import com.hp.hpl.jena.ontology.OntModel; import com.hp.hpl.jena.rdf.model.RDFNode; import com.hp.hpl.jena.rdf.model.Resource; import com.hp.hpl.jena.rdf.model.ResourceFactory; @@ -32,8 +18,15 @@ import com.hp.hpl.jena.rdf.model.Statement; import com.hp.hpl.jena.rdf.model.StmtIterator; import com.hp.hpl.jena.vocabulary.RDF; -import edu.cornell.mannlib.vitro.webapp.utils.pageDataGetter.PageDataGetter; +import edu.cornell.mannlib.vitro.webapp.auth.permissions.SimplePermission; +import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.Actions; +import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest; +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.dao.DisplayVocabulary; import edu.cornell.mannlib.vitro.webapp.utils.pageDataGetter.DataGetterUtils; +import edu.cornell.mannlib.vitro.webapp.utils.pageDataGetter.MenuManagementDataUtils; +import edu.cornell.mannlib.vitro.webapp.utils.pageDataGetter.PageDataGetter; import edu.cornell.mannlib.vitro.webapp.utils.pageDataGetter.SelectDataGetterUtils; /* @@ -54,7 +47,7 @@ public class MenuManagementController extends FreemarkerHttpServlet { protected final static String ITEM_PARAM = "objectUri"; - public final static Actions REQUIRED_ACTIONS = new Actions(new ManageMenus()); + public final static Actions REQUIRED_ACTIONS = SimplePermission.MANAGE_MENUS.ACTIONS; @Override protected Actions requiredActions(VitroRequest vreq) { diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/freemarker/MenuN3EditController.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/freemarker/MenuN3EditController.java index f98a40ec7..9254eaf38 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/freemarker/MenuN3EditController.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/freemarker/MenuN3EditController.java @@ -5,8 +5,8 @@ package edu.cornell.mannlib.vitro.webapp.controller.freemarker; import java.util.HashMap; import java.util.Map; +import edu.cornell.mannlib.vitro.webapp.auth.permissions.SimplePermission; import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.Actions; -import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.usepages.ManageMenus; import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest; import edu.cornell.mannlib.vitro.webapp.controller.freemarker.responsevalues.ResponseValues; import edu.cornell.mannlib.vitro.webapp.controller.freemarker.responsevalues.TemplateResponseValues; @@ -19,7 +19,7 @@ public class MenuN3EditController extends FreemarkerHttpServlet { protected final static String N3_PARAM = "navigationN3"; - public final static Actions REQUIRED_ACTIONS = new Actions(new ManageMenus()); + public final static Actions REQUIRED_ACTIONS = SimplePermission.MANAGE_MENUS.ACTIONS; @Override protected Actions requiredActions(VitroRequest vreq) { diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/freemarker/RevisionInfoController.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/freemarker/RevisionInfoController.java index 233101f0b..bfb20522d 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/freemarker/RevisionInfoController.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/freemarker/RevisionInfoController.java @@ -5,8 +5,8 @@ package edu.cornell.mannlib.vitro.webapp.controller.freemarker; import java.util.HashMap; import java.util.Map; +import edu.cornell.mannlib.vitro.webapp.auth.permissions.SimplePermission; import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.Actions; -import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.usepages.SeeRevisionInfo; import edu.cornell.mannlib.vitro.webapp.config.RevisionInfoBean; import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest; import edu.cornell.mannlib.vitro.webapp.controller.freemarker.responsevalues.ResponseValues; @@ -19,7 +19,7 @@ public class RevisionInfoController extends FreemarkerHttpServlet { private static final long serialVersionUID = 1L; private static final String TEMPLATE_DEFAULT = "revisionInfo.ftl"; - public static final Actions REQUIRED_ACTIONS = new Actions(new SeeRevisionInfo()); + public static final Actions REQUIRED_ACTIONS = SimplePermission.SEE_REVISION_INFO.ACTIONS; @Override protected Actions requiredActions(VitroRequest vreq) { diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/freemarker/SimpleReasonerRecomputeController.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/freemarker/SimpleReasonerRecomputeController.java index 7397e072b..e695b560e 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/freemarker/SimpleReasonerRecomputeController.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/freemarker/SimpleReasonerRecomputeController.java @@ -7,8 +7,8 @@ import java.util.Map; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import edu.cornell.mannlib.vitro.webapp.auth.permissions.SimplePermission; import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.Actions; -import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.usepages.UseMiscellaneousAdminPages; import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest; import edu.cornell.mannlib.vitro.webapp.controller.freemarker.responsevalues.ExceptionResponseValues; import edu.cornell.mannlib.vitro.webapp.controller.freemarker.responsevalues.ResponseValues; @@ -24,7 +24,7 @@ public class SimpleReasonerRecomputeController extends FreemarkerHttpServlet { @Override protected Actions requiredActions(VitroRequest vreq) { - return new Actions(new UseMiscellaneousAdminPages()); + return SimplePermission.USE_MISCELLANEOUS_ADMIN_PAGES.ACTIONS; } protected ResponseValues processRequest(VitroRequest vreq) { diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/jena/JenaAdminActions.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/jena/JenaAdminActions.java index fbc7852c9..90d2398b1 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/jena/JenaAdminActions.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/jena/JenaAdminActions.java @@ -45,8 +45,7 @@ import com.hp.hpl.jena.vocabulary.RDF; import com.hp.hpl.jena.vocabulary.RDFS; import edu.cornell.mannlib.vedit.controller.BaseEditController; -import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.Actions; -import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.usepages.UseMiscellaneousAdminPages; +import edu.cornell.mannlib.vitro.webapp.auth.permissions.SimplePermission; import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest; import edu.cornell.mannlib.vitro.webapp.dao.VitroVocabulary; @@ -254,7 +253,7 @@ public class JenaAdminActions extends BaseEditController { } public void doGet(HttpServletRequest req, HttpServletResponse response) { - if (!isAuthorizedToDisplayPage(req, response, new Actions(new UseMiscellaneousAdminPages()))) { + if (!isAuthorizedToDisplayPage(req, response, SimplePermission.USE_MISCELLANEOUS_ADMIN_PAGES.ACTIONS)) { return; } diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/jena/JenaCsv2RdfController.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/jena/JenaCsv2RdfController.java index e3302bd32..c310de156 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/jena/JenaCsv2RdfController.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/jena/JenaCsv2RdfController.java @@ -19,16 +19,12 @@ import org.apache.commons.fileupload.FileItem; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import com.hp.hpl.jena.ontology.OntModel; import com.hp.hpl.jena.rdf.model.Model; import com.hp.hpl.jena.rdf.model.ModelMaker; -import edu.cornell.mannlib.vedit.controller.BaseEditController; -import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.Actions; -import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.usepages.UseAdvancedDataToolsPages; +import edu.cornell.mannlib.vitro.webapp.auth.permissions.SimplePermission; import edu.cornell.mannlib.vitro.webapp.controller.Controllers; import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest; -import edu.cornell.mannlib.vitro.webapp.dao.jena.VitroJenaSpecialModelMaker; import edu.cornell.mannlib.vitro.webapp.filestorage.uploadrequest.FileUploadServletRequest; import edu.cornell.mannlib.vitro.webapp.utils.Csv2Rdf; import edu.cornell.mannlib.vitro.webapp.utils.jena.JenaIngestUtils; @@ -44,7 +40,8 @@ public class JenaCsv2RdfController extends JenaIngestController { @Override public void doPost(HttpServletRequest rawRequest, HttpServletResponse response) throws ServletException, IOException { - if (!isAuthorizedToDisplayPage(rawRequest, response, new Actions(new UseAdvancedDataToolsPages()))) { + if (!isAuthorizedToDisplayPage(rawRequest, response, + SimplePermission.USE_ADVANCED_DATA_TOOLS_PAGES.ACTIONS)) { return; } diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/jena/JenaExportController.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/jena/JenaExportController.java index 1161350c5..af1500394 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/jena/JenaExportController.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/jena/JenaExportController.java @@ -18,9 +18,8 @@ import com.hp.hpl.jena.rdf.model.ModelFactory; import com.hp.hpl.jena.shared.Lock; import edu.cornell.mannlib.vedit.controller.BaseEditController; +import edu.cornell.mannlib.vitro.webapp.auth.permissions.SimplePermission; import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.Actions; -import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.usepages.EditOntology; -import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.usepages.UseAdvancedDataToolsPages; import edu.cornell.mannlib.vitro.webapp.controller.Controllers; import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest; import edu.cornell.mannlib.vitro.webapp.dao.jena.JenaModelUtils; @@ -28,8 +27,8 @@ import edu.cornell.mannlib.vitro.webapp.dao.jena.ModelContext; import edu.cornell.mannlib.vitro.webapp.utils.jena.JenaOutputUtils; public class JenaExportController extends BaseEditController { - private static final Actions REQUIRED_ACTIONS = new Actions( - new UseAdvancedDataToolsPages()).or(new EditOntology()); + private static final Actions REQUIRED_ACTIONS = SimplePermission.USE_ADVANCED_DATA_TOOLS_PAGES.ACTIONS + .or(SimplePermission.EDIT_ONTOLOGY.ACTION); @Override public void doGet( HttpServletRequest request, HttpServletResponse response ) { diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/jena/JenaIngestController.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/jena/JenaIngestController.java index bcc8f0004..23e9acbcd 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/jena/JenaIngestController.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/jena/JenaIngestController.java @@ -42,9 +42,7 @@ import com.hp.hpl.jena.query.Query; import com.hp.hpl.jena.query.QueryExecException; import com.hp.hpl.jena.query.QueryExecution; import com.hp.hpl.jena.query.QueryExecutionFactory; -import com.hp.hpl.jena.query.QueryFactory; import com.hp.hpl.jena.query.QueryParseException; -import com.hp.hpl.jena.query.Syntax; import com.hp.hpl.jena.rdf.model.Literal; import com.hp.hpl.jena.rdf.model.Model; import com.hp.hpl.jena.rdf.model.ModelFactory; @@ -64,11 +62,9 @@ import com.hp.hpl.jena.util.ResourceUtils; import com.hp.hpl.jena.util.iterator.ClosableIterator; import edu.cornell.mannlib.vedit.controller.BaseEditController; -import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.Actions; -import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.usepages.UseAdvancedDataToolsPages; +import edu.cornell.mannlib.vitro.webapp.auth.permissions.SimplePermission; import edu.cornell.mannlib.vitro.webapp.beans.Ontology; import edu.cornell.mannlib.vitro.webapp.controller.Controllers; -import edu.cornell.mannlib.vitro.webapp.controller.SparqlQueryServlet; import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest; import edu.cornell.mannlib.vitro.webapp.dao.OntologyDao; import edu.cornell.mannlib.vitro.webapp.dao.jena.JenaBaseDao; @@ -118,8 +114,8 @@ public class JenaIngestController extends BaseEditController { @Override public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { - if (!isAuthorizedToDisplayPage(request, response, new Actions( - new UseAdvancedDataToolsPages()))) { + if (!isAuthorizedToDisplayPage(request, response, + SimplePermission.USE_ADVANCED_DATA_TOOLS_PAGES.ACTIONS)) { return; } diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/jena/JenaXMLFileUpload.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/jena/JenaXMLFileUpload.java index 74ec8377b..f9ea1335b 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/jena/JenaXMLFileUpload.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/jena/JenaXMLFileUpload.java @@ -33,12 +33,9 @@ import com.hp.hpl.jena.rdf.model.ModelMaker; import com.hp.hpl.jena.rdf.model.StmtIterator; import com.hp.hpl.jena.shared.Lock; -import edu.cornell.mannlib.vedit.controller.BaseEditController; -import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.Actions; -import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.usepages.UseAdvancedDataToolsPages; +import edu.cornell.mannlib.vitro.webapp.auth.permissions.SimplePermission; import edu.cornell.mannlib.vitro.webapp.controller.Controllers; import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest; -import edu.cornell.mannlib.vitro.webapp.dao.jena.VitroJenaSpecialModelMaker; import edu.cornell.mannlib.vitro.webapp.filestorage.uploadrequest.FileUploadServletRequest; public class JenaXMLFileUpload extends JenaIngestController { @@ -103,7 +100,8 @@ public class JenaXMLFileUpload extends JenaIngestController { throw new ServletException("Must POST a multipart encoded request"); } - if (!isAuthorizedToDisplayPage(request, resp, new Actions(new UseAdvancedDataToolsPages()))) { + if (!isAuthorizedToDisplayPage(request, resp, + SimplePermission.USE_ADVANCED_DATA_TOOLS_PAGES.ACTIONS)) { return; } @@ -155,7 +153,8 @@ public class JenaXMLFileUpload extends JenaIngestController { @Override public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { - if (!isAuthorizedToDisplayPage(request, response, new Actions(new UseAdvancedDataToolsPages()))) { + if (!isAuthorizedToDisplayPage(request, response, + SimplePermission.USE_ADVANCED_DATA_TOOLS_PAGES.ACTIONS)) { return; } diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/jena/RDFUploadController.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/jena/RDFUploadController.java index 09938b891..1e5f08ee2 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/jena/RDFUploadController.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/jena/RDFUploadController.java @@ -27,16 +27,13 @@ import com.hp.hpl.jena.shared.JenaException; import com.hp.hpl.jena.shared.Lock; import edu.cornell.mannlib.vedit.beans.LoginStatusBean; -import edu.cornell.mannlib.vedit.controller.BaseEditController; -import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.Actions; -import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.usepages.UseAdvancedDataToolsPages; +import edu.cornell.mannlib.vitro.webapp.auth.permissions.SimplePermission; import edu.cornell.mannlib.vitro.webapp.controller.Controllers; import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest; import edu.cornell.mannlib.vitro.webapp.dao.WebappDaoFactory; import edu.cornell.mannlib.vitro.webapp.dao.jena.JenaModelUtils; import edu.cornell.mannlib.vitro.webapp.dao.jena.ModelContext; import edu.cornell.mannlib.vitro.webapp.dao.jena.OntModelSelector; -import edu.cornell.mannlib.vitro.webapp.dao.jena.VitroJenaSpecialModelMaker; import edu.cornell.mannlib.vitro.webapp.dao.jena.event.BulkUpdateEvent; import edu.cornell.mannlib.vitro.webapp.dao.jena.event.EditEvent; import edu.cornell.mannlib.vitro.webapp.filestorage.uploadrequest.FileUploadServletRequest; @@ -51,8 +48,8 @@ public class RDFUploadController extends JenaIngestController { public void doPost(HttpServletRequest rawRequest, HttpServletResponse response) throws ServletException, IOException { - if (!isAuthorizedToDisplayPage(rawRequest, response, new Actions( - new UseAdvancedDataToolsPages()))) { + if (!isAuthorizedToDisplayPage(rawRequest, response, + SimplePermission.USE_ADVANCED_DATA_TOOLS_PAGES.ACTIONS)) { return; } diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/jena/RDFUploadFormController.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/jena/RDFUploadFormController.java index 4d4c7c1c9..6c407c129 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/jena/RDFUploadFormController.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/jena/RDFUploadFormController.java @@ -10,8 +10,7 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import edu.cornell.mannlib.vedit.controller.BaseEditController; -import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.Actions; -import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.usepages.UseAdvancedDataToolsPages; +import edu.cornell.mannlib.vitro.webapp.auth.permissions.SimplePermission; import edu.cornell.mannlib.vitro.webapp.controller.Controllers; import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest; @@ -22,7 +21,8 @@ public class RDFUploadFormController extends BaseEditController { @Override public void doPost (HttpServletRequest request, HttpServletResponse response) { - if (!isAuthorizedToDisplayPage(request, response, new Actions(new UseAdvancedDataToolsPages()))) { + if (!isAuthorizedToDisplayPage(request, response, + SimplePermission.USE_ADVANCED_DATA_TOOLS_PAGES.ACTIONS)) { return; } diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/dao/VitroVocabulary.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/dao/VitroVocabulary.java index 189773686..dde828b54 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/dao/VitroVocabulary.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/dao/VitroVocabulary.java @@ -169,6 +169,7 @@ public class VitroVocabulary { public static final String PERMISSIONSET = VITRO_AUTH + "PermissionSet"; public static final String PERMISSIONSET_HAS_PERMISSION = VITRO_AUTH + "hasPermission"; + public static final String DEFAULT_PERMISSION_SET_FOR_NEW_USERS = VITRO_AUTH + "DefaultPermissionSetForNewUsers"; public static final String PERMISSION = VITRO_AUTH + "Permission"; diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/dao/jena/JenaBaseDaoCon.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/dao/jena/JenaBaseDaoCon.java index 3e8747b51..676bdfd33 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/dao/jena/JenaBaseDaoCon.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/dao/jena/JenaBaseDaoCon.java @@ -142,6 +142,7 @@ public class JenaBaseDaoCon { protected ObjectProperty USERACCOUNT_PROXY_EDITOR_FOR = _constModel.createObjectProperty(VitroVocabulary.USERACCOUNT_PROXY_EDITOR_FOR); protected OntClass PERMISSIONSET = _constModel.createClass(VitroVocabulary.PERMISSIONSET); + protected OntClass DEFAULT_PERMISSION_SET_FOR_NEW_USERS = _constModel.createClass(VitroVocabulary.DEFAULT_PERMISSION_SET_FOR_NEW_USERS); protected ObjectProperty PERMISSIONSET_HAS_PERMISSION = _constModel.createObjectProperty(VitroVocabulary.PERMISSIONSET_HAS_PERMISSION); protected OntClass PERMISSION = _constModel.createClass(VitroVocabulary.PERMISSION); diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/dao/jena/UserAccountsDaoJena.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/dao/jena/UserAccountsDaoJena.java index bdb8a21db..7611e2ffb 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/dao/jena/UserAccountsDaoJena.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/dao/jena/UserAccountsDaoJena.java @@ -382,7 +382,7 @@ public class UserAccountsDaoJena extends JenaBaseDao implements UserAccountsDao Resource s = getOntModel().createResource(uri); getOntModel().remove(s, p, o); } - for (String uri: addThese) { + for (String uri : addThese) { Resource s = getOntModel().createResource(uri); getOntModel().add(s, p, o); } @@ -410,6 +410,8 @@ public class UserAccountsDaoJena extends JenaBaseDao implements UserAccountsDao PermissionSet ps = new PermissionSet(); ps.setUri(uri); ps.setLabel(getPropertyStringValue(r, RDFS.label)); + ps.setDefaultForNewUsers(isResourceOfType(r, + DEFAULT_PERMISSION_SET_FOR_NEW_USERS)); ps.setPermissionUris(getPropertyResourceURIValues(r, PERMISSIONSET_HAS_PERMISSION)); return ps; @@ -434,6 +436,8 @@ public class UserAccountsDaoJena extends JenaBaseDao implements UserAccountsDao PermissionSet ps = new PermissionSet(); ps.setUri(r.getURI()); ps.setLabel(getPropertyStringValue(r, RDFS.label)); + ps.setDefaultForNewUsers(isResourceOfType(r, + DEFAULT_PERMISSION_SET_FOR_NEW_USERS)); ps.setPermissionUris(getPropertyResourceURIValues(r, PERMISSIONSET_HAS_PERMISSION)); list.add(ps); diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/edit/n3editing/controller/EditRequestDispatchController.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/edit/n3editing/controller/EditRequestDispatchController.java index 29edd5493..3172e8bdd 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/edit/n3editing/controller/EditRequestDispatchController.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/edit/n3editing/controller/EditRequestDispatchController.java @@ -13,8 +13,8 @@ import javax.servlet.http.HttpSession; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import edu.cornell.mannlib.vitro.webapp.auth.permissions.SimplePermission; import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.Actions; -import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.usepages.DoFrontEndEditing; import edu.cornell.mannlib.vitro.webapp.beans.DataProperty; import edu.cornell.mannlib.vitro.webapp.beans.Individual; import edu.cornell.mannlib.vitro.webapp.beans.Property; @@ -23,7 +23,6 @@ import edu.cornell.mannlib.vitro.webapp.controller.freemarker.FreemarkerHttpServ import edu.cornell.mannlib.vitro.webapp.controller.freemarker.UrlBuilder; import edu.cornell.mannlib.vitro.webapp.controller.freemarker.UrlBuilder.ParamMap; import edu.cornell.mannlib.vitro.webapp.controller.freemarker.responsevalues.DirectRedirectResponseValues; -import edu.cornell.mannlib.vitro.webapp.controller.freemarker.responsevalues.RedirectResponseValues; 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.dao.VitroVocabulary; @@ -33,8 +32,6 @@ import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.EditConfigurationVTw import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.EditSubmissionUtils; import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.MultiValueEditSubmission; import edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.generators.EditConfigurationGenerator; -import edu.cornell.mannlib.vitro.webapp.web.URLEncoder; -import edu.cornell.mannlib.vitro.webapp.web.beanswrappers.ReadOnlyBeansWrapper; import edu.cornell.mannlib.vitro.webapp.web.templatemodels.edit.EditConfigurationTemplateModel; import edu.cornell.mannlib.vitro.webapp.web.templatemodels.edit.MultiValueEditSubmissionTemplateModel; /** @@ -59,7 +56,7 @@ public class EditRequestDispatchController extends FreemarkerHttpServlet { @Override protected Actions requiredActions(VitroRequest vreq) { - return new Actions(new DoFrontEndEditing()); + return SimplePermission.DO_FRONT_END_EDITING.ACTIONS; } @Override diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/edit/n3editing/controller/PostEditCleanupController.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/edit/n3editing/controller/PostEditCleanupController.java index be9a3d2dc..10c12642f 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/edit/n3editing/controller/PostEditCleanupController.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/edit/n3editing/controller/PostEditCleanupController.java @@ -8,8 +8,8 @@ import javax.servlet.http.HttpSession; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import edu.cornell.mannlib.vitro.webapp.auth.permissions.SimplePermission; import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.Actions; -import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.usepages.DoFrontEndEditing; 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.UrlBuilder; @@ -31,7 +31,7 @@ public class PostEditCleanupController extends FreemarkerHttpServlet{ @Override protected Actions requiredActions(VitroRequest vreq) { - return new Actions(new DoFrontEndEditing()); + return SimplePermission.DO_FRONT_END_EDITING.ACTIONS; } @Override diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/edit/n3editing/controller/ProcessRdfFormController.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/edit/n3editing/controller/ProcessRdfFormController.java index 30b4da44a..51c23e6c2 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/edit/n3editing/controller/ProcessRdfFormController.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/edit/n3editing/controller/ProcessRdfFormController.java @@ -18,8 +18,8 @@ import com.hp.hpl.jena.rdf.model.Model; import com.hp.hpl.jena.rdf.model.Property; import com.hp.hpl.jena.rdf.model.ResourceFactory; +import edu.cornell.mannlib.vitro.webapp.auth.permissions.SimplePermission; import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.Actions; -import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.usepages.DoFrontEndEditing; import edu.cornell.mannlib.vitro.webapp.beans.DataProperty; import edu.cornell.mannlib.vitro.webapp.beans.DataPropertyStatement; import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest; @@ -52,7 +52,7 @@ public class ProcessRdfFormController extends FreemarkerHttpServlet{ @Override protected Actions requiredActions(VitroRequest vreq) { - return new Actions(new DoFrontEndEditing()); + return SimplePermission.DO_FRONT_END_EDITING.ACTIONS; } @Override diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/filters/VitroRequestPrep.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/filters/VitroRequestPrep.java index 3d36b28c2..b29201351 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/filters/VitroRequestPrep.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/filters/VitroRequestPrep.java @@ -34,10 +34,9 @@ import com.hp.hpl.jena.rdf.model.Model; import com.hp.hpl.jena.rdf.model.ModelFactory; import edu.cornell.mannlib.vitro.webapp.auth.identifier.RequestIdentifiers; +import edu.cornell.mannlib.vitro.webapp.auth.permissions.SimplePermission; import edu.cornell.mannlib.vitro.webapp.auth.policy.PolicyHelper; import edu.cornell.mannlib.vitro.webapp.auth.policy.ServletPolicyList; -import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.usepages.AccessSpecialDataModels; -import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.usepages.ManageMenus; import edu.cornell.mannlib.vitro.webapp.beans.ApplicationBean; import edu.cornell.mannlib.vitro.webapp.config.ConfigurationProperties; import edu.cornell.mannlib.vitro.webapp.controller.VitroHttpServlet; @@ -196,9 +195,9 @@ public class VitroRequestPrep implements Filter { private boolean authorizedForSpecialModel(HttpServletRequest req) { if (isParameterPresent(req, SWITCH_TO_DISPLAY_MODEL)) { - return PolicyHelper.isAuthorizedForActions(req, new ManageMenus()); + return PolicyHelper.isAuthorizedForActions(req, SimplePermission.MANAGE_MENUS.ACTIONS); } else if (anyOtherSpecialProperties(req)){ - return PolicyHelper.isAuthorizedForActions(req, new AccessSpecialDataModels()); + return PolicyHelper.isAuthorizedForActions(req, SimplePermission.ACCESS_SPECIAL_DATA_MODELS.ACTIONS); } else { return true; } diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/search/controller/AutocompleteController.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/search/controller/AutocompleteController.java index afdb7755e..359a53529 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/search/controller/AutocompleteController.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/search/controller/AutocompleteController.java @@ -24,8 +24,8 @@ import org.apache.solr.common.SolrDocumentList; import org.json.JSONArray; import org.json.JSONObject; +import edu.cornell.mannlib.vitro.webapp.auth.permissions.SimplePermission; import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.Actions; -import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.usepages.UseBasicAjaxControllers; import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest; import edu.cornell.mannlib.vitro.webapp.controller.ajax.VitroAjaxController; import edu.cornell.mannlib.vitro.webapp.search.VitroSearchTermNames; @@ -55,7 +55,7 @@ public class AutocompleteController extends VitroAjaxController { @Override protected Actions requiredActions(VitroRequest vreq) { - return new Actions(new UseBasicAjaxControllers()); + return SimplePermission.USE_BASIC_AJAX_CONTROLLERS.ACTIONS; } @Override 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 4beeabc92..90aa503fd 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 @@ -16,8 +16,8 @@ import javax.servlet.http.HttpServletResponse; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import edu.cornell.mannlib.vitro.webapp.auth.permissions.SimplePermission; import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.Actions; -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.UrlBuilder; @@ -81,8 +81,7 @@ public class IndexController extends FreemarkerHttpServlet { private static final String PAGE_URL = "/SearchIndex"; private static final String TEMPLATE_NAME = "searchIndex.ftl"; - public static final Actions REQUIRED_ACTIONS = new Actions( - new ManageSearchIndex()); + public static final Actions REQUIRED_ACTIONS = SimplePermission.MANAGE_SEARCH_INDEX.ACTIONS; @Override protected Actions requiredActions(VitroRequest vreq) { diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/servlet/setup/UpdatePermissionSetUris.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/servlet/setup/UpdatePermissionSetUris.java new file mode 100644 index 000000000..212154ff4 --- /dev/null +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/servlet/setup/UpdatePermissionSetUris.java @@ -0,0 +1,270 @@ +/* $This file is distributed under the terms of the license in /doc/license.txt$ */ + +package edu.cornell.mannlib.vitro.webapp.servlet.setup; + +import static edu.cornell.mannlib.vitro.webapp.dao.VitroVocabulary.VITRO_AUTH; + +import java.io.File; +import java.io.IOException; +import java.io.PrintWriter; +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Collection; +import java.util.Collections; +import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import javax.servlet.ServletContext; +import javax.servlet.ServletContextEvent; +import javax.servlet.ServletContextListener; + +import edu.cornell.mannlib.vitro.webapp.beans.UserAccount; +import edu.cornell.mannlib.vitro.webapp.config.ConfigurationProperties; +import edu.cornell.mannlib.vitro.webapp.dao.UserAccountsDao; +import edu.cornell.mannlib.vitro.webapp.dao.WebappDaoFactory; +import edu.cornell.mannlib.vitro.webapp.startup.StartupStatus; + +/** + * The URIs for Admin, Curator, Editor and SelfEditor changed from 1.4 to 1.5. + * + * If the old ones are still in the User Accounts Model, replace them with the + * new ones. + */ +public class UpdatePermissionSetUris implements ServletContextListener { + + @Override + public void contextInitialized(ServletContextEvent sce) { + ServletContext ctx = sce.getServletContext(); + StartupStatus ss = StartupStatus.getBean(ctx); + Stats stats = new Stats(); + + try { + Updater updater = new Updater(ctx, stats); + if (updater.isThereAnythingToDo()) { + updater.update(); + ss.info(this, "Updated " + stats.updatedUris + + "URIs of PermissionSets on " + stats.updatedUsers + + "User Accounts, out of a total of " + + stats.allUserAccounts + " User Accounts."); + } else { + ss.info(this, "URIs of PermissionSets were up to date on all " + + stats.allUserAccounts + " User Accounts."); + } + } catch (Exception e) { + ss.fatal(this, "Failed to update URIs of PermissionSets " + + "on User Accounts", e); + } + } + + @Override + public void contextDestroyed(ServletContextEvent sce) { + // Nothing to tear down. + } + + // ---------------------------------------------------------------------- + // The Updater class + // ---------------------------------------------------------------------- + + private static class Updater { + private static final String OLD_ADMIN_URI = "http://permissionSet-50"; + private static final String OLD_CURATOR_URI = "http://permissionSet-5"; + private static final String OLD_EDITOR_URI = "http://permissionSet-4"; + private static final String OLD_SELF_EDITOR_URI = "http://permissionSet-1"; + private static final String NEW_ADMIN_URI = VITRO_AUTH + "ADMIN"; + private static final String NEW_CURATOR_URI = VITRO_AUTH + "CURATOR"; + private static final String NEW_EDITOR_URI = VITRO_AUTH + "EDITOR"; + private static final String NEW_SELF_EDITOR_URI = VITRO_AUTH + + "SELF_EDITOR"; + + private static final Map updateMap = buildUpdateMap(); + + private static Map buildUpdateMap() { + Map map = new HashMap(); + map.put(OLD_ADMIN_URI, NEW_ADMIN_URI); + map.put(OLD_CURATOR_URI, NEW_CURATOR_URI); + map.put(OLD_EDITOR_URI, NEW_EDITOR_URI); + map.put(OLD_SELF_EDITOR_URI, NEW_SELF_EDITOR_URI); + return Collections.unmodifiableMap(map); + } + + private final ServletContext ctx; + private final Stats stats; + private final UserAccountsDao userAccountsDao; + + private Journal journal; + + public Updater(ServletContext ctx, Stats stats) { + this.ctx = ctx; + this.stats = stats; + + WebappDaoFactory wadf = (WebappDaoFactory) ctx + .getAttribute("webappDaoFactory"); + userAccountsDao = wadf.getUserAccountsDao(); + } + + /** + * If none of the existing Users have Permission Sets with the obsolete + * URIs, then we don't do anything. We don't even create a Journal. + */ + public boolean isThereAnythingToDo() { + Collection allUserAccounts = userAccountsDao + .getAllUserAccounts(); + stats.allUserAccounts = allUserAccounts.size(); + + for (UserAccount user : allUserAccounts) { + for (String psUri : user.getPermissionSetUris()) { + if (updateMap.keySet().contains(psUri)) { + return true; + } + } + } + return false; + } + + public void update() throws IOException { + journal = new Journal(ctx); + try { + for (UserAccount user : userAccountsDao.getAllUserAccounts()) { + updateUserAccount(user); + } + } finally { + journal.close(); + } + } + + private void updateUserAccount(UserAccount user) { + boolean updated = false; + List newUris = new ArrayList(); + + for (String oldUri : user.getPermissionSetUris()) { + if (updateMap.keySet().contains(oldUri)) { + String newUri = updateMap.get(oldUri); + newUris.add(newUri); + + updated = true; + stats.updatedUris++; + journal.noteUpdate(user, oldUri, newUri); + } else { + newUris.add(oldUri); + } + } + + if (updated) { + user.setPermissionSetUris(newUris); + userAccountsDao.updateUserAccount(user); + + stats.updatedUsers++; + } + } + + } + + // ---------------------------------------------------------------------- + // The Stats class + // ---------------------------------------------------------------------- + + private static class Stats { + int allUserAccounts; + int updatedUsers; + int updatedUris; + } + + // ---------------------------------------------------------------------- + // The Journal class + // ---------------------------------------------------------------------- + + private static class Journal { + private final File file; + private final PrintWriter w; + private int errorCount; + + Journal(ServletContext ctx) throws IOException { + String homeDirectoryPath = ConfigurationProperties.getBean(ctx) + .getProperty("vitro.home.directory"); + if (homeDirectoryPath == null) { + throw new IllegalStateException( + "No value found for vitro.home.directory"); + } + File homeDirectory = new File(homeDirectoryPath); + confirmIsDirectory(homeDirectory); + + File upgradeDirectory = createDirectory(homeDirectory, "upgrade"); + String filename = timestampedFilename("UpgradePermissionSetUris", + ".txt"); + this.file = new File(upgradeDirectory, filename); + + this.w = new PrintWriter(this.file); + } + + public String getPath() { + return file.getAbsolutePath(); + } + + public void note(String... notes) { + w.println(); + for (String note : notes) { + w.println("# " + note); + } + } + + public void noteUpdate(UserAccount user, String oldPermissionSetUri, + String newPermissionSetUri) { + note(String.format("For user %1$s, replaced '%2$s' with '%3$s'", + user.getUri(), oldPermissionSetUri, newPermissionSetUri)); + } + + public void close() { + w.println("upgrade complete with " + errorCount + " errors."); + w.close(); + } + + private void confirmIsDirectory(File home) { + if (!home.exists()) { + throw new IllegalStateException("Vitro home directory '" + + home.getPath() + "' does not exist."); + } + if (!home.isDirectory()) { + throw new IllegalStateException("Vitro home '" + home.getPath() + + "' is not a directory."); + } + if (!home.canWrite()) { + throw new IllegalStateException( + "Can't write to Vitro home directory '" + + home.getPath() + "'."); + } + } + + private File createDirectory(File home, String name) { + File newDir = new File(home, name); + if (!newDir.exists()) { + newDir.mkdirs(); + if (!newDir.exists()) { + throw new IllegalStateException( + "Failed to create the upgrade directory '" + + newDir.getPath() + "'"); + } + } + + if (!newDir.isDirectory()) { + throw new IllegalStateException("Upgrade directory '" + + newDir.getPath() + "' is not a directory."); + } + if (!newDir.canWrite()) { + throw new IllegalStateException( + "Can't write to Upgrade directory '" + newDir.getPath() + + "'."); + } + + return newDir; + } + + private String timestampedFilename(String prefix, String suffix) { + SimpleDateFormat sdf = new SimpleDateFormat( + "yyyy-MM-dd'T'HH-mm-sss"); + return prefix + "." + sdf.format(new Date()) + suffix; + } + } + +} diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/sparql/GetAllClasses.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/sparql/GetAllClasses.java index 903b750b2..89a794f37 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/sparql/GetAllClasses.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/sparql/GetAllClasses.java @@ -14,8 +14,7 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import edu.cornell.mannlib.vedit.controller.BaseEditController; -import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.Actions; -import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.usepages.UseMiscellaneousPages; +import edu.cornell.mannlib.vitro.webapp.auth.permissions.SimplePermission; import edu.cornell.mannlib.vitro.webapp.beans.VClass; import edu.cornell.mannlib.vitro.webapp.beans.VClassGroup; import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest; @@ -46,7 +45,8 @@ public class GetAllClasses extends BaseEditController { */ public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { - if (!isAuthorizedToDisplayPage(request, response, new Actions(new UseMiscellaneousPages()))) { + if (!isAuthorizedToDisplayPage(request, response, + SimplePermission.USE_MISCELLANEOUS_PAGES.ACTIONS)) { return; } diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/sparql/GetAllPrefix.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/sparql/GetAllPrefix.java index da7b505c5..ab098bb55 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/sparql/GetAllPrefix.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/sparql/GetAllPrefix.java @@ -23,8 +23,7 @@ import com.hp.hpl.jena.vocabulary.RDFS; import com.hp.hpl.jena.vocabulary.XSD; import edu.cornell.mannlib.vedit.controller.BaseEditController; -import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.Actions; -import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.usepages.UseMiscellaneousPages; +import edu.cornell.mannlib.vitro.webapp.auth.permissions.SimplePermission; import edu.cornell.mannlib.vitro.webapp.beans.BaseResourceBean; import edu.cornell.mannlib.vitro.webapp.beans.Ontology; import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest; @@ -58,7 +57,8 @@ public class GetAllPrefix extends BaseEditController { */ public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { - if (!isAuthorizedToDisplayPage(request, response, new Actions(new UseMiscellaneousPages()))) { + if (!isAuthorizedToDisplayPage(request, response, + SimplePermission.USE_MISCELLANEOUS_PAGES.ACTIONS)) { return; } diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/sparql/GetClazzAllProperties.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/sparql/GetClazzAllProperties.java index 11cef69ae..795c1e70d 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/sparql/GetClazzAllProperties.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/sparql/GetClazzAllProperties.java @@ -21,8 +21,7 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import edu.cornell.mannlib.vedit.controller.BaseEditController; -import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.Actions; -import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.usepages.UseMiscellaneousPages; +import edu.cornell.mannlib.vitro.webapp.auth.permissions.SimplePermission; import edu.cornell.mannlib.vitro.webapp.beans.DataProperty; import edu.cornell.mannlib.vitro.webapp.beans.ObjectProperty; import edu.cornell.mannlib.vitro.webapp.beans.PropertyInstance; @@ -45,7 +44,8 @@ public class GetClazzAllProperties extends BaseEditController { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { - if (!isAuthorizedToDisplayPage(request, response, new Actions(new UseMiscellaneousPages()))) { + if (!isAuthorizedToDisplayPage(request, response, + SimplePermission.USE_MISCELLANEOUS_PAGES.ACTIONS)) { return; } diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/sparql/GetClazzDataProperties.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/sparql/GetClazzDataProperties.java index 48c9582ec..d46bcc0a2 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/sparql/GetClazzDataProperties.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/sparql/GetClazzDataProperties.java @@ -15,8 +15,7 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import edu.cornell.mannlib.vedit.controller.BaseEditController; -import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.Actions; -import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.usepages.UseMiscellaneousPages; +import edu.cornell.mannlib.vitro.webapp.auth.permissions.SimplePermission; import edu.cornell.mannlib.vitro.webapp.beans.DataProperty; import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest; import edu.cornell.mannlib.vitro.webapp.dao.DataPropertyDao; @@ -34,7 +33,8 @@ public class GetClazzDataProperties extends BaseEditController { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { - if (!isAuthorizedToDisplayPage(request, response, new Actions(new UseMiscellaneousPages()))) { + if (!isAuthorizedToDisplayPage(request, response, + SimplePermission.USE_MISCELLANEOUS_PAGES.ACTIONS)) { return; } diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/sparql/GetClazzObjectProperties.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/sparql/GetClazzObjectProperties.java index 58e0cac57..2dd3c9c56 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/sparql/GetClazzObjectProperties.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/sparql/GetClazzObjectProperties.java @@ -20,8 +20,7 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import edu.cornell.mannlib.vedit.controller.BaseEditController; -import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.Actions; -import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.usepages.UseMiscellaneousPages; +import edu.cornell.mannlib.vitro.webapp.auth.permissions.SimplePermission; import edu.cornell.mannlib.vitro.webapp.beans.ObjectProperty; import edu.cornell.mannlib.vitro.webapp.beans.PropertyInstance; import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest; @@ -41,7 +40,8 @@ public class GetClazzObjectProperties extends BaseEditController { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { - if (!isAuthorizedToDisplayPage(request, response, new Actions(new UseMiscellaneousPages()))) { + if (!isAuthorizedToDisplayPage(request, response, + SimplePermission.USE_MISCELLANEOUS_PAGES.ACTIONS)) { return; } diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/sparql/GetObjectClasses.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/sparql/GetObjectClasses.java index 52d0c0e79..47a72435a 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/sparql/GetObjectClasses.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/sparql/GetObjectClasses.java @@ -14,8 +14,7 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import edu.cornell.mannlib.vedit.controller.BaseEditController; -import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.Actions; -import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.usepages.UseMiscellaneousPages; +import edu.cornell.mannlib.vitro.webapp.auth.permissions.SimplePermission; import edu.cornell.mannlib.vitro.webapp.beans.ObjectProperty; import edu.cornell.mannlib.vitro.webapp.beans.VClass; import edu.cornell.mannlib.vitro.webapp.beans.VClassGroup; @@ -50,7 +49,8 @@ public class GetObjectClasses extends BaseEditController { */ public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { - if (!isAuthorizedToDisplayPage(request, response, new Actions(new UseMiscellaneousPages()))) { + if (!isAuthorizedToDisplayPage(request, response, + SimplePermission.USE_MISCELLANEOUS_PAGES.ACTIONS)) { return; } 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 657820fd7..0d9d63f76 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 @@ -3,7 +3,6 @@ package edu.cornell.mannlib.vitro.webapp.web.templatemodels.individual; import java.util.Collection; -import java.util.Collections; import java.util.List; import java.util.Map; @@ -12,12 +11,12 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import edu.cornell.mannlib.vedit.beans.LoginStatusBean; +import edu.cornell.mannlib.vitro.webapp.auth.permissions.SimplePermission; import edu.cornell.mannlib.vitro.webapp.auth.policy.PolicyHelper; import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.Actions; import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.ifaces.RequestActionConstants; import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.propstmt.AddDataPropStmt; import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.propstmt.AddObjectPropStmt; -import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.usepages.SeeIndividualEditingPanel; import edu.cornell.mannlib.vitro.webapp.beans.DataPropertyStatement; import edu.cornell.mannlib.vitro.webapp.beans.Individual; import edu.cornell.mannlib.vitro.webapp.beans.VClass; @@ -127,7 +126,8 @@ public abstract class BaseIndividualTemplateModel extends BaseTemplateModel { } public boolean getShowAdminPanel() { - return PolicyHelper.isAuthorizedForActions(vreq, new SeeIndividualEditingPanel()); + return PolicyHelper.isAuthorizedForActions(vreq, + SimplePermission.SEE_INDVIDUAL_EDITING_PANEL.ACTIONS); } /* rdfs:label needs special treatment, because it is not possible to construct a 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 8a113b9c0..5a7e8f972 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 @@ -8,8 +8,8 @@ import java.util.Map; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import edu.cornell.mannlib.vitro.webapp.auth.permissions.SimplePermission; import edu.cornell.mannlib.vitro.webapp.auth.policy.PolicyHelper; -import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.usepages.SeeVerbosePropertyInformation; import edu.cornell.mannlib.vitro.webapp.beans.BaseResourceBean.RoleLevel; import edu.cornell.mannlib.vitro.webapp.beans.Individual; import edu.cornell.mannlib.vitro.webapp.beans.Property; @@ -65,7 +65,8 @@ public abstract class PropertyTemplateModel extends BaseTemplateModel { return; } - if (!PolicyHelper.isAuthorizedForActions(vreq, new SeeVerbosePropertyInformation())) { + if (!PolicyHelper.isAuthorizedForActions(vreq, + SimplePermission.SEE_VERBOSE_PROPERTY_INFORMATION.ACTIONS)) { return; } diff --git a/webapp/test/edu/cornell/mannlib/vitro/webapp/controller/edit/AuthenticateTest.java b/webapp/test/edu/cornell/mannlib/vitro/webapp/controller/edit/AuthenticateTest.java index 7f64b7b14..b9518c3e2 100644 --- a/webapp/test/edu/cornell/mannlib/vitro/webapp/controller/edit/AuthenticateTest.java +++ b/webapp/test/edu/cornell/mannlib/vitro/webapp/controller/edit/AuthenticateTest.java @@ -37,6 +37,8 @@ import edu.cornell.mannlib.vedit.beans.LoginStatusBean.AuthenticationSource; import edu.cornell.mannlib.vitro.testing.AbstractTestClass; import edu.cornell.mannlib.vitro.webapp.auth.identifier.ActiveIdentifierBundleFactories; import edu.cornell.mannlib.vitro.webapp.auth.identifier.common.CommonIdentifierBundleFactory; +import edu.cornell.mannlib.vitro.webapp.auth.permissions.Permission; +import edu.cornell.mannlib.vitro.webapp.auth.permissions.PermissionRegistry; import edu.cornell.mannlib.vitro.webapp.beans.UserAccount; import edu.cornell.mannlib.vitro.webapp.config.ConfigurationProperties; import edu.cornell.mannlib.vitro.webapp.controller.authenticate.Authenticator; @@ -130,7 +132,7 @@ public class AuthenticateTest extends AbstractTestClass { userAccountsDao.addUser(createUserFromUserInfo(OLD_STRANGER)); individualDao = new IndividualDaoStub(); - + webappDaoFactory = new WebappDaoFactoryStub(); webappDaoFactory.setUserAccountsDao(userAccountsDao); webappDaoFactory.setIndividualDao(individualDao); @@ -151,12 +153,15 @@ public class AuthenticateTest extends AbstractTestClass { response = new HttpServletResponseStub(); + PermissionRegistry.createRegistry(servletContext, + Collections. emptySet()); + auth = new Authenticate(); auth.init(servletConfig); setLoggerLevel(ConfigurationProperties.class, Level.WARN); new ConfigurationPropertiesStub().setBean(servletContext); - + ActiveIdentifierBundleFactories.addFactory(servletContext, new CommonIdentifierBundleFactory(servletContext)); } diff --git a/webapp/test/edu/cornell/mannlib/vitro/webapp/dao/jena/UserAccountsDaoJenaTest.java b/webapp/test/edu/cornell/mannlib/vitro/webapp/dao/jena/UserAccountsDaoJenaTest.java index 68bf50fac..1a6205e67 100644 --- a/webapp/test/edu/cornell/mannlib/vitro/webapp/dao/jena/UserAccountsDaoJenaTest.java +++ b/webapp/test/edu/cornell/mannlib/vitro/webapp/dao/jena/UserAccountsDaoJenaTest.java @@ -358,6 +358,7 @@ public class UserAccountsDaoJenaTest extends AbstractTestClass { PermissionSet ps2 = new PermissionSet(); ps2.setUri(URI_ROLE2); ps2.setLabel("Role 2"); + ps2.setDefaultForNewUsers(true); expected.add(ps2); assertCorrectPermissionSets(expected, dao.getAllPermissionSets()); @@ -450,25 +451,26 @@ public class UserAccountsDaoJenaTest extends AbstractTestClass { Collection actual) { Set> expectedMaps = new HashSet>(); for (PermissionSet ps : expected) { - Map map = new HashMap(); - map.put("uri", ps.getUri()); - map.put("label", ps.getLabel()); - map.put("permissions", ps.getPermissionUris()); - expectedMaps.add(map); + expectedMaps.add(buildMapFromPermissionSet(ps)); } Set> actualMaps = new HashSet>(); for (PermissionSet ps : actual) { - Map map = new HashMap(); - map.put("uri", ps.getUri()); - map.put("label", ps.getLabel()); - map.put("permissions", ps.getPermissionUris()); - actualMaps.add(map); + actualMaps.add(buildMapFromPermissionSet(ps)); } assertEquals("all permission sets", expectedMaps, actualMaps); } + private Map buildMapFromPermissionSet(PermissionSet ps) { + Map map = new HashMap(); + map.put("uri", ps.getUri()); + map.put("label", ps.getLabel()); + map.put("permissions", ps.getPermissionUris()); + map.put("defaultForNewUsers", ps.isDefaultForNewUsers()); + return map; + } + private void assertExpectedAccountUris(String label, Set expectedUserAccounts, Collection actualUserAccounts) { diff --git a/webapp/test/edu/cornell/mannlib/vitro/webapp/dao/jena/resources/UserAccountsDaoJenaTest.n3 b/webapp/test/edu/cornell/mannlib/vitro/webapp/dao/jena/resources/UserAccountsDaoJenaTest.n3 index 7b5069c26..007f41861 100644 --- a/webapp/test/edu/cornell/mannlib/vitro/webapp/dao/jena/resources/UserAccountsDaoJenaTest.n3 +++ b/webapp/test/edu/cornell/mannlib/vitro/webapp/dao/jena/resources/UserAccountsDaoJenaTest.n3 @@ -2,6 +2,7 @@ @prefix rdf: . @prefix rdfs: . +@prefix xsd: . @prefix owl: . @prefix auth: . @prefix mydomain: . @@ -30,6 +31,7 @@ mydomain:role1 mydomain:role2 a auth:PermissionSet ; + a auth:DefaultPermissionSetForNewUsers ; rdfs:label "Role 2" ; . diff --git a/webapp/test/stubs/edu/cornell/mannlib/vitro/webapp/dao/UserAccountsDaoStub.java b/webapp/test/stubs/edu/cornell/mannlib/vitro/webapp/dao/UserAccountsDaoStub.java index 9c782a90b..e404b348e 100644 --- a/webapp/test/stubs/edu/cornell/mannlib/vitro/webapp/dao/UserAccountsDaoStub.java +++ b/webapp/test/stubs/edu/cornell/mannlib/vitro/webapp/dao/UserAccountsDaoStub.java @@ -20,6 +20,7 @@ public class UserAccountsDaoStub implements UserAccountsDao { private static final Log log = LogFactory.getLog(UserAccountsDaoStub.class); private final Map userAccountsByUri = new HashMap(); + private final Map permissionSetsByUri = new HashMap(); // ---------------------------------------------------------------------- // Stub infrastructure @@ -28,6 +29,10 @@ public class UserAccountsDaoStub implements UserAccountsDao { public void addUser(UserAccount user) { userAccountsByUri.put(user.getUri(), user); } + + public void addPermissionSet(PermissionSet ps) { + permissionSetsByUri.put(ps.getUri(), ps); + } // ---------------------------------------------------------------------- // Stub methods @@ -38,6 +43,11 @@ public class UserAccountsDaoStub implements UserAccountsDao { return userAccountsByUri.get(uri); } + @Override + public PermissionSet getPermissionSetByUri(String uri) { + return permissionSetsByUri.get(uri); + } + // ---------------------------------------------------------------------- // Un-implemented methods // ---------------------------------------------------------------------- @@ -66,12 +76,6 @@ public class UserAccountsDaoStub implements UserAccountsDao { "UserAccountsDaoStub.deleteUserAccount() not implemented."); } - @Override - public PermissionSet getPermissionSetByUri(String uri) { - throw new RuntimeException( - "UserAccountsDaoStub.getPermissionSetByUri() not implemented."); - } - @Override public Collection getAllPermissionSets() { throw new RuntimeException( diff --git a/webapp/web/WEB-INF/resources/permission_config.n3 b/webapp/web/WEB-INF/resources/permission_config.n3 new file mode 100644 index 000000000..eca3dde66 --- /dev/null +++ b/webapp/web/WEB-INF/resources/permission_config.n3 @@ -0,0 +1,107 @@ +# $This file is distributed under the terms of the license in /doc/license.txt$ + +@prefix rdfs: . +@prefix auth: . +@prefix simplePermission: . + +auth:ADMIN + a auth:PermissionSet ; + rdfs:label "Site Admin" ; + + # ADMIN-only permissions + auth:hasPermission simplePermission:AccessSpecialDataModels ; + auth:hasPermission simplePermission:ManageMenus ; + auth:hasPermission simplePermission:ManageProxies ; + auth:hasPermission simplePermission:ManageSearchIndex ; + auth:hasPermission simplePermission:ManageUserAccounts ; + auth:hasPermission simplePermission:RebuildVClassGroupCache ; + auth:hasPermission simplePermission:RefreshVisualizationCache ; + auth:hasPermission simplePermission:SeeStartupStatus ; + auth:hasPermission simplePermission:UseAdvancedDataToolsPages ; + auth:hasPermission simplePermission:UseMiscellaneousAdminPages ; + + # permissions for CURATOR and above. + auth:hasPermission simplePermission:EditOntology ; + auth:hasPermission simplePermission:EditSiteInformation ; + auth:hasPermission simplePermission:ManagePortals ; + auth:hasPermission simplePermission:ManageTabs ; + auth:hasPermission simplePermission:SeeVerbosePropertyInformation ; + auth:hasPermission simplePermission:UseMiscellaneousCuratorPages ; + + # permissions for EDITOR and above. + auth:hasPermission simplePermission:DoBackEndEditing ; + auth:hasPermission simplePermission:SeeIndividualEditingPanel ; + auth:hasPermission simplePermission:SeeRevisionInfo ; + auth:hasPermission simplePermission:SeeSiteAdminPage ; + auth:hasPermission simplePermission:UseMiscellaneousEditorPages ; + + # permissions for ANY logged-in user. + auth:hasPermission simplePermission:DoFrontEndEditing ; + auth:hasPermission simplePermission:EditOwnAccount ; + auth:hasPermission simplePermission:ManageOwnProxies ; + auth:hasPermission simplePermission:QueryUserAccountsModel ; + auth:hasPermission simplePermission:UseBasicAjaxControllers ; + auth:hasPermission simplePermission:UseMiscellaneousPages ; + . + +auth:CURATOR + a auth:PermissionSet ; + rdfs:label "Curator" ; + + # permissions for CURATOR and above. + auth:hasPermission simplePermission:EditOntology ; + auth:hasPermission simplePermission:EditSiteInformation ; + auth:hasPermission simplePermission:ManagePortals ; + auth:hasPermission simplePermission:ManageTabs ; + auth:hasPermission simplePermission:SeeVerbosePropertyInformation ; + auth:hasPermission simplePermission:UseMiscellaneousCuratorPages ; + + # permissions for EDITOR and above. + auth:hasPermission simplePermission:DoBackEndEditing ; + auth:hasPermission simplePermission:SeeIndividualEditingPanel ; + auth:hasPermission simplePermission:SeeRevisionInfo ; + auth:hasPermission simplePermission:SeeSiteAdminPage ; + auth:hasPermission simplePermission:UseMiscellaneousEditorPages ; + + # permissions for ANY logged-in user. + auth:hasPermission simplePermission:DoFrontEndEditing ; + auth:hasPermission simplePermission:EditOwnAccount ; + auth:hasPermission simplePermission:ManageOwnProxies ; + auth:hasPermission simplePermission:QueryUserAccountsModel ; + auth:hasPermission simplePermission:UseBasicAjaxControllers ; + auth:hasPermission simplePermission:UseMiscellaneousPages ; + . + +auth:EDITOR + a auth:PermissionSet ; + rdfs:label "Editor" ; + + # permissions for EDITOR and above. + auth:hasPermission simplePermission:DoBackEndEditing ; + auth:hasPermission simplePermission:SeeIndividualEditingPanel ; + auth:hasPermission simplePermission:SeeRevisionInfo ; + auth:hasPermission simplePermission:SeeSiteAdminPage ; + auth:hasPermission simplePermission:UseMiscellaneousEditorPages ; + + # permissions for ANY logged-in user. + auth:hasPermission simplePermission:DoFrontEndEditing ; + auth:hasPermission simplePermission:EditOwnAccount ; + auth:hasPermission simplePermission:ManageOwnProxies ; + auth:hasPermission simplePermission:QueryUserAccountsModel ; + auth:hasPermission simplePermission:UseBasicAjaxControllers ; + auth:hasPermission simplePermission:UseMiscellaneousPages ; + . + +auth:SELF_EDITOR + a auth:PermissionSet ; + a auth:DefaultPermissionSetForNewUsers ; + rdfs:label "Self Editor" ; + + # permissions for ANY logged-in user. + auth:hasPermission simplePermission:DoFrontEndEditing ; + auth:hasPermission simplePermission:EditOwnAccount ; + auth:hasPermission simplePermission:ManageOwnProxies ; + auth:hasPermission simplePermission:QueryUserAccountsModel ; + auth:hasPermission simplePermission:UseBasicAjaxControllers ; + auth:hasPermission simplePermission:UseMiscellaneousPages ; + . diff --git a/webapp/web/WEB-INF/resources/startup_listeners.txt b/webapp/web/WEB-INF/resources/startup_listeners.txt index ac5c92252..5a62388c4 100644 --- a/webapp/web/WEB-INF/resources/startup_listeners.txt +++ b/webapp/web/WEB-INF/resources/startup_listeners.txt @@ -24,13 +24,8 @@ edu.cornell.mannlib.vitro.webapp.servlet.setup.UpdateKnowledgeBase edu.cornell.mannlib.vitro.webapp.filestorage.backend.FileStorageSetup -# Invokes a process to move any uploaded files into the new file storage system. -# Needs to run after FileStorageSetup and JenaDataSourceSetup. -# Should run before Pellet is set up. -edu.cornell.mannlib.vitro.webapp.servlet.setup.UpdateUploadedFiles - -# Update to the new UserAccounts model (1.3). Needs to run after JenaDataSourceSetup. -edu.cornell.mannlib.vitro.webapp.servlet.setup.UpdateUserAccounts +# Update the URIs on Permission Sets on UserAccounts from model (1.4) to 1.5. +edu.cornell.mannlib.vitro.webapp.servlet.setup.UpdatePermissionSetUris edu.cornell.mannlib.vitro.webapp.servlet.setup.FileGraphSetup @@ -39,6 +34,8 @@ edu.cornell.mannlib.vitro.webapp.servlet.setup.SimpleReasonerSetup # Must run after JenaDataSourceSetup edu.cornell.mannlib.vitro.webapp.servlet.setup.ThemeInfoSetup +edu.cornell.mannlib.vitro.webapp.auth.permissions.PermissionRegistry$Setup + edu.cornell.mannlib.vitro.webapp.auth.permissions.PermissionSetsLoader edu.cornell.mannlib.vitro.webapp.auth.policy.bean.PropertyRestrictionPolicyHelper$Setup