You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by ah...@apache.org on 2020/01/27 12:37:19 UTC

[isis] branch master updated: ISIS-2158: UserServiceDefault: simplify

This is an automated email from the ASF dual-hosted git repository.

ahuber pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/isis.git


The following commit(s) were added to refs/heads/master by this push:
     new c952483  ISIS-2158: UserServiceDefault: simplify
c952483 is described below

commit c95248313cb46bdc599baf0f685b0ef52135711a
Author: Andi Huber <ah...@apache.org>
AuthorDate: Mon Jan 27 13:37:06 2020 +0100

    ISIS-2158: UserServiceDefault: simplify
---
 .../services/user/UserServiceDefault.java          | 28 ++++++----------------
 1 file changed, 7 insertions(+), 21 deletions(-)

diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/user/UserServiceDefault.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/user/UserServiceDefault.java
index 842a8e4..2560275 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/user/UserServiceDefault.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/user/UserServiceDefault.java
@@ -40,6 +40,7 @@ import org.apache.isis.applib.services.user.UserService;
 import org.apache.isis.core.commons.collections.Can;
 import org.apache.isis.core.security.authentication.AuthenticationSessionProvider;
 
+import lombok.Value;
 import lombok.val;
 
 @Service
@@ -61,7 +62,7 @@ public class UserServiceDefault implements UserService {
         
         @Override
         public void runAs(final String username, final List<String> roles) {
-            userServiceDefault.overrideUserAndRoles(username, roles);
+            userServiceDefault.overrideUserAndRoles(username, Can.ofCollection(roles));
         }
 
         @Override
@@ -103,29 +104,14 @@ public class UserServiceDefault implements UserService {
         }
     }
 
+
+    @Value
     public static class UserAndRoleOverrides {
         final String user;
         final Can<String> roles;
-
-
-        UserAndRoleOverrides(final String user) {
-            this(user, null);
-        }
-
-        UserAndRoleOverrides(final String user, final Iterable<String> roles) {
-            this.user = user;
-            this.roles = Can.ofIterable(roles);
-        }
-
-        public String getUser() {
-            return user;
-        }
-
-        public Can<String> getRoles() {
-            return roles;
-        }
     }
 
+
     /**
      * Not API; for use by the implementation of sudo/runAs (see {@link SudoService} etc.
      */
@@ -164,8 +150,8 @@ public class UserServiceDefault implements UserService {
     
     private final ThreadLocal<Stack<UserAndRoleOverrides>> overrides = ThreadLocal.withInitial(Stack::new);
 
-    private void overrideUserAndRoles(final String user, final List<String> rolesIfAny) {
-        final Iterable<String> roles = rolesIfAny != null ? rolesIfAny : inheritRoles();
+    private void overrideUserAndRoles(final String user, final Can<String> rolesIfAny) {
+        val roles = rolesIfAny.isNotEmpty() ? rolesIfAny : inheritRoles();
         this.overrides.get().push(new UserAndRoleOverrides(user, roles));
     }