NIHVIVO-2703 Root user shouldn't require a role, and shouldn't accept one if offered.

This commit is contained in:
j2blake 2011-06-15 20:41:44 +00:00
parent 8e94e7a4e3
commit 6f4a024510

View file

@ -85,7 +85,7 @@ public class UserAccountsEditPage extends UserAccountsPage {
externalAuthId = getStringParameter(PARAMETER_EXTERNAL_AUTH_ID, "");
firstName = getStringParameter(PARAMETER_FIRST_NAME, "");
lastName = getStringParameter(PARAMETER_LAST_NAME, "");
selectedRoleUri = getStringParameter(PARAMETER_ROLE, "");
selectedRoleUri = isRootUser() ? "" :getStringParameter(PARAMETER_ROLE, "");
associateWithProfile = isParameterAsExpected(
PARAMETER_ASSOCIATE_WITH_PROFILE, "yes");
@ -127,7 +127,7 @@ public class UserAccountsEditPage extends UserAccountsPage {
errorCode = ERROR_NO_FIRST_NAME;
} else if (lastName.isEmpty()) {
errorCode = ERROR_NO_LAST_NAME;
} else if (selectedRoleUri.isEmpty()) {
} else if (!isRootUser() && selectedRoleUri.isEmpty()) {
errorCode = ERROR_NO_ROLE;
} else {
errorCode = strategy.additionalValidations();
@ -157,6 +157,10 @@ public class UserAccountsEditPage extends UserAccountsPage {
return userAccountsDao.getUserAccountByExternalAuthId(externalAuthId) != null;
}
private boolean isRootUser() {
return userAccountsDao.isRootUser(userAccount);
}
public boolean isValid() {
return errorCode.isEmpty();
}
@ -177,6 +181,11 @@ public class UserAccountsEditPage extends UserAccountsPage {
body.put("lastName", userAccount.getLastName());
body.put("selectedRole", getExistingRoleUri());
}
if (isRootUser()) {
body.put("selectedRole", "");
}
body.put("roles", buildRolesList());
if (associateWithProfile) {
body.put("associate", Boolean.TRUE);
@ -213,8 +222,12 @@ public class UserAccountsEditPage extends UserAccountsPage {
userAccount.setLastName(lastName);
userAccount.setExternalAuthId(externalAuthId);
userAccount
.setPermissionSetUris(Collections.singleton(selectedRoleUri));
if (isRootUser()) {
userAccount.setPermissionSetUris(Collections.<String> emptySet());
} else {
userAccount.setPermissionSetUris(Collections
.singleton(selectedRoleUri));
}
strategy.setAdditionalProperties(userAccount);