This repository has been archived on 2024-11-28. You can view files and clone it, but cannot push or open issues or pull requests.
Files
schisandra-cloud-album/middleware/casbin.go
2024-08-24 18:04:13 +08:00

31 lines
566 B
Go

package middleware
import (
"github.com/gin-gonic/gin"
"schisandra-cloud-album/global"
)
func CasbinMiddleware() gin.HandlerFunc {
return func(c *gin.Context) {
userId, ok := c.Get("userId")
if !ok {
global.LOG.Error("casbin middleware: userId not found")
c.Abort()
return
}
method := c.Request.Method
path := c.Request.URL.Path
ok, err := global.Casbin.Enforce(userId.(string), path, method)
if err != nil {
global.LOG.Error("casbin middleware: ", err)
c.Abort()
return
}
if !ok {
c.Abort()
return
}
c.Next()
}
}