fixed blocking important issues
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
package user
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"tm/pkg/authorization"
|
||||
"tm/pkg/logger"
|
||||
"tm/pkg/response"
|
||||
@@ -484,17 +485,24 @@ func (h *Handler) ResetUserPassword(c echo.Context) error {
|
||||
return response.Unauthorized(c, "Unauthorized")
|
||||
}
|
||||
|
||||
targetID := c.Param("id")
|
||||
result, err := h.service.AdminResetPassword(c.Request().Context(), actorID, targetID)
|
||||
actorRole, err := GetUserRoleFromContext(c)
|
||||
if err != nil {
|
||||
switch err.Error() {
|
||||
case errInvalidUserID.Error():
|
||||
return response.Unauthorized(c, "Unauthorized")
|
||||
}
|
||||
|
||||
targetID := c.Param("id")
|
||||
result, err := h.service.AdminResetPassword(c.Request().Context(), actorID, actorRole, targetID)
|
||||
if err != nil {
|
||||
switch {
|
||||
case errors.Is(err, errInvalidUserID):
|
||||
return response.BadRequest(c, "Invalid id", "")
|
||||
case errAdminUserNotFound.Error():
|
||||
case errors.Is(err, errAdminUserNotFound):
|
||||
return response.NotFound(c, "Admin not found")
|
||||
case errCannotResetPassword.Error():
|
||||
case errors.Is(err, errCannotResetPassword):
|
||||
return response.Conflict(c, "Cannot reset password for this user")
|
||||
case errResetPasswordRateHit.Error():
|
||||
case errors.Is(err, errResetPasswordForbidden):
|
||||
return response.Forbidden(c, "You are not allowed to reset this password")
|
||||
case errors.Is(err, errResetPasswordRateHit):
|
||||
return response.TooManyRequests(c, "Too many password reset requests")
|
||||
default:
|
||||
return response.InternalServerError(c, "Failed to reset password")
|
||||
|
||||
Reference in New Issue
Block a user