1

add cases for different roles and visibility

This commit is contained in:
kasch309
2020-03-13 16:07:12 +01:00
parent 68fcc06a17
commit 86622b4a0c
2 changed files with 20 additions and 18 deletions

View File

@ -3,13 +3,8 @@ package mops.gruppen2.controller;
import mops.gruppen2.config.Gruppen2Config;
import mops.gruppen2.domain.Exceptions.EventException;
import mops.gruppen2.domain.Group;
import mops.gruppen2.domain.GroupType;
import mops.gruppen2.domain.Role;
import mops.gruppen2.domain.User;
import mops.gruppen2.domain.Visibility;
import mops.gruppen2.domain.event.AddUserEvent;
import mops.gruppen2.domain.event.CreateGroupEvent;
import mops.gruppen2.domain.event.UpdateGroupDescriptionEvent;
import mops.gruppen2.domain.event.UpdateGroupTitleEvent;
import mops.gruppen2.security.Account;
import mops.gruppen2.service.*;
import org.keycloak.adapters.springsecurity.token.KeycloakAuthenticationToken;
@ -21,6 +16,7 @@ import org.springframework.web.bind.annotation.*;
import org.springframework.web.server.ResponseStatusException;
import javax.annotation.security.RolesAllowed;
import java.util.Set;
@Controller
@RequestMapping("/gruppen2")
@ -91,9 +87,13 @@ public class Gruppen2Controller {
public String showGroupDetails(KeycloakAuthenticationToken token, Model model, @RequestParam (value="id") Long id) throws EventException, ResponseStatusException {
model.addAttribute("account", keyCloakService.createAccountFromPrincipal(token));
Group group = userService.getGroupById(id);
Account account = keyCloakService.createAccountFromPrincipal (token);
User user = new User(account.getName(), account.getGivenname(), account.getFamilyname(), account.getEmail());
Role role = group.getRoles().get(user);
if(group!= null) {
model.addAttribute("group", group);
return "details";
model.addAttribute("role",role);
return "detailsMember";
}
throw new ResponseStatusException(HttpStatus.NOT_FOUND, "Group not found");
}

View File

@ -29,23 +29,25 @@
<form action="/" method="get">
<div style="border: 10px solid aliceblue; background: aliceblue">
<h1 style="color: dodgerblue; font-weight: bold" th:text="${group.getTitle()}"></h1>
<p style="font-weight: bold">
<a href="url" th:text></a>,
<a></a>
<!--
<p style="font-weight: bold" th:switch="${group.getVisibility()}">
<a th:case="${group.getVisibility().PRIVATE}">Private Gruppe</a>
<a th:case="${group.getVisibility().PUBLIC}">Öffentliche Gruppe</a>
</p>
<p th:text="${group.getDescription()}"></p>
<div class="form-group">
<div>
<button class="btn btn-primary" type="submit" style="background: #52a1eb; border-style: none">Beitreten</button>
<div th:switch="${role.name()}">
<div th:case="'ADMIN'">
<button class="btn btn-primary" type="warning">Gruppenmitglieder bearbeiten</button>
<button class="btn btn-primary" type="danger" style="background: #52a1eb; border-style: none">Gruppe verlassen</button>
</div>
<div>
<button type="button" class="btn btn-warning">Mitglieder bearbeiten</button>
</div>
<div>
<button type="button" class="btn btn-danger">Gruppe verlassen</button>
<div th:case="'MEMBER'">
<button class="btn btn-primary" type="danger" style="background: #52a1eb; border-style: none">Gruppe verlassen</button>
</div>
</div>
</div>
<-->
</div>
</form>
</div>
</main>