From 39cd08bb28bf5e26d584970e62509e1778316d68 Mon Sep 17 00:00:00 2001 From: Jens Pelzetter Date: Tue, 20 Oct 2020 20:21:28 +0200 Subject: [PATCH] Groups management UI --- .../usersgroupsroles/GroupFormController.java | 41 +++++++++++++++++++ .../usersgroupsroles/UserFormController.java | 15 +++---- .../UsersGroupsRolesPage.java | 1 + .../users-groups-roles/group-details.xhtml | 28 ++++++------- .../admin/users-groups-roles/group-form.xhtml | 12 +++--- .../ui/admin/users-groups-roles/groups.xhtml | 4 +- .../users-groups-roles/user-details.xhtml | 2 +- .../org/libreccm/ui/AdminBundle.properties | 3 ++ .../org/libreccm/ui/AdminBundle_de.properties | 3 ++ 9 files changed, 76 insertions(+), 33 deletions(-) diff --git a/ccm-core/src/main/java/org/libreccm/ui/admin/usersgroupsroles/GroupFormController.java b/ccm-core/src/main/java/org/libreccm/ui/admin/usersgroupsroles/GroupFormController.java index 5318a5c85..82bcb4c3c 100644 --- a/ccm-core/src/main/java/org/libreccm/ui/admin/usersgroupsroles/GroupFormController.java +++ b/ccm-core/src/main/java/org/libreccm/ui/admin/usersgroupsroles/GroupFormController.java @@ -29,6 +29,8 @@ import org.libreccm.security.RequiresPrivilege; import org.libreccm.ui.admin.AdminMessages; import java.util.Arrays; +import java.util.HashMap; +import java.util.Map; import java.util.Optional; import javax.enterprise.context.RequestScoped; @@ -146,4 +148,43 @@ public class GroupFormController { } } + @POST + @Path("{groupIdentifier}/groups") + @AuthorizationRequired + @RequiresPrivilege(CoreConstants.PRIVILEGE_ADMIN) + @Transactional(Transactional.TxType.REQUIRED) + public String updateGroupMemberships( + @PathParam("groupIdentifier") final String groupIdentifierParam, + @FormParam("groupMembers") final String[] groupMembers + ) { + final Map params = new HashMap<>(); + params.put("groupIdentifier", groupIdentifierParam); + return String.format( + "redirect:", + mvc.uri( + "GroupsController#getGroupDetails", + params + ) + ); + } + + @POST + @Path("{groupIdentifier}/roles") + @AuthorizationRequired + @RequiresPrivilege(CoreConstants.PRIVILEGE_ADMIN) + @Transactional(Transactional.TxType.REQUIRED) + public String updateRoleMemberships( + @PathParam("groupIdentifier") final String groupIdentifierParam, + @FormParam("groupRoles") final String[] groupRoles + ) { + // ToDo + return String.format( + "redirect:%s", + mvc.uri( + "UsersController#getUserDetails", + Map.of("userIdentifier", groupIdentifierParam) + ) + ); + } + } diff --git a/ccm-core/src/main/java/org/libreccm/ui/admin/usersgroupsroles/UserFormController.java b/ccm-core/src/main/java/org/libreccm/ui/admin/usersgroupsroles/UserFormController.java index 41b9a2fdc..3627235da 100644 --- a/ccm-core/src/main/java/org/libreccm/ui/admin/usersgroupsroles/UserFormController.java +++ b/ccm-core/src/main/java/org/libreccm/ui/admin/usersgroupsroles/UserFormController.java @@ -29,6 +29,7 @@ import org.libreccm.security.UserRepository; import org.libreccm.ui.admin.AdminMessages; import java.util.Arrays; +import java.util.Map; import java.util.Objects; import java.util.Optional; @@ -221,11 +222,8 @@ public class UserFormController { return String.format( "redirect:%s", mvc.uri( - String.format( - "UsersController#getUserDetails", - "{userIdentifier: %s}", - userIdentifierParam - ) + "UsersController#getUserDetails", + Map.of("userIdentifier", userIdentifierParam) ) ); } @@ -243,11 +241,8 @@ public class UserFormController { return String.format( "redirect:%s", mvc.uri( - String.format( - "UsersController#getUserDetails", - "{userIdentifier: %s}", - userIdentifierParam - ) + "UsersController#getUserDetails", + Map.of("userIdentifier", userIdentifierParam) ) ); } diff --git a/ccm-core/src/main/java/org/libreccm/ui/admin/usersgroupsroles/UsersGroupsRolesPage.java b/ccm-core/src/main/java/org/libreccm/ui/admin/usersgroupsroles/UsersGroupsRolesPage.java index 7585eac63..812f9b4cb 100644 --- a/ccm-core/src/main/java/org/libreccm/ui/admin/usersgroupsroles/UsersGroupsRolesPage.java +++ b/ccm-core/src/main/java/org/libreccm/ui/admin/usersgroupsroles/UsersGroupsRolesPage.java @@ -38,6 +38,7 @@ public class UsersGroupsRolesPage implements AdminPage { final Set> classes = new HashSet<>(); classes.add(UsersGroupsRolesController.class); classes.add(GroupsController.class); + classes.add(GroupFormController.class); classes.add(RolesController.class); classes.add(UsersController.class); classes.add(UserFormController.class); diff --git a/ccm-core/src/main/resources/WEB-INF/views/org/libreccm/ui/admin/users-groups-roles/group-details.xhtml b/ccm-core/src/main/resources/WEB-INF/views/org/libreccm/ui/admin/users-groups-roles/group-details.xhtml index 64026c3b0..a2c489c5b 100644 --- a/ccm-core/src/main/resources/WEB-INF/views/org/libreccm/ui/admin/users-groups-roles/group-details.xhtml +++ b/ccm-core/src/main/resources/WEB-INF/views/org/libreccm/ui/admin/users-groups-roles/group-details.xhtml @@ -6,9 +6,9 @@ xmlns:xlink="http://www.w3.org/1999/xlink"> - + + value="#{AdminMessages.getMessage('usersgroupsroles.groups.group_details.title', [GroupDetailsModel.groupName])}" />
-
#{AdminMessages['usersgroupsroles.groups.group_details.id']}
+
#{AdminMessages['usersgroupsroles.groups.group_details.groupId']}
#{GroupDetailsModel.groupId}
@@ -37,12 +37,12 @@
#{GroupDetailsModel.uuid}
-
#{AdminMessages['usersgroupsroles.groups.group_details.name']}
-
#{GroupDetailsModel.name}
+
#{AdminMessages['usersgroupsroles.groups.group_details.groupName']}
+
#{GroupDetailsModel.groupName}
+ href="#{mvc.uri('GroupsController#editGroup', {'groupIdentifier': GroupDetailsModel.groupName })}"> -
+

#{AdminMessages['usersgroupsroles.groups.group_details.members.heading']}

@@ -77,7 +77,7 @@ id="group-members-dialog" tabindex="-1">