backend refactor: userdeletion
This commit is contained in:
@@ -47,7 +47,7 @@ func (uc *UserController) CurrentUserHandler(c *gin.Context) {
|
|||||||
func (uc *UserController) GetAllUsers(c *gin.Context) {
|
func (uc *UserController) GetAllUsers(c *gin.Context) {
|
||||||
users, err := uc.Service.GetUsers(nil)
|
users, err := uc.Service.GetUsers(nil)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
utils.RespondWithError(c, err, "Error getting users in GetAllUsers", http.StatusInternalServerError, "user", "server.error.internal_server_error")
|
utils.RespondWithError(c, err, "Error getting users in GetAllUsers", http.StatusInternalServerError, "user.user", "server.error.internal_server_error")
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -80,7 +80,7 @@ func (uc *UserController) UpdateHandler(c *gin.Context) {
|
|||||||
user = updateData.User
|
user = updateData.User
|
||||||
|
|
||||||
if !utils.HasPrivilige(requestUser, constants.Priviliges.Update) && user.ID != requestUser.ID {
|
if !utils.HasPrivilige(requestUser, constants.Priviliges.Update) && user.ID != requestUser.ID {
|
||||||
utils.RespondWithError(c, errors.ErrNotAuthorized, "Not allowed to update user", http.StatusForbidden, "user", "server.error.unauthorized")
|
utils.RespondWithError(c, errors.ErrNotAuthorized, "Not allowed to update user", http.StatusForbidden, "user.user", "server.error.unauthorized")
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -99,30 +99,35 @@ func (uc *UserController) DeleteUser(c *gin.Context) {
|
|||||||
|
|
||||||
requestUser, err := uc.ExtractUserFromContext(c)
|
requestUser, err := uc.ExtractUserFromContext(c)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
utils.RespondWithError(c, err, "Error extracting user from context in UpdateHandler", http.StatusBadRequest, "general", "server.validation.no_auth_tokenw")
|
utils.RespondWithError(c, err, "Error extracting user from context in DeleteUser", http.StatusBadRequest, "general", "server.validation.no_auth_tokenw")
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
type deleteData = struct {
|
type deleteData struct {
|
||||||
ID uint `json:"id"`
|
User struct {
|
||||||
LastName string `json:"lastname"`
|
ID uint `json:"id"`
|
||||||
|
LastName string `json:"last_name"`
|
||||||
|
} `json:"user"`
|
||||||
}
|
}
|
||||||
|
|
||||||
var deletedUser deleteData
|
var data deleteData
|
||||||
if err := c.ShouldBindJSON(&deletedUser); err != nil {
|
if err := c.ShouldBindJSON(&data); err != nil {
|
||||||
utils.HandleValidationError(c, err)
|
utils.HandleValidationError(c, err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
if !utils.HasPrivilige(requestUser, constants.Priviliges.Update) && deletedUser.ID != requestUser.ID {
|
if !utils.HasPrivilige(requestUser, constants.Priviliges.Update) && data.User.ID != requestUser.ID {
|
||||||
utils.RespondWithError(c, errors.ErrNotAuthorized, "Not allowed to delete user", http.StatusForbidden, "user", "server.error.unauthorized")
|
utils.RespondWithError(c, errors.ErrNotAuthorized, "Not allowed to delete user", http.StatusForbidden, "user.user", "server.error.unauthorized")
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
if err := uc.Service.DeleteUser(deletedUser.LastName, deletedUser.ID); err != nil {
|
logger.Error.Printf("Deleting user: %v", data.User)
|
||||||
utils.RespondWithError(c, err, "Error during user deletion", http.StatusInternalServerError, "user", "server.error.internal_server_error")
|
if err := uc.Service.DeleteUser(data.User.LastName, data.User.ID); err != nil {
|
||||||
|
utils.RespondWithError(c, err, "Error during user deletion", http.StatusInternalServerError, "user.user", "server.error.internal_server_error")
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
c.JSON(http.StatusOK, gin.H{"message": "User deleted successfully"})
|
||||||
}
|
}
|
||||||
|
|
||||||
func (uc *UserController) ExtractUserFromContext(c *gin.Context) (*models.User, error) {
|
func (uc *UserController) ExtractUserFromContext(c *gin.Context) (*models.User, error) {
|
||||||
|
|||||||
@@ -585,7 +585,7 @@ func testUpdateUser(t *testing.T, loginCookie http.Cookie) {
|
|||||||
},
|
},
|
||||||
expectedStatus: http.StatusForbidden,
|
expectedStatus: http.StatusForbidden,
|
||||||
expectedErrors: []map[string]string{
|
expectedErrors: []map[string]string{
|
||||||
{"field": "user", "key": "server.error.unauthorized"},
|
{"field": "user.user", "key": "server.error.unauthorized"},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user