36 lines
794 B
Go
36 lines
794 B
Go
package core
|
|
|
|
import (
|
|
"github.com/casbin/casbin/v2"
|
|
"github.com/casbin/casbin/v2/model"
|
|
gormadapter "github.com/casbin/gorm-adapter/v3"
|
|
"schisandra-cloud-album/global"
|
|
)
|
|
|
|
func InitCasbin() {
|
|
adapter, err := gormadapter.NewAdapterByDBUseTableName(global.DB, global.CONFIG.Casbin.TablePrefix, global.CONFIG.Casbin.TableName)
|
|
if err != nil {
|
|
global.LOG.Error(err.Error())
|
|
panic(err)
|
|
}
|
|
m, err := model.NewModelFromFile(global.CONFIG.Casbin.ModelPath)
|
|
if err != nil {
|
|
global.LOG.Error(err.Error())
|
|
panic(err)
|
|
}
|
|
e, err := casbin.NewCachedEnforcer(m, adapter)
|
|
if err != nil {
|
|
global.LOG.Error(err.Error())
|
|
panic(err)
|
|
}
|
|
e.EnableCache(true)
|
|
e.SetExpireTime(60 * 60)
|
|
err = e.LoadPolicy()
|
|
if err != nil {
|
|
global.LOG.Error(err.Error())
|
|
panic(err)
|
|
}
|
|
global.Casbin = e
|
|
|
|
}
|