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 2693c3196..8b1f457d5 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 @@ -287,7 +287,7 @@ public class PermissionSetsLoader implements ServletContextListener { checkForPermissionSetsWithoutLabels(); checkForReferencesToNonexistentPermissionSets(); checkForReferencesToNonexistentPermissions(); - warnIfNoDefaultPermissionSetsForNewUsers(); + warnIfNoPermissionSetsForNewUsers(); } private void checkForPermissionSetsWithoutLabels() { @@ -327,14 +327,14 @@ public class PermissionSetsLoader implements ServletContextListener { } } - private void warnIfNoDefaultPermissionSetsForNewUsers() { + private void warnIfNoPermissionSetsForNewUsers() { for (PermissionSet ps : uaDao.getAllPermissionSets()) { - if (ps.isDefaultForNewUsers()) { + if (ps.isForNewUsers()) { return; } } ss.warning(listener, "No PermissionSet has been declared to be a " - + "Default PermissionSet for new users."); + + "PermissionSet for new users."); } } 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 0af4001a8..9767f5303 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/beans/PermissionSet.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/beans/PermissionSet.java @@ -18,7 +18,8 @@ public class PermissionSet { /** This may be empty, but it should never be null. */ private String label = ""; - private boolean defaultForNewUsers; + private boolean forNewUsers; + private boolean forPublic; /** This may be empty, but it should never be null. */ private Set permissionUris = Collections.emptySet(); @@ -39,13 +40,22 @@ public class PermissionSet { this.label = (label == null) ? "" : label; } - public boolean isDefaultForNewUsers() { - return defaultForNewUsers; + public boolean isForNewUsers() { + return forNewUsers; } - public void setDefaultForNewUsers(Boolean defaultForNewUsers) { - this.defaultForNewUsers = (defaultForNewUsers == null) ? false - : defaultForNewUsers.booleanValue(); + public void setForNewUsers(Boolean forNewUsers) { + this.forNewUsers = (forNewUsers == null) ? false + : forNewUsers.booleanValue(); + } + + public boolean isForPublic() { + return forPublic; + } + + public void setForPublic(Boolean forPublic) { + this.forPublic = (forPublic == null) ? false + : forPublic.booleanValue(); } public Set getPermissionUris() { 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 dde828b54..67511a575 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/dao/VitroVocabulary.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/dao/VitroVocabulary.java @@ -169,7 +169,8 @@ 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_SET_FOR_NEW_USERS = VITRO_AUTH + "PermissionSetForNewUsers"; + public static final String PERMISSION_SET_FOR_PUBLIC = VITRO_AUTH + "PermissionSetForPublic"; 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 676bdfd33..4a4b4185e 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,7 +142,8 @@ 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 OntClass PERMISSION_SET_FOR_NEW_USERS = _constModel.createClass(VitroVocabulary.PERMISSION_SET_FOR_NEW_USERS); + protected OntClass PERMISSION_SET_FOR_PUBLIC = _constModel.createClass(VitroVocabulary.PERMISSION_SET_FOR_PUBLIC); 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 7611e2ffb..5bdb5f0fe 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 @@ -12,7 +12,6 @@ import java.util.Random; import com.hp.hpl.jena.ontology.OntClass; import com.hp.hpl.jena.ontology.OntModel; import com.hp.hpl.jena.ontology.OntResource; -import com.hp.hpl.jena.rdf.model.Literal; import com.hp.hpl.jena.rdf.model.Property; import com.hp.hpl.jena.rdf.model.Resource; import com.hp.hpl.jena.rdf.model.Statement; @@ -410,8 +409,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.setForNewUsers(isResourceOfType(r, PERMISSION_SET_FOR_NEW_USERS)); + ps.setForPublic(isResourceOfType(r, PERMISSION_SET_FOR_PUBLIC)); ps.setPermissionUris(getPropertyResourceURIValues(r, PERMISSIONSET_HAS_PERMISSION)); return ps; @@ -436,8 +435,10 @@ 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.setForNewUsers(isResourceOfType(r, + PERMISSION_SET_FOR_NEW_USERS)); + ps.setForPublic(isResourceOfType(r, + PERMISSION_SET_FOR_PUBLIC)); ps.setPermissionUris(getPropertyResourceURIValues(r, PERMISSIONSET_HAS_PERMISSION)); list.add(ps); 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 1a6205e67..60483298a 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,9 +358,15 @@ public class UserAccountsDaoJenaTest extends AbstractTestClass { PermissionSet ps2 = new PermissionSet(); ps2.setUri(URI_ROLE2); ps2.setLabel("Role 2"); - ps2.setDefaultForNewUsers(true); + ps2.setForNewUsers(true); expected.add(ps2); + PermissionSet ps3 = new PermissionSet(); + ps3.setUri(URI_ROLE3); + ps3.setLabel("Role 3"); + ps3.setForPublic(true); + expected.add(ps3); + assertCorrectPermissionSets(expected, dao.getAllPermissionSets()); } @@ -467,7 +473,8 @@ public class UserAccountsDaoJenaTest extends AbstractTestClass { map.put("uri", ps.getUri()); map.put("label", ps.getLabel()); map.put("permissions", ps.getPermissionUris()); - map.put("defaultForNewUsers", ps.isDefaultForNewUsers()); + map.put("forNewUsers", ps.isForNewUsers()); + map.put("forPublic", ps.isForPublic()); return map; } 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 007f41861..605ed33ae 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 @@ -31,10 +31,16 @@ mydomain:role1 mydomain:role2 a auth:PermissionSet ; - a auth:DefaultPermissionSetForNewUsers ; + a auth:PermissionSetForNewUsers ; rdfs:label "Role 2" ; . +mydomain:role3 + a auth:PermissionSet ; + a auth:PermissionSetForPublic ; + rdfs:label "Role 3" ; + . + mydomain:permissionA a auth:Permission ; rdfs:label "Permission A" ; 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 e404b348e..856525409 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 @@ -2,6 +2,7 @@ package stubs.edu.cornell.mannlib.vitro.webapp.dao; +import java.util.ArrayList; import java.util.Collection; import java.util.HashMap; import java.util.Map; @@ -43,6 +44,11 @@ public class UserAccountsDaoStub implements UserAccountsDao { return userAccountsByUri.get(uri); } + @Override + public Collection getAllPermissionSets() { + return new ArrayList(permissionSetsByUri.values()); + } + @Override public PermissionSet getPermissionSetByUri(String uri) { return permissionSetsByUri.get(uri); @@ -76,12 +82,6 @@ public class UserAccountsDaoStub implements UserAccountsDao { "UserAccountsDaoStub.deleteUserAccount() not implemented."); } - @Override - public Collection getAllPermissionSets() { - throw new RuntimeException( - "UserAccountsDaoStub.getAllPermissionSets() not implemented."); - } - @Override public UserAccount getUserAccountByExternalAuthId(String externalAuthId) { throw new RuntimeException(