NIHVIVO-2343 Extend UserAccount to include proxiedIndividualUris; extend the DAO.
This commit is contained in:
parent
42cfa1e725
commit
b28bacbdb5
5 changed files with 170 additions and 87 deletions
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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";
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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();
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue