omnix-sopiga/framework/middleware/auth.go
2026-08-07 12:21:42 +07:00

49 lines
761 B
Go

package middleware
import (
"github.com/gin-gonic/gin"
)
func AuthMiddleware() gin.HandlerFunc {
return func(c *gin.Context) {
token := c.GetHeader("Authorization")
if token == "" {
c.JSON(401, gin.H{
"success": false,
"message": "missing authorization token",
})
c.Abort()
return
}
// TODO: verify token and set user context
c.Next()
}
}
func RoleMiddleware(required []string) gin.HandlerFunc {
return func(c *gin.Context) {
role := c.GetString("user_role")
allowed := false
for _, r := range required {
if r == role {
allowed = true
break
}
}
if !allowed {
c.JSON(403, gin.H{
"success": false,
"message": "insufficient permissions",
})
c.Abort()
return
}
c.Next()
}
}