Casbin Auth
CasbinAuth adapts any value with this method:
Enforce(args ...any) (bool, error)
That keeps Zinc free of a hard Casbin dependency while still working with Casbin enforcers.
app.Use(middleware.CasbinAuth(enforcer, middleware.CasbinSubjectFromBasicAuth()))
By default Zinc enforces:
enforcer.Enforce(subject, c.Path(), c.Method())
Use CasbinAuthWithConfig to choose a different subject, object, or action.
app.Use(middleware.CasbinAuthWithConfig(middleware.CasbinAuthConfig{
Enforcer: enforcer,
Subject: middleware.CasbinSubjectFromContext(userKey),
Object: middleware.CasbinObjectPath(),
Action: middleware.CasbinActionMethod(),
}))