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:39:35 UTC
[isis] 02/02: ISIS-2777: extends
AbstractRoleAndPermissionsFixtureScript
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
commit aa851d468678ccebd970a41f4611f021ba094803
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Mon Jun 28 14:39:09 2021 +0100
ISIS-2777: extends AbstractRoleAndPermissionsFixtureScript
to allow values to be provided lazily
---
.../AbstractRoleAndPermissionsFixtureScript.java | 23 +++++++++++++++++-----
1 file changed, 18 insertions(+), 5 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 5a184eb..2d2e1b4 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
@@ -18,6 +18,8 @@
*/
package org.apache.isis.extensions.secman.applib.role.fixtures;
+import java.util.function.Supplier;
+
import javax.inject.Inject;
import org.apache.isis.applib.services.appfeat.ApplicationFeatureId;
@@ -41,14 +43,24 @@ public abstract class AbstractRoleAndPermissionsFixtureScript extends FixtureScr
@Inject private ApplicationRoleRepository applicationRoleRepository;
@Inject private ApplicationPermissionRepository applicationPermissionRepository;
- private final String roleName;
- private final String roleDescription;
+ private final Supplier<String> roleNameSupplier;
+ private final Supplier<String> roleDescriptionSupplier;
protected AbstractRoleAndPermissionsFixtureScript(
final String roleName,
final String roleDescriptionIfAny) {
- this.roleName = roleName;
- this.roleDescription = roleDescriptionIfAny;
+ this(() -> roleName, () -> roleDescriptionIfAny);
+ }
+
+ protected AbstractRoleAndPermissionsFixtureScript(
+ final Supplier<String> roleNameSupplier,
+ final Supplier<String> roleDescriptionSupplier) {
+ this.roleNameSupplier = nullSafe(roleNameSupplier);
+ this.roleDescriptionSupplier = nullSafe(roleDescriptionSupplier);
+ }
+
+ private static <T> Supplier<T> nullSafe(Supplier<T> supplier) {
+ return supplier != null ? supplier : () -> null;
}
/**
@@ -71,8 +83,9 @@ public abstract class AbstractRoleAndPermissionsFixtureScript extends FixtureScr
return;
}
+ val roleName = roleNameSupplier.get();
val securityRole = applicationRoleRepository.findByName(roleName)
- .orElseGet(() -> applicationRoleRepository.newRole(roleName, roleDescription));
+ .orElseGet(() -> applicationRoleRepository.newRole(roleName, roleDescriptionSupplier.get()));
for(val featureId : featureIds) {
val featureFqn = featureId.getFullyQualifiedName();