Admin can now reset Rankingpoints of single user
This commit is contained in:
parent
3d8e04bc10
commit
e65d32e106
@ -44,6 +44,7 @@
|
|||||||
type="text"
|
type="text"
|
||||||
label="Username eingeben"
|
label="Username eingeben"
|
||||||
unelevated color="negative"
|
unelevated color="negative"
|
||||||
|
v-model="deleteUser"
|
||||||
></q-input>
|
></q-input>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -53,6 +54,7 @@
|
|||||||
label="Punkte des Nutzer zurücksetzen"
|
label="Punkte des Nutzer zurücksetzen"
|
||||||
color="negative"
|
color="negative"
|
||||||
class="full-width"
|
class="full-width"
|
||||||
|
@click="resetPoints()"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
<div v-if="hasAdminState" class="row">
|
<div v-if="hasAdminState" class="row">
|
||||||
@ -102,7 +104,8 @@
|
|||||||
tab: 'solo',
|
tab: 'solo',
|
||||||
rankinglist: [],
|
rankinglist: [],
|
||||||
teamRankinglist: [],
|
teamRankinglist: [],
|
||||||
username: null
|
username: null,
|
||||||
|
deleteUser: null
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
created: function () {
|
created: function () {
|
||||||
@ -183,7 +186,25 @@
|
|||||||
// lastSum = ranking.rankingPointsSum;
|
// 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)")
|
@ApiOperation(value = "Test method (Changes its purpose often)")
|
||||||
@ApiResponses(value = {
|
@ApiResponses(value = {
|
||||||
@ApiResponse(code = 404, message = "Database error"),
|
@ApiResponse(code = 404, message = "Database error"),
|
||||||
|
|||||||
@ -8,6 +8,7 @@ import java.util.List;
|
|||||||
|
|
||||||
public interface UserRepository extends CrudRepository<User, Integer> {
|
public interface UserRepository extends CrudRepository<User, Integer> {
|
||||||
User findByEmail(String email);
|
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" +
|
// @Query(value = "SELECT DISTINCT u.id AS ID, username AS Name, ui.ranking_points_sum AS Ranglistenpunkte\n" +
|
||||||
// "FROM user u,\n" +
|
// "FROM user u,\n" +
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user