/account/admin POST -> set admin

This commit is contained in:
Tim
2025-06-18 22:58:59 +02:00
parent 2f2d1156dd
commit 46d21504aa
4 changed files with 30 additions and 1 deletions

View File

@@ -14,4 +14,5 @@ public class ParameterConfig {
public static final String PARAM_STATUS = "status"; public static final String PARAM_STATUS = "status";
public static final String PARAM_STANDARD = "standard"; public static final String PARAM_STANDARD = "standard";
public static final String PARAM_SESSION = "session"; public static final String PARAM_SESSION = "session";
public static final String PARAM_ADMIN = "session";
} }

View File

@@ -153,4 +153,18 @@ public class AccountController {
return ResponseEntity.ok(saved); return ResponseEntity.ok(saved);
} }
@RequestMapping(path = ACCOUNT_ADMIN, method = RequestMethod.POST, produces = "application/json")
public ResponseEntity<Boolean> setAdmin(HttpServletRequest request,
@RequestParam(PARAM_EMAIL) String email,
@RequestParam(PARAM_PASSWORD) UUID token,
@RequestParam(PARAM_ID) Long accountId,
@RequestParam(PARAM_ADMIN) Boolean admin) {
logRequest(request);
if (!sessionService.isAdmin(token, email)) {
log.warn("Invalid session requesting Admin {}", token);
return ResponseEntity.status(403).build();
}
return ResponseEntity.ok(accountService.setAdmin(accountId, admin));
}
} }

View File

@@ -18,4 +18,6 @@ public interface AccountService {
Account isValidLogin(String email, String password); Account isValidLogin(String email, String password);
boolean existsWithEmail(String email); boolean existsWithEmail(String email);
boolean setAdmin(Long id, boolean admin);
} }

View File

@@ -77,5 +77,17 @@ public class AccountServiceImpl implements AccountService {
return accountRepository.existsAccountByEmail(email); return accountRepository.existsAccountByEmail(email);
} }
@Override
public boolean setAdmin(Long id, boolean admin) {
if (id == null) {
return false;
}
Account acc = accountRepository.getAccountById(id);
if (acc == null) {
return false;
}
acc.setAdmin(admin);
accountRepository.save(acc);
return true;
}
} }