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/02/18 12:42:48 UTC
[isis] branch master updated: ISIS-2158: improved usability for
ApplicationUser
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 437f6fb ISIS-2158: improved usability for ApplicationUser
437f6fb is described below
commit 437f6fb87beeb52a6cb42ab4de787a46b02004b7
Author: Andi Huber <ah...@apache.org>
AuthorDate: Tue Feb 18 13:42:39 2020 +0100
ISIS-2158: improved usability for ApplicationUser
---
.../dom/role/ApplicationRole_removeUsers.java | 2 +-
.../model/dom/user/ApplicationUser_removeRole.java | 18 +++++------
...eRole.java => ApplicationUser_removeRoles.java} | 36 ++++++++++++----------
3 files changed, 28 insertions(+), 28 deletions(-)
diff --git a/extensions/security/secman/model/src/main/java/org/apache/isis/extensions/secman/model/dom/role/ApplicationRole_removeUsers.java b/extensions/security/secman/model/src/main/java/org/apache/isis/extensions/secman/model/dom/role/ApplicationRole_removeUsers.java
index b1241ee..5945629 100644
--- a/extensions/security/secman/model/src/main/java/org/apache/isis/extensions/secman/model/dom/role/ApplicationRole_removeUsers.java
+++ b/extensions/security/secman/model/src/main/java/org/apache/isis/extensions/secman/model/dom/role/ApplicationRole_removeUsers.java
@@ -59,7 +59,7 @@ public class ApplicationRole_removeUsers {
return holder;
}
- private boolean canRemove(ApplicationUser applicationUser) {
+ public boolean canRemove(ApplicationUser applicationUser) {
if(applicationUserRepository.isAdminUser(applicationUser)
&& applicationRoleRepository.isAdminRole(holder)) {
messageService.warnUser("Cannot remove admin user from the admin role.");
diff --git a/extensions/security/secman/model/src/main/java/org/apache/isis/extensions/secman/model/dom/user/ApplicationUser_removeRole.java b/extensions/security/secman/model/src/main/java/org/apache/isis/extensions/secman/model/dom/user/ApplicationUser_removeRole.java
index caebf84..ee2d78c 100644
--- a/extensions/security/secman/model/src/main/java/org/apache/isis/extensions/secman/model/dom/user/ApplicationUser_removeRole.java
+++ b/extensions/security/secman/model/src/main/java/org/apache/isis/extensions/secman/model/dom/user/ApplicationUser_removeRole.java
@@ -23,23 +23,21 @@ import java.util.Collection;
import javax.enterprise.inject.Model;
import javax.inject.Inject;
-import org.apache.isis.applib.annotation.Action;
-import org.apache.isis.applib.annotation.ActionLayout;
import org.apache.isis.extensions.secman.api.role.ApplicationRole;
import org.apache.isis.extensions.secman.api.role.ApplicationRoleRepository;
import org.apache.isis.extensions.secman.api.user.ApplicationUser;
-import org.apache.isis.extensions.secman.api.user.ApplicationUser.RemoveRoleDomainEvent;
import org.apache.isis.extensions.secman.api.user.ApplicationUserRepository;
import lombok.RequiredArgsConstructor;
-@Action(
- domainEvent = RemoveRoleDomainEvent.class,
- associateWith = "roles",
- associateWithSequence = "2")
-@ActionLayout(
- named="Remove"
- )
+//@Action(
+// domainEvent = RemoveRoleDomainEvent.class,
+// associateWith = "roles",
+// associateWithSequence = "2")
+//@ActionLayout(
+// named="Remove"
+// )
+@Deprecated
@RequiredArgsConstructor
public class ApplicationUser_removeRole {
diff --git a/extensions/security/secman/model/src/main/java/org/apache/isis/extensions/secman/model/dom/user/ApplicationUser_removeRole.java b/extensions/security/secman/model/src/main/java/org/apache/isis/extensions/secman/model/dom/user/ApplicationUser_removeRoles.java
similarity index 76%
copy from extensions/security/secman/model/src/main/java/org/apache/isis/extensions/secman/model/dom/user/ApplicationUser_removeRole.java
copy to extensions/security/secman/model/src/main/java/org/apache/isis/extensions/secman/model/dom/user/ApplicationUser_removeRoles.java
index caebf84..f28d041 100644
--- a/extensions/security/secman/model/src/main/java/org/apache/isis/extensions/secman/model/dom/user/ApplicationUser_removeRole.java
+++ b/extensions/security/secman/model/src/main/java/org/apache/isis/extensions/secman/model/dom/user/ApplicationUser_removeRoles.java
@@ -25,6 +25,8 @@ import javax.inject.Inject;
import org.apache.isis.applib.annotation.Action;
import org.apache.isis.applib.annotation.ActionLayout;
+import org.apache.isis.applib.services.message.MessageService;
+import org.apache.isis.core.commons.internal.base._NullSafe;
import org.apache.isis.extensions.secman.api.role.ApplicationRole;
import org.apache.isis.extensions.secman.api.role.ApplicationRoleRepository;
import org.apache.isis.extensions.secman.api.user.ApplicationUser;
@@ -41,37 +43,37 @@ import lombok.RequiredArgsConstructor;
named="Remove"
)
@RequiredArgsConstructor
-public class ApplicationUser_removeRole {
+public class ApplicationUser_removeRoles {
+ @Inject private MessageService messageService;
@Inject private ApplicationRoleRepository<? extends ApplicationRole> applicationRoleRepository;
@Inject private ApplicationUserRepository<? extends ApplicationUser> applicationUserRepository;
private final ApplicationUser holder;
+
@Model
- public ApplicationUser act(final ApplicationRole role) {
- applicationRoleRepository.removeRoleFromUser(role, holder);
+ public ApplicationUser act(Collection<ApplicationRole> roles) {
+
+ _NullSafe.stream(roles)
+ .filter(this::canRemove)
+ .forEach(role->applicationRoleRepository.removeRoleFromUser(role, holder));
+
return holder;
}
@Model
- public String disableAct() {
- return holder.getRoles().isEmpty()? "No roles to remove": null;
- }
-
- @Model
- public Collection<? extends ApplicationRole> choices0Act() {
- return applicationRoleRepository.getRoles(holder);
- }
-
- @Model
- // duplicated in ApplicationRole_removeUser mixin
- public String validateAct(
+ // same logic in ApplicationRole_removeUsers
+ public boolean canRemove(
final ApplicationRole applicationRole) {
+
if(applicationUserRepository.isAdminUser(holder)
&& applicationRoleRepository.isAdminRole(applicationRole)) {
- return "Cannot remove admin user from the admin role.";
+ messageService.warnUser("Cannot remove admin user from the admin role.");
+ return false;
}
- return null;
+ return true;
}
+
+
}