chore: import clean Agent Desk snapshot (2/7)
This commit is contained in:
34
internal/middleware/auth_middleware.go
Normal file
34
internal/middleware/auth_middleware.go
Normal file
@@ -0,0 +1,34 @@
|
||||
package middleware
|
||||
|
||||
import (
|
||||
"agent-desk/internal/pkg/enums"
|
||||
"agent-desk/internal/pkg/i18nx"
|
||||
"agent-desk/internal/services"
|
||||
|
||||
"github.com/gin-gonic/gin"
|
||||
"github.com/mlogclub/simple/web"
|
||||
)
|
||||
|
||||
func AuthMiddleware(ctx *gin.Context) {
|
||||
if !authenticateRequest(ctx) {
|
||||
return
|
||||
}
|
||||
ctx.Next()
|
||||
}
|
||||
|
||||
func authenticateRequest(ctx *gin.Context) bool {
|
||||
principal, err := services.AuthService.Authenticate(ctx)
|
||||
if err != nil {
|
||||
result := web.JsonError(err)
|
||||
result.Message = i18nx.T(ctx, "error.auth.expired")
|
||||
ctx.JSON(200, result)
|
||||
ctx.Abort()
|
||||
return false
|
||||
}
|
||||
if principal.UserType != enums.UserTypeEmployee {
|
||||
ctx.JSON(200, web.JsonErrorCode(3001, i18nx.T(ctx, "error.e0225")))
|
||||
ctx.Abort()
|
||||
return false
|
||||
}
|
||||
return true
|
||||
}
|
||||
Reference in New Issue
Block a user