diff --git a/modules/user/service/user_service.go b/modules/user/service/user_service.go index db23a6c..0fd3798 100644 --- a/modules/user/service/user_service.go +++ b/modules/user/service/user_service.go @@ -14,6 +14,7 @@ import ( "github.com/Caknoooo/go-gin-clean-starter/modules/user/dto" "github.com/Caknoooo/go-gin-clean-starter/modules/user/repository" warehouserepository "github.com/Caknoooo/go-gin-clean-starter/modules/warehouse/repository" + pkgconstants "github.com/Caknoooo/go-gin-clean-starter/pkg/constants" pkgdto "github.com/Caknoooo/go-gin-clean-starter/pkg/dto" "github.com/Caknoooo/go-gin-clean-starter/pkg/utils" "github.com/google/uuid" @@ -480,7 +481,12 @@ func (s *userService) Verify(ctx context.Context, req dto.UserLoginRequest) (aut } warehouses := append([]entities.MWarehouseEntity{}, user.Warehouses...) - if len(warehouses) == 0 { + warehouseID := "" + if user.Username == pkgconstants.SUPERADMIN { + warehouseID = "" + } else if len(warehouses) > 0 { + warehouseID = warehouses[0].ID.String() + } else { return authDto.TokenResponse{}, errors.New("user has no warehouses assigned") } @@ -490,7 +496,7 @@ func (s *userService) Verify(ctx context.Context, req dto.UserLoginRequest) (aut return authDto.TokenResponse{}, err } - accessToken := s.jwtService.GenerateAccessToken(user.ClientID.String(), user.ID.String(), roles[0].ID.String(), warehouses[0].ID.String()) + accessToken := s.jwtService.GenerateAccessToken(user.ClientID.String(), user.ID.String(), roles[0].ID.String(), warehouseID) refreshTokenString, expiresAt := s.jwtService.GenerateRefreshToken() refreshToken := entities.RefreshToken{ diff --git a/pkg/constants/common.go b/pkg/constants/common.go index 440865c..4fca7a5 100644 --- a/pkg/constants/common.go +++ b/pkg/constants/common.go @@ -13,4 +13,5 @@ const ( DB = "db" JWTService = "JWTService" LOGGER = "logger" + SUPERADMIN = "superadmin" )