Skip to content

Commit

Permalink
[backend/frontend] Rollbacks players Api (#1656)
Browse files Browse the repository at this point in the history
  • Loading branch information
RomuDeuxfois authored Oct 17, 2024
1 parent 0461d7c commit 7e2ac6c
Showing 1 changed file with 23 additions and 4 deletions.
27 changes: 23 additions & 4 deletions openbas-api/src/main/java/io/openbas/rest/user/PlayerApi.java
Original file line number Diff line number Diff line change
@@ -1,11 +1,10 @@
package io.openbas.rest.user;

import io.openbas.aop.LogExecutionTime;
import io.openbas.config.OpenBASPrincipal;
import io.openbas.config.SessionManager;
import io.openbas.database.model.Communication;
import io.openbas.database.model.Tag;
import io.openbas.database.model.Team;
import io.openbas.database.model.User;
import io.openbas.database.model.*;
import io.openbas.database.raw.RawPlayer;
import io.openbas.database.repository.*;
import io.openbas.rest.exception.ElementNotFoundException;
import io.openbas.rest.helper.RestBehavior;
Expand All @@ -22,6 +21,7 @@
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.*;

import java.util.List;
import java.util.Optional;
import java.util.stream.Stream;

Expand All @@ -48,6 +48,25 @@ public class PlayerApi extends RestBehavior {
private final TeamRepository teamRepository;
private final PlayerService playerService;

@GetMapping(PLAYER_URI)
@Transactional(rollbackOn = Exception.class)
@PreAuthorize("isObserver()")
public Iterable<RawPlayer> players() {
List<RawPlayer> players;
OpenBASPrincipal currentUser = currentUser();
if (currentUser.isAdmin()) {
players = fromIterable(userRepository.rawAllPlayers());
} else {
User local = userRepository.findById(currentUser.getId()).orElseThrow(ElementNotFoundException::new);
List<String> organizationIds = local.getGroups().stream()
.flatMap(group -> group.getOrganizations().stream())
.map(Organization::getId)
.toList();
players = userRepository.rawPlayersAccessibleFromOrganizations(organizationIds);
}
return players;
}

@LogExecutionTime
@PostMapping(PLAYER_URI + "/search")
public Page<PlayerOutput> players(@RequestBody @Valid SearchPaginationInput searchPaginationInput) {
Expand Down

0 comments on commit 7e2ac6c

Please sign in to comment.