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;
+    }
+
 }