[Feature]: Spieler bannen #15

Open
SZUT-Dorian wants to merge 3 commits from TD-4_Admin_kann_spieler_bannen into trunk
4 changed files with 35 additions and 1 deletions
Showing only changes of commit ca8942feba - Show all commits

View file

@ -282,6 +282,23 @@ paths:
responses:
Review

404 wenn spieler nicht gefunden

404 wenn spieler nicht gefunden
200:
description: "Successfully banned player!"
Review

401,500 & 503 fehlen

401,500 & 503 fehlen
/admin/player/{id}/unban:
parameters:
- in: path
name: id
schema:
type: integer
format: int64
required: true
post:
operationId: "UnbanPlayer"
tags:
- admin
summary: "Unban player by id"
description: "Unbans a player by id, allowing them to play the game."
responses:
Review

404 hinzufügen, fals der speiler nicht gefunden wird

404 hinzufügen, fals der speiler nicht gefunden wird
200:
description: "Successfully unbanned player!"
401:
$ref: "#/components/responses/401Unauthorized"
500:

View file

@ -93,4 +93,10 @@ public class AdminApiController implements AdminApi {
return ResponseEntity.ok(playersMapped);
}
@Override
public ResponseEntity<Void> unbanPlayer(Long id) {
this.playerService.unbanPlayer(id);
return null;
Review

st null hier richtig? wollen wir nicht ein 200 zurückgeben?

st null hier richtig? wollen wir nicht ein 200 zurückgeben?
}
}

View file

@ -57,4 +57,11 @@ public class PlayerService {
this.playerRepository.saveAndFlush(player);
});
}
public void unbanPlayer(Long id) {
Review

Wenn der Spieler nicht existiert, sollte diese Funktion einen PlayerNotFound Exception schmeißen

Wenn der Spieler nicht existiert, sollte diese Funktion einen PlayerNotFound Exception schmeißen
this.playerRepository.findById(id).ifPresent(player -> {
player.setBanned(false);
this.playerRepository.saveAndFlush(player);
});
}
}

View file

@ -45,7 +45,7 @@ public class ServerApiController implements ServerApi {
@Override
public ResponseEntity<Void> playerRegister(PlayerRegistrationData body) {
if(playerRepository.existsByUsername(body.getUsername())){
return new ResponseEntity<>(HttpStatus.CONFLICT);
Review

warum die änderung?

warum die änderung?
return new ResponseEntity<>(HttpStatus.FORBIDDEN);
}
Player newPlayer = new Player();
newPlayer.setUsername(body.getUsername());
@ -61,6 +61,10 @@ public class ServerApiController implements ServerApi {
@Override
public ResponseEntity<PlayerLoginSession> playerLogin(PlayerLoginData body) {
Player player = playerRepository.findByUsername(body.getUsername());
if(player.isBanned())
{
return new ResponseEntity<>(HttpStatus.CONFLICT);
Review

403 währe hier richtig.

403 ist für wenn man sich authentiziert hat, aber keine zugriffsrechte hat

403 währe hier richtig. 403 ist für wenn man sich authentiziert hat, aber keine zugriffsrechte hat
}
if(player == null){
return new ResponseEntity<>(HttpStatus.UNAUTHORIZED);
}