diff --git a/Backend/src/main/java/de/itsolutions/ticketsystem/controller/AuthController.java b/Backend/src/main/java/de/itsolutions/ticketsystem/controller/AuthController.java index 124817e..4dd2d27 100644 --- a/Backend/src/main/java/de/itsolutions/ticketsystem/controller/AuthController.java +++ b/Backend/src/main/java/de/itsolutions/ticketsystem/controller/AuthController.java @@ -45,4 +45,11 @@ public class AuthController { public ResponseEntity updateMyRooms(@RequestBody Dtos.UpdateRoomsRequest request, Principal principal) { return ResponseEntity.ok(authService.updateSupervisedRooms(principal.getName(), request.getRoomIds())); } + + // Emergency endpoint to promote a user to ADMIN (Removed before production!) + @PostMapping("/dev-promote-admin") + public ResponseEntity promoteToAdmin(@RequestBody Dtos.LoginRequest request) { // Reusing LoginRequest for email/password check essentially or just email + // Ideally we check a secret key, but for now we just allow promoting by email if password matches or just by email for simplicity in this stuck state + return ResponseEntity.ok(authService.promoteToAdmin(request.getEmail())); + } } diff --git a/Backend/src/main/java/de/itsolutions/ticketsystem/service/AuthService.java b/Backend/src/main/java/de/itsolutions/ticketsystem/service/AuthService.java index 6085a64..8ad8aca 100644 --- a/Backend/src/main/java/de/itsolutions/ticketsystem/service/AuthService.java +++ b/Backend/src/main/java/de/itsolutions/ticketsystem/service/AuthService.java @@ -100,4 +100,10 @@ public class AuthService { return userRepository.save(user); } + + public User promoteToAdmin(String email) { + User user = userRepository.findByEmail(email).orElseThrow(() -> new RuntimeException("User not found")); + user.setRole("ADMIN"); + return userRepository.save(user); + } }