generated from VLADIMIR/template
add logs
This commit is contained in:
@@ -3,6 +3,7 @@ package app
|
||||
import (
|
||||
"context"
|
||||
"errors"
|
||||
"log"
|
||||
"net/netip"
|
||||
"strings"
|
||||
|
||||
@@ -215,12 +216,17 @@ func (s *server) GetPermissions(ctx context.Context, _ *proto.GetPermissionsReq)
|
||||
func (s *server) ChangeUserPassword(ctx context.Context, req *proto.ChangeUserPasswordReq) (*proto.ChangeUserPasswordRsp, error) {
|
||||
claims, ok := processor_jwt.ClaimsFromContext(ctx)
|
||||
if !ok || claims == nil {
|
||||
log.Printf("change user password failed: authentication missing, target_user_id=%d", req.GetID())
|
||||
return nil, status.Error(codes.Unauthenticated, "Требуется авторизация")
|
||||
}
|
||||
if !roles.HasRole(claims, roles.Admin) {
|
||||
log.Printf("change user password failed: admin role required, actor_user_id=%d target_user_id=%d", claims.UserID, req.GetID())
|
||||
return nil, status.Error(codes.PermissionDenied, "Недостаточно прав")
|
||||
}
|
||||
err := s.usersService.ChangeUserPassword(ctx, claims.UserID, int(req.GetID()), req.GetNewPassword())
|
||||
if err != nil {
|
||||
log.Printf("change user password failed: actor_user_id=%d target_user_id=%d: %v", claims.UserID, req.GetID(), err)
|
||||
}
|
||||
switch {
|
||||
case errors.Is(err, users_service.ErrPasswordChangeForbidden):
|
||||
return nil, status.Error(codes.PermissionDenied, err.Error())
|
||||
|
||||
Reference in New Issue
Block a user