NIHVIVO-3523 Add the concept of a PermissionSetForPublic (and rename PermissionSetForNewUsers)

This commit is contained in:
j2blake 2011-12-22 15:33:18 +00:00
parent 779c48c683
commit e5894ee80a
8 changed files with 52 additions and 26 deletions

View file

@ -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.");
}
}

View file

@ -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<String> 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<String> getPermissionUris() {

View file

@ -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";

View file

@ -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);

View file

@ -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);

View file

@ -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;
}

View file

@ -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" ;

View file

@ -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<PermissionSet> getAllPermissionSets() {
return new ArrayList<PermissionSet>(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<PermissionSet> getAllPermissionSets() {
throw new RuntimeException(
"UserAccountsDaoStub.getAllPermissionSets() not implemented.");
}
@Override
public UserAccount getUserAccountByExternalAuthId(String externalAuthId) {
throw new RuntimeException(