/account/admin POST -> set admin
This commit is contained in:
@@ -14,4 +14,5 @@ public class ParameterConfig {
|
||||
public static final String PARAM_STATUS = "status";
|
||||
public static final String PARAM_STANDARD = "standard";
|
||||
public static final String PARAM_SESSION = "session";
|
||||
public static final String PARAM_ADMIN = "session";
|
||||
}
|
||||
|
||||
@@ -153,4 +153,18 @@ public class AccountController {
|
||||
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));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -18,4 +18,6 @@ public interface AccountService {
|
||||
Account isValidLogin(String email, String password);
|
||||
|
||||
boolean existsWithEmail(String email);
|
||||
|
||||
boolean setAdmin(Long id, boolean admin);
|
||||
}
|
||||
@@ -77,5 +77,17 @@ public class AccountServiceImpl implements AccountService {
|
||||
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;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user