fix-search after leaving group
This commit is contained in:
@ -226,7 +226,9 @@ public class Gruppen2Controller {
|
|||||||
@PostMapping("/details/members/changeRole")
|
@PostMapping("/details/members/changeRole")
|
||||||
public String changeRole(KeycloakAuthenticationToken token, @RequestParam("group_id") Long groupId,
|
public String changeRole(KeycloakAuthenticationToken token, @RequestParam("group_id") Long groupId,
|
||||||
@RequestParam("user_id") String userId) throws EventException {
|
@RequestParam("user_id") String userId) throws EventException {
|
||||||
|
Account account = keyCloakService.createAccountFromPrincipal(token);
|
||||||
controllerService.updateRole(userId, groupId);
|
controllerService.updateRole(userId, groupId);
|
||||||
|
if(userId.equals(account.getName())) return "redirect:/gruppen2/details/" + groupId;
|
||||||
return "redirect:/gruppen2/details/members/" + groupId;
|
return "redirect:/gruppen2/details/members/" + groupId;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -3,14 +3,16 @@ package mops.gruppen2.domain;
|
|||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.EqualsAndHashCode;
|
import lombok.EqualsAndHashCode;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
@Getter
|
@Getter
|
||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
|
@NoArgsConstructor
|
||||||
@EqualsAndHashCode(exclude = {"givenname", "familyname", "email"})
|
@EqualsAndHashCode(exclude = {"givenname", "familyname", "email"})
|
||||||
public class User {
|
public class User {
|
||||||
|
|
||||||
private final String id;
|
private String id;
|
||||||
private final String givenname;
|
private String givenname;
|
||||||
private final String familyname;
|
private String familyname;
|
||||||
private final String email;
|
private String email;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,6 +1,7 @@
|
|||||||
package mops.gruppen2.service;
|
package mops.gruppen2.service;
|
||||||
|
|
||||||
import mops.gruppen2.domain.Group;
|
import mops.gruppen2.domain.Group;
|
||||||
|
import mops.gruppen2.domain.User;
|
||||||
import mops.gruppen2.domain.dto.EventDTO;
|
import mops.gruppen2.domain.dto.EventDTO;
|
||||||
import mops.gruppen2.domain.event.Event;
|
import mops.gruppen2.domain.event.Event;
|
||||||
import mops.gruppen2.domain.exception.EventException;
|
import mops.gruppen2.domain.exception.EventException;
|
||||||
@ -66,11 +67,11 @@ public class GroupService {
|
|||||||
return groups.get(groupId);
|
return groups.get(groupId);
|
||||||
}
|
}
|
||||||
|
|
||||||
private List<Long> removeUserGroups(List<Long> groupIds, List<Long> userGroups) {
|
private List<Group> removeUserGroups(List<Group> visibleGroups, List<Group> userGroups) {
|
||||||
for (Long groupId : userGroups) {
|
for (Group group : userGroups) {
|
||||||
groupIds.remove(groupId);
|
visibleGroups.remove(group);
|
||||||
}
|
}
|
||||||
return groupIds;
|
return visibleGroups;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -81,10 +82,18 @@ public class GroupService {
|
|||||||
* @throws EventException Projektionsfehler
|
* @throws EventException Projektionsfehler
|
||||||
*/
|
*/
|
||||||
public List<Group> getAllGroupWithVisibilityPublic(String userId) throws EventException {
|
public List<Group> getAllGroupWithVisibilityPublic(String userId) throws EventException {
|
||||||
List<Long> groupIds = removeUserGroups(eventRepository.findGroup_idsWhereVisibility(Boolean.TRUE), eventRepository.findGroup_idsWhereUser_id(userId));
|
User user = new User(userId,null, null, null);
|
||||||
List<EventDTO> eventDTOS = eventRepository.findAllEventsOfGroups(groupIds);
|
List<Event> eventsVisible = eventService.translateEventDTOs(eventRepository.findAllEventsOfGroups(eventRepository.findGroup_idsWhereVisibility(Boolean.TRUE)));
|
||||||
List<Event> events = eventService.translateEventDTOs(eventDTOS);
|
List<Group> visibleGroups = projectEventList(eventsVisible);
|
||||||
return projectEventList(events);
|
List<Event> eventsUser = getGroupEvents(eventRepository.findGroup_idsWhereUser_id(userId));
|
||||||
|
List<Group> groups = projectEventList(eventsUser);
|
||||||
|
List<Group> newGroups = new ArrayList<>();
|
||||||
|
for (Group group : groups) {
|
||||||
|
if (group.getMembers().contains(user)) {
|
||||||
|
newGroups.add(group);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return removeUserGroups(visibleGroups, newGroups);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -84,7 +84,7 @@
|
|||||||
type="hidden">
|
type="hidden">
|
||||||
<input th:name="user_id" th:value="${member.getId()}"
|
<input th:name="user_id" th:value="${member.getId()}"
|
||||||
type="hidden">
|
type="hidden">
|
||||||
<button class="btn btn-warning btn-sm" type="submit">Rolle
|
<button class="btn btn-warning btn-sm" type="submit">Rolle
|
||||||
ändern
|
ändern
|
||||||
</button><!-- th:if -->
|
</button><!-- th:if -->
|
||||||
</form>
|
</form>
|
||||||
@ -93,7 +93,7 @@
|
|||||||
type="hidden">
|
type="hidden">
|
||||||
<input th:name="user_id" th:value="${member.getId()}"
|
<input th:name="user_id" th:value="${member.getId()}"
|
||||||
type="hidden">
|
type="hidden">
|
||||||
<button class="btn btn-danger btn-sm">Mitglied entfernen
|
<button th:if='${member.getId() != account.getName()}' class="btn btn-danger btn-sm">Mitglied entfernen
|
||||||
</button>
|
</button>
|
||||||
</form>
|
</form>
|
||||||
</td>
|
</td>
|
||||||
|
|||||||
Reference in New Issue
Block a user