Admin can now reset Rankingpoints of single user
This commit is contained in:
parent
3d8e04bc10
commit
e65d32e106
@ -44,6 +44,7 @@
|
||||
type="text"
|
||||
label="Username eingeben"
|
||||
unelevated color="negative"
|
||||
v-model="deleteUser"
|
||||
></q-input>
|
||||
</div>
|
||||
</div>
|
||||
@ -53,6 +54,7 @@
|
||||
label="Punkte des Nutzer zurücksetzen"
|
||||
color="negative"
|
||||
class="full-width"
|
||||
@click="resetPoints()"
|
||||
/>
|
||||
</div>
|
||||
<div v-if="hasAdminState" class="row">
|
||||
@ -102,7 +104,8 @@
|
||||
tab: 'solo',
|
||||
rankinglist: [],
|
||||
teamRankinglist: [],
|
||||
username: null
|
||||
username: null,
|
||||
deleteUser: null
|
||||
}
|
||||
},
|
||||
created: function () {
|
||||
@ -183,7 +186,25 @@
|
||||
// lastSum = ranking.rankingPointsSum;
|
||||
// }
|
||||
},
|
||||
resetPoints(username){
|
||||
resetPoints(){
|
||||
if(this.deleteUser != null){
|
||||
let username = this.deleteUser;
|
||||
let token = JSON.parse(localStorage.getItem('userToken')).token;
|
||||
|
||||
this.$axios.put('/api/resetSingleUser',null, {params: {token, username}})
|
||||
.then((response) => {
|
||||
console.log("Rankinglist: ");
|
||||
console.log(response.data);
|
||||
this.fetchRankinglist();
|
||||
}).catch((error) => {
|
||||
})
|
||||
} else {
|
||||
this.$store.commit('dialog/NEW_MESSAGE_DIALOG', {
|
||||
message: "Zum zurücksetzen der Punkte eines Nutzers gib bitte einen Usernamen ein",
|
||||
title: "Fehlender Username",
|
||||
color: "negative"
|
||||
});
|
||||
}
|
||||
|
||||
},
|
||||
}
|
||||
|
||||
@ -1284,6 +1284,62 @@ public class Controller {
|
||||
|
||||
}
|
||||
|
||||
@ApiOperation(value = "Resets the points of a single User ")
|
||||
@ApiResponses(value = {
|
||||
@ApiResponse(code = 404, message = "Database error"),
|
||||
@ApiResponse(code = 401, message = "JWT Token expired"),
|
||||
@ApiResponse(code = 400, message = "Something went wrong at verification")
|
||||
})
|
||||
@CrossOrigin(origins = "*", allowedHeaders = "*") // only for dev purpose
|
||||
@RequestMapping(value = "/api/resetSingleUser", method = RequestMethod.PUT, produces = "application/json")
|
||||
public ResponseEntity resetSingleUser(@RequestParam String token, @RequestParam String username) {
|
||||
logger.debug("API CALL: /api/resetSingleUser");
|
||||
// verify user
|
||||
ResponseEntity verifyToken = VerificationUtil.verifyToken(token);
|
||||
|
||||
if (verifyToken.getStatusCodeValue() != 200) {
|
||||
return verifyToken;
|
||||
}
|
||||
|
||||
//get User
|
||||
Claims claims = (Claims) verifyToken.getBody();
|
||||
|
||||
ResponseEntity getUser = FinderUtil.findUserFromClaim(claims);
|
||||
|
||||
if (getUser.getStatusCodeValue() != 200) {
|
||||
return getUser;
|
||||
}
|
||||
|
||||
User user = (User) getUser.getBody();
|
||||
|
||||
logger.debug("/api/resetRankingList: " + "User verificated: " + user.getEmail());
|
||||
//----------------------
|
||||
boolean isAdmin = false;
|
||||
for (Role role : user.getRoles()) {
|
||||
if (role.getId() == 7) {
|
||||
isAdmin = true;
|
||||
}
|
||||
}
|
||||
|
||||
if (isAdmin) {
|
||||
|
||||
User deleteUser = userRepository.findByUsername(username);
|
||||
|
||||
User_Info user_info = user_infoRepository.findUser_InfoByUser(deleteUser);
|
||||
user_info.setRankingPointsSum(0);
|
||||
user_infoRepository.save(user_info);
|
||||
|
||||
for (Bearbeitet bearbeitet : bearbeitetRepository.findByUser(deleteUser)) {
|
||||
if (bearbeitet.getCacheAccesDefinition().getId() == 1) {
|
||||
bearbeitetRepository.delete(bearbeitet);
|
||||
}
|
||||
}
|
||||
return ResponseEntity.status(200).body(HttpStatus.OK);
|
||||
} else {
|
||||
return ResponseEntity.status(400).body("Der Benutzer ist kein Admin und kann deshalb die Rangliste nicht zurücksetzen.");
|
||||
}
|
||||
}
|
||||
|
||||
@ApiOperation(value = "Test method (Changes its purpose often)")
|
||||
@ApiResponses(value = {
|
||||
@ApiResponse(code = 404, message = "Database error"),
|
||||
|
||||
@ -8,6 +8,7 @@ import java.util.List;
|
||||
|
||||
public interface UserRepository extends CrudRepository<User, Integer> {
|
||||
User findByEmail(String email);
|
||||
User findByUsername(String username);
|
||||
|
||||
// @Query(value = "SELECT DISTINCT u.id AS ID, username AS Name, ui.ranking_points_sum AS Ranglistenpunkte\n" +
|
||||
// "FROM user u,\n" +
|
||||
|
||||
Loading…
Reference in New Issue
Block a user