1

fix path redirecting

This commit is contained in:
killerber4t
2020-03-18 16:16:27 +01:00
parent 9aa7122779
commit dac0b28efb
5 changed files with 42 additions and 19 deletions

View File

@ -104,8 +104,8 @@ public class Gruppen2Controller {
}
@RolesAllowed({"ROLE_orga", "ROLE_studentin", "ROLE_actuator)"})
@GetMapping("/details")
public String showGroupDetails(KeycloakAuthenticationToken token, Model model, @RequestParam (value="id") Long id) throws EventException, ResponseStatusException {
@GetMapping("/details/{id}")
public String showGroupDetails(KeycloakAuthenticationToken token, Model model, @PathVariable (value="id") Long id) throws EventException, ResponseStatusException {
model.addAttribute("account", keyCloakService.createAccountFromPrincipal(token));
Group group = userService.getGroupById(id);
Account account = keyCloakService.createAccountFromPrincipal (token);
@ -154,13 +154,14 @@ public class Gruppen2Controller {
}
@RolesAllowed({"ROLE_orga", "ROLE_studentin", "ROLE_actuator)"})
@GetMapping("/details/members")
public String editMembers(Model model, KeycloakAuthenticationToken token, @RequestParam (value="group_id") Long id) throws EventException {
@GetMapping("/details/members/{id}")
public String editMembers(Model model, KeycloakAuthenticationToken token, @PathVariable (value="id") Long id) throws EventException {
Account account = keyCloakService.createAccountFromPrincipal(token);
Group group = userService.getGroupById(id);
if(group.getRoles().get(account.getName()) == Role.ADMIN) {
model.addAttribute("members", group.getMembers());
model.addAttribute("group", group);
model.addAttribute("admin", Role.ADMIN);
return "editMembers";
} else {
return "redirect:/details/";
@ -168,11 +169,17 @@ public class Gruppen2Controller {
}
@RolesAllowed({"ROLE_orga", "ROLE_studentin", "ROLE_actuator)"})
@PostMapping("/changeRole")
public String changeRole(KeycloakAuthenticationToken token, @RequestParam (value = "group_id") Long id,
@RequestParam (value = "user") User user) throws EventException {
controllerService.updateRole(user, id);
return "redirect:/details/members/";
@PostMapping("/details/members/changeRole")
public String changeRole(KeycloakAuthenticationToken token, @RequestParam (value = "group_id") Long group_id,
@RequestParam (value = "user_id") String user_id) throws EventException {
controllerService.updateRole(user_id, group_id);
return "redirect:/gruppen2/details/members/" + group_id;
}
@RolesAllowed({"ROLE_orga", "ROLE_studentin", "ROLE_actuator)"})
@PostMapping("/details/members/deleteUser")
public String deleteUser(KeycloakAuthenticationToken token,@RequestParam (value = "group_id") Long group_id,
@RequestParam (value = "user_id") String user_id) {
return null;
}
}

View File

@ -43,7 +43,7 @@ public class ControllerService {
addUser(account, group_id);
updateTitle(account, group_id, title);
updateDescription(account, group_id, description);
updateRole(user, group_id);
updateRole(user.getUser_id(), group_id);
}
public void addUser(Account account, Long group_id){
@ -61,9 +61,14 @@ public class ControllerService {
eventService.saveEvent(updateGroupDescriptionEvent);
}
public void updateRole(User user, Long group_id) throws EventException {
public void updateRole(String user_id, Long group_id) throws EventException {
UpdateRoleEvent updateRoleEvent;
Group group = userService.getGroupById(group_id);
User user = null;
for (User member : group.getMembers()) {
if(member.getUser_id().equals(user_id)) user = member;
}
assert user != null;
if(group.getRoles().get(user.getUser_id()) == Role.ADMIN) {
updateRoleEvent = new UpdateRoleEvent(group_id, user.getUser_id(), Role.MEMBER);
} else {

View File

@ -53,8 +53,10 @@
<div style="display: inline-block; margin: 0">
<h2>Mitglieder</h2>
<div th:if='${group.getRoles().get(user.getUser_id()) == admin}'>
<form method="get" action="/gruppen2/details/members">
<button th:name="group_id" th:value="${group.getId()}" class="btn btn-secondary" type="submit" style="background: slategrey; float: right" >Mitglieder bearbeiten</button>
<form method="get" th:action="@{/gruppen2/details/members/{id}(id=${group.getId()})}">
<button class="btn btn-secondary" style="background: slategrey; float: right" >
Mitglieder bearbeiten
</button>
</form>
</div>
<br>

View File

@ -38,15 +38,24 @@
</tr>
</thead>
<tbody class="table-striped">
<tr th:each="member : ${group.getMembers()}">
<th th:text="${member.getUser_id()}"></th>
<td>
<span th:if='${group.getRoles().get(member.getUser_id()) == admin}'>Mitglied</span>
<span th:if='${group.getRoles().get(member.getUser_id()) != admin}'>Admin</span>
<span th:if='${group.getRoles().get(member.getUser_id()) != admin}'>Mitglied</span>
<span th:if='${group.getRoles().get(member.getUser_id()) == admin}'>Admin</span>
</td>
<td>
<button class="btn btn-warning btn-sm">Rolle ändern</button> <!-- th:if -->
<form method="post" action="/gruppen2/details/members/changeRole">
<input type="hidden" th:name="group_id" th:value="${group.getId()}">
<input type="hidden" th:name="user_id" th:value="${member.getUser_id()}">
<button type="submit" class="btn btn-warning btn-sm">Rolle ändern</button><!-- th:if -->
</form>
<form method="post" action="/gruppen2/details/members/changeRole">
<input type="hidden" th:name="group_id" th:value="${group.getId()}"></input>
<input type="hidden" th:name="user_id" th:value="${member.getUser_id()}"></input>
<button class="btn btn-danger btn-sm">Mitglied entfernen</button>
</form>
</td>
</tr>
</tbody>

View File

@ -41,7 +41,7 @@
<div class="shadow-sm p-4" style="border: none; background: aliceblue">
<h3 style="color: dodgerblue; font-weight: bold;">
<a th:href="@{/gruppen2/details(id=${gruppe.getId()})}" th:text="${gruppe.getTitle()}"></a>
<a th:href="@{/gruppen2/details/{id}(id=${gruppe.getId()})}" th:text="${gruppe.getTitle()}"></a>
</h3>
<p style="overflow-wrap: break-word" th:text="${#strings.abbreviate(gruppe.getDescription(),300)}"></p>
</div>