Groups overview

ccm-docs
Jens Pelzetter 2020-10-06 09:10:50 +02:00
parent d84245684f
commit 14a1a2eb05
4 changed files with 138 additions and 4 deletions

View File

@ -20,10 +20,16 @@ package org.libreccm.ui.admin.usersgroupsroles;
import org.libreccm.core.CoreConstants; import org.libreccm.core.CoreConstants;
import org.libreccm.security.AuthorizationRequired; import org.libreccm.security.AuthorizationRequired;
import org.libreccm.security.Group;
import org.libreccm.security.GroupRepository;
import org.libreccm.security.RequiresPrivilege; import org.libreccm.security.RequiresPrivilege;
import java.util.List;
import javax.enterprise.context.RequestScoped; import javax.enterprise.context.RequestScoped;
import javax.inject.Inject;
import javax.mvc.Controller; import javax.mvc.Controller;
import javax.mvc.Models;
import javax.ws.rs.GET; import javax.ws.rs.GET;
import javax.ws.rs.Path; import javax.ws.rs.Path;
@ -33,14 +39,23 @@ import javax.ws.rs.Path;
*/ */
@RequestScoped @RequestScoped
@Controller @Controller
@Path("/users-groups-roles/group") @Path("/users-groups-roles/groups")
public class GroupsController { public class GroupsController {
@Inject
private GroupRepository groupRepository;
@Inject
private Models models;
@GET @GET
@Path("/") @Path("/")
@AuthorizationRequired @AuthorizationRequired
@RequiresPrivilege(CoreConstants.PRIVILEGE_ADMIN) @RequiresPrivilege(CoreConstants.PRIVILEGE_ADMIN)
public String getGroups() { public String getGroups() {
final List<Group> groups = groupRepository.findAll();
models.put("groups", groups);
return "org/libreccm/ui/admin/users-groups-roles/groups.xhtml"; return "org/libreccm/ui/admin/users-groups-roles/groups.xhtml";
} }

View File

@ -1,8 +1,9 @@
<!DOCTYPE html> <!DOCTYPE html [<!ENTITY times '&#215;'>]>
<html xmlns="http://www.w3.org/1999/xhtml" <html xmlns="http://www.w3.org/1999/xhtml"
xmlns:c="http://xmlns.jcp.org/jsp/jstl/core" xmlns:c="http://xmlns.jcp.org/jsp/jstl/core"
xmlns:h="http://xmlns.jcp.org/jsf/html" xmlns:h="http://xmlns.jcp.org/jsf/html"
xmlns:ui="http://xmlns.jcp.org/jsf/facelets"> xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
xmlns:xlink="http://www.w3.org/1999/xlink">
<ui:composition template="/WEB-INF/views/org/libreccm/ui/admin/users-groups-roles.xhtml"> <ui:composition template="/WEB-INF/views/org/libreccm/ui/admin/users-groups-roles.xhtml">
<ui:param name="activePage" value="usersgroupsroles" /> <ui:param name="activePage" value="usersgroupsroles" />
<ui:param name="activePanel" value="groups" /> <ui:param name="activePanel" value="groups" />
@ -21,7 +22,107 @@
</ui:define> </ui:define>
<ui:define name="panel"> <ui:define name="panel">
<p>Groups placeholder</p> <div class="row mb-2">
<div class="col-sm-9">
</div>
<div class="col-sm-3 text-right">
<a class="btn btn-secondary"
href="#">
<svg class="bi"
width="1em"
height="1em"
fill="currentColor">
<use xlink:href="#{request.contextPath}/assets/bootstrap/bootstrap-icons.svg#plus-circle" />
</svg>
<span>#{AdminMessages['usersgroupsroles.groups.add']}</span>
</a>
</div>
</div>
<table class="table table-hover groups-table">
<thead class="thead-light">
<tr>
<th>#{AdminMessages['usersgroupsroles.groups.table.headers.groupname']}</th>
<th class="text-center" colspan="2">#{AdminMessages['usersgroupsroles.groups.table.headers.actions']}</th>
</tr>
<tbody>
<c:forEach items="#{groups}"
var="group">
<tr>
<td>#{group.name}</td>
<td class="text-center action-col">
<a class="btn btn-info"
href="#">
<svg class="bi"
width="1em"
height="1em"
fill="currentColor">
<use xlink:href="#{request.contextPath}/assets/bootstrap/bootstrap-icons.svg#eye" />
</svg>
<span>
#{AdminMessages['usersgroupsroles.groups.detailslink.label']}
</span>
</a>
</td>
<td class="text-center action-col">
<button class="btn btn-danger"
data-toggle="modal"
data-target="#confirm-delete-#{group.name}"
href="#">
<svg class="bi"
width="1em"
height="1em"
fill="currentColor">
<use xlink:href="#{request.contextPath}/assets/bootstrap/bootstrap-icons.svg#x-circle" />
</svg>
<span>
#{AdminMessages['usersgroupsroles.groups.delete.button.label']}
</span>
</button>
<div class="modal"
id="confirm-delete-#{group.name}"
tabindex="-1">
<div class="modal-dialog">
<form action="#"
class="modal-content"
method="post">
<div class="modal-header">
<h3 class="modal-title">
#{AdminMessages['usersgroupsroles.groups.delete.confirm.title']}
</h3>
<button aria-label="#{AdminMessages['usersgroupsroles.groups.delete.confirm.cancel']}"
class="close"
data-dismiss="modal"
type="button">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body">
#{AdminMessages.getMessage('usersgroupsroles.groups.delete.confirm.message', [group.name])}
<input name="confirmed"
type="hidden"
value="true" />
</div>
<div class="modal-footer">
<button class="btn btn-secondary"
data-dismiss="modal"
type="button">
#{AdminMessages['usersgroupsroles.groups.delete.confirm.cancel']}
</button>
<button class="btn btn-danger"
type="submit">
#{AdminMessages['usersgroupsroles.groups.delete.confirm.yes']}
</button>
</div>
</form>
</div>
</div>
</td>
</tr>
</c:forEach>
</tbody>
</thead>
</table>
</ui:define> </ui:define>
</ui:composition> </ui:composition>
</html> </html>

View File

@ -129,3 +129,12 @@ usersgroupsroles.users.user_details.roles.dialog.close=Cancel
usersgroupsroles.users.user_details.groups.dialog.save=Save usersgroupsroles.users.user_details.groups.dialog.save=Save
usergroupsroles.users.user_details.family_name=Family Name usergroupsroles.users.user_details.family_name=Family Name
usergroupsroles.users.user_details.email_addresses.errors.address_empty=Address can't be empty usergroupsroles.users.user_details.email_addresses.errors.address_empty=Address can't be empty
usersgroupsroles.groups.table.headers.groupname=Group
usersgroupsroles.groups.table.headers.actions=Actions
usersgroupsroles.groups.detailslink.label=Details
usersgroupsroles.groups.delete.button.label=Delete
usersgroupsroles.groups.delete.confirm.title=Delete group
usersgroupsroles.groups.delete.confirm.cancel=Cancel
usersgroupsroles.groups.delete.confirm.yes=Delete Group
usersgroupsroles.groups.delete.confirm.message=Are you sure to delete group {0}?
usersgroupsroles.groups.add=Add group

View File

@ -129,3 +129,12 @@ usersgroupsroles.users.user_details.roles.dialog.close=Abbrechen
usersgroupsroles.users.user_details.groups.dialog.save=Anwenden usersgroupsroles.users.user_details.groups.dialog.save=Anwenden
usergroupsroles.users.user_details.family_name=Familienname usergroupsroles.users.user_details.family_name=Familienname
usergroupsroles.users.user_details.email_addresses.errors.address_empty=Die Addresse kann nicht leer sein usergroupsroles.users.user_details.email_addresses.errors.address_empty=Die Addresse kann nicht leer sein
usersgroupsroles.groups.table.headers.groupname=Gruppe
usersgroupsroles.groups.table.headers.actions=Aktionen
usersgroupsroles.groups.detailslink.label=Details
usersgroupsroles.groups.delete.button.label=L\u00f6schen
usersgroupsroles.groups.delete.confirm.title=Gruppe l\u00f6schen
usersgroupsroles.groups.delete.confirm.cancel=Abbrechen
usersgroupsroles.groups.delete.confirm.yes=Gruppe l\u00f6schen
usersgroupsroles.groups.delete.confirm.message=Sind Sie sicher, dass Sie die Gruppe {0} l\u00f6schen wollen?
usersgroupsroles.groups.add=Gruppe hinzuf\u00fcgen