package middleware import ( "gitea.zjmud.xyz/phyer/rbac/repositories" "github.com/gin-gonic/gin" ) func RBACMiddleware(permission string) gin.HandlerFunc { return func(c *gin.Context) { userID := c.GetString("userID") if userID == "" { c.AbortWithStatusJSON(401, gin.H{"error": "Unauthorized"}) return } hasPermission, err := repositories.CheckUserPermission(userID, permission) if err != nil || !hasPermission { c.AbortWithStatusJSON(403, gin.H{"error": "Forbidden"}) return } c.Next() } }