feat(api): allow user to delete his own account
This commit is contained in:
parent
0327fa9969
commit
5dd34fb073
|
|
@ -105,22 +105,22 @@ func (a *Api) deleteUser(w http.ResponseWriter, r *http.Request) {
|
||||||
|
|
||||||
//Check if user which is requesting deletion has the necessary privileges
|
//Check if user which is requesting deletion has the necessary privileges
|
||||||
rUser, err := a.db.FindUser(email)
|
rUser, err := a.db.FindUser(email)
|
||||||
if rUser.Level != AdminUser {
|
if err != nil {
|
||||||
w.WriteHeader(http.StatusForbidden)
|
w.WriteHeader(http.StatusInternalServerError)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
userEmail := mux.Vars(r)["user"]
|
userEmail := mux.Vars(r)["user"]
|
||||||
if userEmail == email {
|
|
||||||
w.WriteHeader(http.StatusBadRequest)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
|
if rUser.Email == userEmail || (rUser.Level == AdminUser && rUser.Email != userEmail) { //Admin can delete any user, but can't delete himself
|
||||||
if err := a.db.DeleteUser(userEmail); err != nil {
|
if err := a.db.DeleteUser(userEmail); err != nil {
|
||||||
w.WriteHeader(http.StatusInternalServerError)
|
w.WriteHeader(http.StatusInternalServerError)
|
||||||
json.NewEncoder(w).Encode(err)
|
json.NewEncoder(w).Encode(err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
w.WriteHeader(http.StatusForbidden)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (a *Api) changePassword(w http.ResponseWriter, r *http.Request) {
|
func (a *Api) changePassword(w http.ResponseWriter, r *http.Request) {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user