NIHVIVO-2343 Extend UserAccount to include proxiedIndividualUris; extend the DAO.

This commit is contained in:
j2blake 2011-10-21 21:09:19 +00:00
parent 42cfa1e725
commit b28bacbdb5
5 changed files with 170 additions and 87 deletions

View file

@ -65,6 +65,9 @@ public class UserAccount {
private Set<String> permissionSetUris = Collections.emptySet();
private boolean rootUser = false;
/** This may be empty, but should never be null. */
private Set<String> proxiedIndividualUris = Collections.emptySet();
public String getUri() {
return uri;
@ -202,6 +205,17 @@ public class UserAccount {
this.rootUser = rootUser;
}
public Set<String> getProxiedIndividualUris() {
return new HashSet<String>(proxiedIndividualUris);
}
public void setProxiedIndividualUris(Collection<String> proxiedIndividualUris) {
if (proxiedIndividualUris == null) {
throw new NullPointerException("proxiedIndividualUris may not be null.");
}
this.proxiedIndividualUris = new HashSet<String>(proxiedIndividualUris);
}
private <T> T nonNull(T value, T defaultValue) {
return (value == null) ? defaultValue : value;
}

View file

@ -165,6 +165,7 @@ public class VitroVocabulary {
public static final String USERACCOUNT_EXTERNAL_AUTH_ID = VITRO_AUTH + "externalAuthId";
public static final String USERACCOUNT_EXTERNAL_AUTH_ONLY = VITRO_AUTH + "externalAuthOnly";
public static final String USERACCOUNT_HAS_PERMISSION_SET = VITRO_AUTH + "hasPermissionSet";
public static final String USERACCOUNT_PROXY_EDITOR_FOR = VITRO_AUTH + "proxyEditorFor";
public static final String PERMISSIONSET = VITRO_AUTH + "PermissionSet";
public static final String PERMISSIONSET_HAS_PERMISSION = VITRO_AUTH + "hasPermission";

View file

@ -139,6 +139,7 @@ public class JenaBaseDaoCon {
protected DatatypeProperty USERACCOUNT_EXTERNAL_AUTH_ID = _constModel.createDatatypeProperty(VitroVocabulary.USERACCOUNT_EXTERNAL_AUTH_ID);
protected DatatypeProperty USERACCOUNT_EXTERNAL_AUTH_ONLY = _constModel.createDatatypeProperty(VitroVocabulary.USERACCOUNT_EXTERNAL_AUTH_ONLY);
protected ObjectProperty USERACCOUNT_HAS_PERMISSION_SET = _constModel.createObjectProperty(VitroVocabulary.USERACCOUNT_HAS_PERMISSION_SET);
protected ObjectProperty USERACCOUNT_PROXY_EDITOR_FOR = _constModel.createObjectProperty(VitroVocabulary.USERACCOUNT_PROXY_EDITOR_FOR);
protected OntClass PERMISSIONSET = _constModel.createClass(VitroVocabulary.PERMISSIONSET);
protected ObjectProperty PERMISSIONSET_HAS_PERMISSION = _constModel.createObjectProperty(VitroVocabulary.PERMISSIONSET_HAS_PERMISSION);

View file

@ -108,6 +108,8 @@ public class UserAccountsDaoJena extends JenaBaseDao implements UserAccountsDao
u.setPermissionSetUris(getPropertyResourceURIValues(r,
USERACCOUNT_HAS_PERMISSION_SET));
u.setRootUser(isResourceOfType(r, USERACCOUNT_ROOT_USER));
u.setProxiedIndividualUris(getPropertyResourceURIValues(r,
USERACCOUNT_PROXY_EDITOR_FOR));
return u;
} finally {
getOntModel().leaveCriticalSection();
@ -212,6 +214,10 @@ public class UserAccountsDaoJena extends JenaBaseDao implements UserAccountsDao
model.add(res, RDF.type, USERACCOUNT_ROOT_USER);
}
updatePropertyResourceURIValues(res,
USERACCOUNT_PROXY_EDITOR_FOR,
userAccount.getProxiedIndividualUris(), model);
userAccount.setUri(userUri);
return userUri;
} catch (InsertException e) {
@ -277,6 +283,10 @@ public class UserAccountsDaoJena extends JenaBaseDao implements UserAccountsDao
model.remove(res, RDF.type, USERACCOUNT_ROOT_USER);
}
updatePropertyResourceURIValues(res,
USERACCOUNT_PROXY_EDITOR_FOR,
userAccount.getProxiedIndividualUris(), model);
} finally {
model.leaveCriticalSection();
}