add dukcapil

This commit is contained in:
Aditya Siregar
2026-05-07 04:01:32 +07:00
parent 9a975d146e
commit bc64eb20ea
235 changed files with 1197 additions and 28187 deletions
+4 -49
View File
@@ -1,13 +1,13 @@
package middleware
import (
"eslogad-be/internal/appcontext"
"go-backend-template/internal/appcontext"
"net/http"
"strings"
"eslogad-be/internal/constants"
"eslogad-be/internal/contract"
"eslogad-be/internal/logger"
"go-backend-template/internal/constants"
"go-backend-template/internal/contract"
"go-backend-template/internal/logger"
"github.com/gin-gonic/gin"
)
@@ -22,51 +22,6 @@ func NewAuthMiddleware(authService AuthValidateService) *AuthMiddleware {
}
}
func (m *AuthMiddleware) RequireAuth() gin.HandlerFunc {
return func(c *gin.Context) {
token := m.extractTokenFromHeader(c)
if token == "" {
logger.FromContext(c.Request.Context()).Error("AuthMiddleware::RequireAuth -> Missing authorization token")
m.sendErrorResponse(c, "Authorization token is required", http.StatusUnauthorized)
c.Abort()
return
}
userResponse, err := m.authService.ValidateToken(token)
if err != nil {
logger.FromContext(c.Request.Context()).WithError(err).Error("AuthMiddleware::RequireAuth -> Invalid token")
m.sendErrorResponse(c, "Invalid or expired token", http.StatusUnauthorized)
c.Abort()
return
}
setKeyInContext(c, appcontext.UserIDKey, userResponse.ID.String())
setKeyInContext(c, appcontext.UserNameKey, userResponse.Name)
if len(userResponse.DepartmentResponse) > 0 {
departmentID := userResponse.DepartmentResponse[0].ID.String()
setKeyInContext(c, appcontext.DepartmentIDKey, departmentID)
} else {
setKeyInContext(c, appcontext.DepartmentIDKey, "")
}
if len(userResponse.Roles) > 0 {
userRole := userResponse.Roles[0].Code
setKeyInContext(c, appcontext.UserRoleKey, userRole)
} else {
setKeyInContext(c, appcontext.UserRoleKey, "")
}
if roles, perms, err := m.authService.ExtractAccess(token); err == nil {
c.Set("user_roles", roles)
c.Set("user_permissions", perms)
}
logger.FromContext(c.Request.Context()).Infof("AuthMiddleware::RequireAuth -> User authenticated: %s", userResponse.Email)
c.Next()
}
}
func (m *AuthMiddleware) RequireRole(allowedRoles ...string) gin.HandlerFunc {
return func(c *gin.Context) {
appCtx := appcontext.FromGinContext(c.Request.Context())
-9
View File
@@ -1,13 +1,4 @@
package middleware
import (
"context"
"eslogad-be/internal/contract"
)
type AuthValidateService interface {
ValidateToken(tokenString string) (*contract.UserResponse, error)
RefreshToken(ctx context.Context, tokenString string) (*contract.LoginResponse, error)
Logout(ctx context.Context, tokenString string) error
ExtractAccess(tokenString string) (roles []string, permissions []string, err error)
}
+2 -2
View File
@@ -2,8 +2,8 @@ package middleware
import (
"context"
"eslogad-be/internal/appcontext"
"eslogad-be/internal/constants"
"go-backend-template/internal/appcontext"
"go-backend-template/internal/constants"
"github.com/gin-gonic/gin"
)
+2 -2
View File
@@ -2,8 +2,8 @@ package middleware
import (
"context"
"eslogad-be/internal/appcontext"
"eslogad-be/internal/constants"
"go-backend-template/internal/appcontext"
"go-backend-template/internal/constants"
"github.com/gin-gonic/gin"
"github.com/google/uuid"
)
+3 -3
View File
@@ -1,9 +1,9 @@
package middleware
import (
"eslogad-be/internal/contract"
"eslogad-be/internal/logger"
"eslogad-be/internal/util"
"go-backend-template/internal/contract"
"go-backend-template/internal/logger"
"go-backend-template/internal/util"
"github.com/gin-gonic/gin"
"net/http"
"runtime/debug"
+2 -2
View File
@@ -1,8 +1,8 @@
package middleware
import (
"eslogad-be/internal/constants"
"eslogad-be/internal/logger"
"go-backend-template/internal/constants"
"go-backend-template/internal/logger"
"fmt"
"github.com/gin-gonic/gin"
"net/http"
+2 -2
View File
@@ -1,8 +1,8 @@
package middleware
import (
"eslogad-be/internal/contract"
"eslogad-be/internal/logger"
"go-backend-template/internal/contract"
"go-backend-template/internal/logger"
"github.com/gin-gonic/gin"
"github.com/google/uuid"
+1 -1
View File
@@ -2,7 +2,7 @@ package middleware
import (
"context"
"eslogad-be/internal/contract"
"go-backend-template/internal/contract"
"github.com/google/uuid"
)