You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by da...@apache.org on 2021/06/28 13:45:59 UTC
[isis] branch ISIS-2777 updated: ISIS-2777: expose the values to
subclasses
This is an automated email from the ASF dual-hosted git repository.
danhaywood pushed a commit to branch ISIS-2777
in repository https://gitbox.apache.org/repos/asf/isis.git
The following commit(s) were added to refs/heads/ISIS-2777 by this push:
new 830e329 ISIS-2777: expose the values to subclasses
830e329 is described below
commit 830e3297b5a794eba06514ed0c0cc3e6e76968aa
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Mon Jun 28 14:45:42 2021 +0100
ISIS-2777: expose the values to subclasses
---
.../AbstractRoleAndPermissionsFixtureScript.java | 16 ++++++--
.../AbstractUserAndRolesFixtureScript.java | 43 +++++++++++++++++-----
2 files changed, 46 insertions(+), 13 deletions(-)
diff --git a/extensions/security/secman/applib/src/main/java/org/apache/isis/extensions/secman/applib/role/fixtures/AbstractRoleAndPermissionsFixtureScript.java b/extensions/security/secman/applib/src/main/java/org/apache/isis/extensions/secman/applib/role/fixtures/AbstractRoleAndPermissionsFixtureScript.java
index 2d2e1b4..b2c5991 100644
--- a/extensions/security/secman/applib/src/main/java/org/apache/isis/extensions/secman/applib/role/fixtures/AbstractRoleAndPermissionsFixtureScript.java
+++ b/extensions/security/secman/applib/src/main/java/org/apache/isis/extensions/secman/applib/role/fixtures/AbstractRoleAndPermissionsFixtureScript.java
@@ -59,8 +59,12 @@ public abstract class AbstractRoleAndPermissionsFixtureScript extends FixtureScr
this.roleDescriptionSupplier = nullSafe(roleDescriptionSupplier);
}
- private static <T> Supplier<T> nullSafe(Supplier<T> supplier) {
- return supplier != null ? supplier : () -> null;
+ protected final String getRoleName() {
+ return roleNameSupplier.get();
+ }
+
+ protected final String getRoleDescription() {
+ return roleDescriptionSupplier.get();
}
/**
@@ -83,9 +87,9 @@ public abstract class AbstractRoleAndPermissionsFixtureScript extends FixtureScr
return;
}
- val roleName = roleNameSupplier.get();
+ val roleName = getRoleName();
val securityRole = applicationRoleRepository.findByName(roleName)
- .orElseGet(() -> applicationRoleRepository.newRole(roleName, roleDescriptionSupplier.get()));
+ .orElseGet(() -> applicationRoleRepository.newRole(roleName, getRoleDescription()));
for(val featureId : featureIds) {
val featureFqn = featureId.getFullyQualifiedName();
@@ -102,4 +106,8 @@ public abstract class AbstractRoleAndPermissionsFixtureScript extends FixtureScr
}
}
+ private static <T> Supplier<T> nullSafe(Supplier<T> supplier) {
+ return supplier != null ? supplier : () -> null;
+ }
+
}
diff --git a/extensions/security/secman/applib/src/main/java/org/apache/isis/extensions/secman/applib/user/fixtures/AbstractUserAndRolesFixtureScript.java b/extensions/security/secman/applib/src/main/java/org/apache/isis/extensions/secman/applib/user/fixtures/AbstractUserAndRolesFixtureScript.java
index 835a9b1..75f73ca 100644
--- a/extensions/security/secman/applib/src/main/java/org/apache/isis/extensions/secman/applib/user/fixtures/AbstractUserAndRolesFixtureScript.java
+++ b/extensions/security/secman/applib/src/main/java/org/apache/isis/extensions/secman/applib/user/fixtures/AbstractUserAndRolesFixtureScript.java
@@ -101,40 +101,61 @@ public abstract class AbstractUserAndRolesFixtureScript extends FixtureScript {
this.roleNamesSupplier = nullSafe(roleNamesSupplier);
}
- private static <T> Supplier<T> nullSafe(Supplier<T> supplier) {
- return supplier != null ? supplier : () -> null;
+ protected final String getUsername() {
+ return usernameSupplier.get();
}
+ protected String getPassword() {
+ return passwordSupplier.get();
+ }
+
+ protected final String getEmailAddress() {
+ return emailAddressSupplier.get();
+ }
+
+ protected final String getTenancyPath() {
+ return tenancyPathSupplier.get();
+ }
+
+ protected final AccountType getAccountType() {
+ return accountTypeSupplier.get();
+ }
+
+ protected final Can<String> getRoleNames() {
+ return roleNamesSupplier.get();
+ }
+
+
@Override
protected void execute(final ExecutionContext executionContext) {
// create user if does not exist, and assign to the role
- val username = usernameSupplier.get();
+ val username = getUsername();
applicationUser = applicationUserRepository.findByUsername(username)
.orElse(null);
if(applicationUser == null) {
- switch (accountTypeSupplier.get()) {
+ switch (getAccountType()) {
case DELEGATED:
applicationUser = applicationUserRepository
.newDelegateUser(username, ApplicationUserStatus.UNLOCKED);
break;
case LOCAL:
- final Password pwd = new Password(passwordSupplier.get());
+ final Password pwd = new Password(getPassword());
applicationUser = applicationUserRepository
.newLocalUser(username, pwd, ApplicationUserStatus.UNLOCKED);
- applicationUser.setEmailAddress(emailAddressSupplier.get());
+ applicationUser.setEmailAddress(getEmailAddress());
}
if(applicationUser == null) {
- throw _Exceptions.unrecoverableFormatted("failed to create user '%s'", usernameSupplier);
+ throw _Exceptions.unrecoverableFormatted("failed to create user '%s'", username);
}
// update tenancy (repository checks for null)
- applicationUser.setAtPath(tenancyPathSupplier.get());
+ applicationUser.setAtPath(getTenancyPath());
}
- for (final String roleName : roleNamesSupplier.get()) {
+ for (final String roleName : getRoleNames()) {
applicationRoleRepository.findByName(roleName)
.map(securityRole->{
applicationRoleRepository.addRoleToUser(securityRole, applicationUser);
@@ -145,4 +166,8 @@ public abstract class AbstractUserAndRolesFixtureScript extends FixtureScript {
}
+ private static <T> Supplier<T> nullSafe(Supplier<T> supplier) {
+ return supplier != null ? supplier : () -> null;
+ }
+
}