feat: update user verification to handle SUPERADMIN role and improve warehouse ID assignment
Deploy Application / deploy (push) Successful in 25s Details

This commit is contained in:
Habib Fatkhul Rohman 2025-11-19 15:29:40 +07:00
parent a5e4fd39a2
commit 59333e5144
2 changed files with 9 additions and 2 deletions

View File

@ -14,6 +14,7 @@ import (
"github.com/Caknoooo/go-gin-clean-starter/modules/user/dto" "github.com/Caknoooo/go-gin-clean-starter/modules/user/dto"
"github.com/Caknoooo/go-gin-clean-starter/modules/user/repository" "github.com/Caknoooo/go-gin-clean-starter/modules/user/repository"
warehouserepository "github.com/Caknoooo/go-gin-clean-starter/modules/warehouse/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" pkgdto "github.com/Caknoooo/go-gin-clean-starter/pkg/dto"
"github.com/Caknoooo/go-gin-clean-starter/pkg/utils" "github.com/Caknoooo/go-gin-clean-starter/pkg/utils"
"github.com/google/uuid" "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...) 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") 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 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() refreshTokenString, expiresAt := s.jwtService.GenerateRefreshToken()
refreshToken := entities.RefreshToken{ refreshToken := entities.RefreshToken{

View File

@ -13,4 +13,5 @@ const (
DB = "db" DB = "db"
JWTService = "JWTService" JWTService = "JWTService"
LOGGER = "logger" LOGGER = "logger"
SUPERADMIN = "superadmin"
) )