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