ferry/pkg/casbin/mycasbin.go

33 lines
731 B
Go
Raw Normal View History

2020-07-13 20:33:20 +08:00
package mycasbin
import (
"ferry/global/orm"
2020-08-15 23:34:37 +08:00
"ferry/pkg/logger"
2020-07-13 20:33:20 +08:00
"ferry/tools/config"
"github.com/casbin/casbin/v2"
gormadapter "github.com/casbin/gorm-adapter/v2"
"github.com/go-kit/kit/endpoint"
_ "github.com/go-sql-driver/mysql"
)
2020-08-15 23:34:37 +08:00
var _ endpoint.Middleware
2020-07-13 20:33:20 +08:00
func Casbin() (*casbin.Enforcer, error) {
conn := orm.MysqlConn
Apter, err := gormadapter.NewAdapter(config.DatabaseConfig.Dbtype, conn, true)
if err != nil {
return nil, err
}
e, err := casbin.NewEnforcer("config/rbac_model.conf", Apter)
if err != nil {
return nil, err
}
if err := e.LoadPolicy(); err == nil {
return e, err
} else {
2020-08-15 23:34:37 +08:00
logger.Infof("casbin rbac_model or policy init error, message: %v \r\n", err.Error())
2020-07-13 20:33:20 +08:00
return nil, err
}
}