NIHVIVO-2279 Add externalAuthId to the UserAccount.
This commit is contained in:
parent
c6ed488e64
commit
eac9e5dca1
6 changed files with 52 additions and 35 deletions
|
@ -11,6 +11,10 @@ import java.util.Set;
|
||||||
* Information about the account of a user. URI, email, password, etc.
|
* Information about the account of a user. URI, email, password, etc.
|
||||||
*/
|
*/
|
||||||
public class UserAccount {
|
public class UserAccount {
|
||||||
|
|
||||||
|
public final static int MIN_PASSWORD_LENGTH = 6;
|
||||||
|
public final static int MAX_PASSWORD_LENGTH = 12;
|
||||||
|
|
||||||
public enum Status {
|
public enum Status {
|
||||||
ACTIVE, INACTIVE;
|
ACTIVE, INACTIVE;
|
||||||
|
|
||||||
|
@ -30,36 +34,20 @@ public class UserAccount {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Should never be null. */
|
private String uri = ""; // Never null.
|
||||||
private String uri = "";
|
|
||||||
|
|
||||||
|
private String emailAddress = ""; // Never null.
|
||||||
|
private String firstName = ""; // Never null.
|
||||||
|
private String lastName = ""; // Never null.
|
||||||
|
|
||||||
/** Should never be null. */
|
private String md5Password = ""; // Never null.
|
||||||
private String emailAddress = "";
|
private String oldPassword = ""; // Never null.
|
||||||
|
private long passwordLinkExpires = 0L; // Never negative.
|
||||||
/** Should never be null. */
|
|
||||||
private String firstName = "";
|
|
||||||
|
|
||||||
/** Should never be null. */
|
|
||||||
private String lastName = "";
|
|
||||||
|
|
||||||
|
|
||||||
/** Should never be null. */
|
|
||||||
private String md5Password = "";
|
|
||||||
|
|
||||||
/** Should never be null. */
|
|
||||||
private String oldPassword = "";
|
|
||||||
|
|
||||||
/** Should never be negative. */
|
|
||||||
private long passwordLinkExpires = 0L;
|
|
||||||
|
|
||||||
private boolean passwordChangeRequired = false;
|
private boolean passwordChangeRequired = false;
|
||||||
|
|
||||||
/** Should never be negative. */
|
private int loginCount = 0; // Never negative.
|
||||||
private int loginCount = 0;
|
private Status status = Status.INACTIVE; // Might be null.
|
||||||
|
private String externalAuthId = ""; // Never null.
|
||||||
/** Might be null. */
|
|
||||||
private Status status = Status.INACTIVE;
|
|
||||||
|
|
||||||
/** This may be empty, but should never be null. */
|
/** This may be empty, but should never be null. */
|
||||||
private Set<String> permissionSetUris = Collections.emptySet();
|
private Set<String> permissionSetUris = Collections.emptySet();
|
||||||
|
@ -128,7 +116,8 @@ public class UserAccount {
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setPasswordChangeRequired(Boolean passwordChangeRequired) {
|
public void setPasswordChangeRequired(Boolean passwordChangeRequired) {
|
||||||
this.passwordChangeRequired = nonNull(passwordChangeRequired, Boolean.FALSE);
|
this.passwordChangeRequired = nonNull(passwordChangeRequired,
|
||||||
|
Boolean.FALSE);
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getLoginCount() {
|
public int getLoginCount() {
|
||||||
|
@ -151,6 +140,14 @@ public class UserAccount {
|
||||||
this.status = Status.fromString(statusString);
|
this.status = Status.fromString(statusString);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String getExternalAuthId() {
|
||||||
|
return externalAuthId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setExternalAuthId(String externalAuthId) {
|
||||||
|
this.externalAuthId = nonNull(externalAuthId, "");
|
||||||
|
}
|
||||||
|
|
||||||
public Set<String> getPermissionSetUris() {
|
public Set<String> getPermissionSetUris() {
|
||||||
return new HashSet<String>(permissionSetUris);
|
return new HashSet<String>(permissionSetUris);
|
||||||
}
|
}
|
||||||
|
@ -168,12 +165,14 @@ public class UserAccount {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String toString() {
|
public String toString() {
|
||||||
return "UserAccount[uri=" + uri + ", emailAddress=" + emailAddress
|
return "UserAccount[uri=" + uri + (", emailAddress=" + emailAddress)
|
||||||
+ ", firstName=" + firstName + ", lastName=" + lastName
|
+ (", firstName=" + firstName) + (", lastName=" + lastName)
|
||||||
+ ", md5password=" + md5Password + ", passwordChangeExpires="
|
+ (", md5password=" + md5Password)
|
||||||
+ passwordLinkExpires + ", loginCount=" + loginCount
|
+ (", oldPassword=" + oldPassword)
|
||||||
+ ", status=" + status + ", permissionSetUris="
|
+ (", passwordLinkExpires=" + passwordLinkExpires)
|
||||||
+ permissionSetUris + "]";
|
+ (", passwordChangeRequired=" + passwordChangeRequired)
|
||||||
|
+ (", loginCount=" + loginCount) + (", status=" + status)
|
||||||
|
+ (", externalAuthId=" + externalAuthId)
|
||||||
|
+ (", permissionSetUris=" + permissionSetUris) + "]";
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -193,6 +193,7 @@ public class VitroVocabulary {
|
||||||
public static final String USERACCOUNT_STATUS = VITRO_AUTH + "status";
|
public static final String USERACCOUNT_STATUS = VITRO_AUTH + "status";
|
||||||
public static final String USERACCOUNT_PASSWORD_LINK_EXPIRES = VITRO_AUTH + "passwordLinkExpires";
|
public static final String USERACCOUNT_PASSWORD_LINK_EXPIRES = VITRO_AUTH + "passwordLinkExpires";
|
||||||
public static final String USERACCOUNT_PASSWORD_CHANGE_REQUIRED = VITRO_AUTH + "passwordChangeRequired";
|
public static final String USERACCOUNT_PASSWORD_CHANGE_REQUIRED = VITRO_AUTH + "passwordChangeRequired";
|
||||||
|
public static final String USERACCOUNT_EXTERNAL_AUTH_ID = VITRO_AUTH + "externalAuthId";
|
||||||
public static final String USERACCOUNT_HAS_PERMISSION_SET = VITRO_AUTH + "hasPermissionSet";
|
public static final String USERACCOUNT_HAS_PERMISSION_SET = VITRO_AUTH + "hasPermissionSet";
|
||||||
|
|
||||||
public static final String PERMISSIONSET = VITRO_AUTH + "PermissionSet";
|
public static final String PERMISSIONSET = VITRO_AUTH + "PermissionSet";
|
||||||
|
|
|
@ -167,6 +167,7 @@ public class JenaBaseDaoCon {
|
||||||
protected DatatypeProperty USERACCOUNT_STATUS = _constModel.createDatatypeProperty(VitroVocabulary.USERACCOUNT_STATUS);
|
protected DatatypeProperty USERACCOUNT_STATUS = _constModel.createDatatypeProperty(VitroVocabulary.USERACCOUNT_STATUS);
|
||||||
protected DatatypeProperty USERACCOUNT_PASSWORD_LINK_EXPIRES = _constModel.createDatatypeProperty(VitroVocabulary.USERACCOUNT_PASSWORD_LINK_EXPIRES);
|
protected DatatypeProperty USERACCOUNT_PASSWORD_LINK_EXPIRES = _constModel.createDatatypeProperty(VitroVocabulary.USERACCOUNT_PASSWORD_LINK_EXPIRES);
|
||||||
protected DatatypeProperty USERACCOUNT_PASSWORD_CHANGE_REQUIRED = _constModel.createDatatypeProperty(VitroVocabulary.USERACCOUNT_PASSWORD_CHANGE_REQUIRED);
|
protected DatatypeProperty USERACCOUNT_PASSWORD_CHANGE_REQUIRED = _constModel.createDatatypeProperty(VitroVocabulary.USERACCOUNT_PASSWORD_CHANGE_REQUIRED);
|
||||||
|
protected DatatypeProperty USERACCOUNT_EXTERNAL_AUTH_ID = _constModel.createDatatypeProperty(VitroVocabulary.USERACCOUNT_EXTERNAL_AUTH_ID);
|
||||||
protected ObjectProperty USERACCOUNT_HAS_PERMISSION_SET = _constModel.createObjectProperty(VitroVocabulary.USERACCOUNT_HAS_PERMISSION_SET);
|
protected ObjectProperty USERACCOUNT_HAS_PERMISSION_SET = _constModel.createObjectProperty(VitroVocabulary.USERACCOUNT_HAS_PERMISSION_SET);
|
||||||
|
|
||||||
protected OntClass PERMISSIONSET = _constModel.createClass(VitroVocabulary.PERMISSIONSET);
|
protected OntClass PERMISSIONSET = _constModel.createClass(VitroVocabulary.PERMISSIONSET);
|
||||||
|
|
|
@ -61,6 +61,8 @@ public class UserAccountsDaoJena extends JenaBaseDao implements UserAccountsDao
|
||||||
USERACCOUNT_PASSWORD_CHANGE_REQUIRED));
|
USERACCOUNT_PASSWORD_CHANGE_REQUIRED));
|
||||||
u.setLoginCount(getPropertyIntValue(r, USERACCOUNT_LOGIN_COUNT));
|
u.setLoginCount(getPropertyIntValue(r, USERACCOUNT_LOGIN_COUNT));
|
||||||
u.setStatusFromString(getPropertyStringValue(r, USERACCOUNT_STATUS));
|
u.setStatusFromString(getPropertyStringValue(r, USERACCOUNT_STATUS));
|
||||||
|
u.setExternalAuthId(getPropertyStringValue(r,
|
||||||
|
USERACCOUNT_EXTERNAL_AUTH_ID));
|
||||||
u.setPermissionSetUris(getPropertyResourceURIValues(r,
|
u.setPermissionSetUris(getPropertyResourceURIValues(r,
|
||||||
USERACCOUNT_HAS_PERMISSION_SET));
|
USERACCOUNT_HAS_PERMISSION_SET));
|
||||||
return u;
|
return u;
|
||||||
|
@ -105,6 +107,8 @@ public class UserAccountsDaoJena extends JenaBaseDao implements UserAccountsDao
|
||||||
addPropertyStringValue(res, USERACCOUNT_STATUS, userAccount
|
addPropertyStringValue(res, USERACCOUNT_STATUS, userAccount
|
||||||
.getStatus().toString(), model);
|
.getStatus().toString(), model);
|
||||||
}
|
}
|
||||||
|
addPropertyStringValue(res, USERACCOUNT_EXTERNAL_AUTH_ID,
|
||||||
|
userAccount.getExternalAuthId(), model);
|
||||||
updatePropertyResourceURIValues(res,
|
updatePropertyResourceURIValues(res,
|
||||||
USERACCOUNT_HAS_PERMISSION_SET,
|
USERACCOUNT_HAS_PERMISSION_SET,
|
||||||
userAccount.getPermissionSetUris(), model);
|
userAccount.getPermissionSetUris(), model);
|
||||||
|
@ -158,6 +162,8 @@ public class UserAccountsDaoJena extends JenaBaseDao implements UserAccountsDao
|
||||||
updatePropertyStringValue(res, USERACCOUNT_STATUS, userAccount
|
updatePropertyStringValue(res, USERACCOUNT_STATUS, userAccount
|
||||||
.getStatus().toString(), model);
|
.getStatus().toString(), model);
|
||||||
}
|
}
|
||||||
|
updatePropertyStringValue(res, USERACCOUNT_EXTERNAL_AUTH_ID,
|
||||||
|
userAccount.getExternalAuthId(), model);
|
||||||
updatePropertyResourceURIValues(res,
|
updatePropertyResourceURIValues(res,
|
||||||
USERACCOUNT_HAS_PERMISSION_SET,
|
USERACCOUNT_HAS_PERMISSION_SET,
|
||||||
userAccount.getPermissionSetUris(), model);
|
userAccount.getPermissionSetUris(), model);
|
||||||
|
|
|
@ -83,6 +83,7 @@ public class UserAccountsDaoJenaTest extends AbstractTestClass {
|
||||||
assertEquals("changeRequired", false, u.isPasswordChangeRequired());
|
assertEquals("changeRequired", false, u.isPasswordChangeRequired());
|
||||||
assertEquals("loginCount", 5, u.getLoginCount());
|
assertEquals("loginCount", 5, u.getLoginCount());
|
||||||
assertEquals("status", Status.ACTIVE, u.getStatus());
|
assertEquals("status", Status.ACTIVE, u.getStatus());
|
||||||
|
assertEquals("externalAuthId", "user1", u.getExternalAuthId());
|
||||||
assertEquals("permissionSetUris", Collections.singleton(URI_ROLE1),
|
assertEquals("permissionSetUris", Collections.singleton(URI_ROLE1),
|
||||||
u.getPermissionSetUris());
|
u.getPermissionSetUris());
|
||||||
}
|
}
|
||||||
|
@ -112,6 +113,7 @@ public class UserAccountsDaoJenaTest extends AbstractTestClass {
|
||||||
in.setPasswordChangeRequired(true);
|
in.setPasswordChangeRequired(true);
|
||||||
in.setLoginCount(42);
|
in.setLoginCount(42);
|
||||||
in.setStatus(Status.INACTIVE);
|
in.setStatus(Status.INACTIVE);
|
||||||
|
in.setExternalAuthId("newUser");
|
||||||
in.setPermissionSetUris(buildSet(URI_ROLE1, URI_ROLE2));
|
in.setPermissionSetUris(buildSet(URI_ROLE1, URI_ROLE2));
|
||||||
|
|
||||||
String newUri = dao.insertUserAccount(in);
|
String newUri = dao.insertUserAccount(in);
|
||||||
|
@ -127,6 +129,7 @@ public class UserAccountsDaoJenaTest extends AbstractTestClass {
|
||||||
assertEquals("changeRequired", true, u.isPasswordChangeRequired());
|
assertEquals("changeRequired", true, u.isPasswordChangeRequired());
|
||||||
assertEquals("loginCount", 42, u.getLoginCount());
|
assertEquals("loginCount", 42, u.getLoginCount());
|
||||||
assertEquals("status", Status.INACTIVE, u.getStatus());
|
assertEquals("status", Status.INACTIVE, u.getStatus());
|
||||||
|
assertEquals("externalAuthId", "newUser", u.getExternalAuthId());
|
||||||
assertEquals("permissionSetUris", buildSet(URI_ROLE1, URI_ROLE2),
|
assertEquals("permissionSetUris", buildSet(URI_ROLE1, URI_ROLE2),
|
||||||
u.getPermissionSetUris());
|
u.getPermissionSetUris());
|
||||||
}
|
}
|
||||||
|
@ -157,6 +160,7 @@ public class UserAccountsDaoJenaTest extends AbstractTestClass {
|
||||||
up.setPasswordChangeRequired(false);
|
up.setPasswordChangeRequired(false);
|
||||||
up.setLoginCount(43);
|
up.setLoginCount(43);
|
||||||
up.setStatus(Status.ACTIVE);
|
up.setStatus(Status.ACTIVE);
|
||||||
|
up.setExternalAuthId("updatedUser1");
|
||||||
up.setPermissionSetUris(buildSet(URI_ROLE1, URI_ROLE3));
|
up.setPermissionSetUris(buildSet(URI_ROLE1, URI_ROLE3));
|
||||||
|
|
||||||
dao.updateUserAccount(up);
|
dao.updateUserAccount(up);
|
||||||
|
@ -172,6 +176,7 @@ public class UserAccountsDaoJenaTest extends AbstractTestClass {
|
||||||
assertEquals("changeRequired", false, u.isPasswordChangeRequired());
|
assertEquals("changeRequired", false, u.isPasswordChangeRequired());
|
||||||
assertEquals("loginCount", 43, u.getLoginCount());
|
assertEquals("loginCount", 43, u.getLoginCount());
|
||||||
assertEquals("status", Status.ACTIVE, u.getStatus());
|
assertEquals("status", Status.ACTIVE, u.getStatus());
|
||||||
|
assertEquals("externalAuthId", "updatedUser1", u.getExternalAuthId());
|
||||||
assertEquals("permissionSetUris", buildSet(URI_ROLE1, URI_ROLE3),
|
assertEquals("permissionSetUris", buildSet(URI_ROLE1, URI_ROLE3),
|
||||||
u.getPermissionSetUris());
|
u.getPermissionSetUris());
|
||||||
}
|
}
|
||||||
|
@ -257,6 +262,10 @@ public class UserAccountsDaoJenaTest extends AbstractTestClass {
|
||||||
assertCorrectPermissionSets(expected, dao.getAllPermissionSets());
|
assertCorrectPermissionSets(expected, dao.getAllPermissionSets());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------
|
||||||
|
// helper methods
|
||||||
|
// ----------------------------------------------------------------------
|
||||||
|
|
||||||
private void assertCorrectPermissionSets(Set<PermissionSet> expected,
|
private void assertCorrectPermissionSets(Set<PermissionSet> expected,
|
||||||
Collection<PermissionSet> actual) {
|
Collection<PermissionSet> actual) {
|
||||||
Set<Map<String, Object>> expectedMaps = new HashSet<Map<String, Object>>();
|
Set<Map<String, Object>> expectedMaps = new HashSet<Map<String, Object>>();
|
||||||
|
|
|
@ -17,6 +17,7 @@ mydomain:user01
|
||||||
auth:passwordChangeExpires 0 ;
|
auth:passwordChangeExpires 0 ;
|
||||||
auth:loginCount 5 ;
|
auth:loginCount 5 ;
|
||||||
auth:status "ACTIVE" ;
|
auth:status "ACTIVE" ;
|
||||||
|
auth:externalAuthId "user1";
|
||||||
auth:hasPermissionSet mydomain:role1 ;
|
auth:hasPermissionSet mydomain:role1 ;
|
||||||
.
|
.
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue