From 81ea0bc6d1797acbbb0aeec80598569a728d868a Mon Sep 17 00:00:00 2001 From: AzenKain Date: Mon, 25 May 2026 08:42:39 +0700 Subject: [PATCH] feat: fix project service --- internal/services/projectService.go | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/internal/services/projectService.go b/internal/services/projectService.go index d278e4c..ea60968 100644 --- a/internal/services/projectService.go +++ b/internal/services/projectService.go @@ -314,7 +314,15 @@ func (s *projectService) AddMember(ctx context.Context, claims *response.JWTClai callerUUID, _ := convert.StringToUUID(claims.UId) - if dto.UserID == claims.UId { + isAdminOrMod := false + for _, r := range claims.Roles { + if r == constants.RoleTypeAdmin || r == constants.RoleTypeMod { + isAdminOrMod = true + break + } + } + + if dto.UserID == claims.UId && !isAdminOrMod { return nil, fiber.NewError(fiber.StatusBadRequest, "Cannot add yourself as a member") } @@ -387,7 +395,15 @@ func (s *projectService) RemoveMember(ctx context.Context, claims *response.JWTC return fiber.NewError(fiber.StatusBadRequest, "Invalid member user ID format") } - if claims.UId == memberUserID { + isAdminOrMod := false + for _, r := range claims.Roles { + if r == constants.RoleTypeAdmin || r == constants.RoleTypeMod { + isAdminOrMod = true + break + } + } + + if claims.UId == memberUserID && !isAdminOrMod { return fiber.NewError(fiber.StatusBadRequest, "Cannot remove yourself from the project") }