package casbins import ( "fmt" "github.com/casbin/casbin/v2" xormadapter "github.com/casbin/xorm-adapter/v2" "log" "strings" "testing" ) func TestGetEnforcer(t *testing.T) { driveSource := fmt.Sprintf("server=%s;database=%s;user id=%s;password=%s;port=%d;encrypt=disable", "127.0.0.1", "GAAS_MOM", "sa", "Leit2020", 1433) a, err := xormadapter.NewAdapter("mssql", driveSource, true) if err != nil { log.Printf("连接数据库错误: %v", err) return } e, err := casbin.NewEnforcer("D:\\GoWrok\\src\\leit.com\\LAPP_LF_MOM_BACKEND\\conf\\rbac_model.conf", a) if err != nil { log.Printf("casbin初始化: %v", err) return } if err = e.LoadPolicy(); err == nil { } fmt.Println(err) //ok,err:=e.AddPolicy("test222", "/admin/base/person/checklogin/{personId}/{workPlaceNr}", "GET") //if err !=nil{ // log.Printf("AddPolicy错误: %v", err) //} //if ok{ // log.Printf("AddPolicy添加成功") //} ok2,err:=e.Enforce("目检", "/admin/base/person/checklogin/1/1", "GET") fmt.Println(ok2) if !ok2{ fmt.Println("权限不通过") }else{ fmt.Println("权限通过") } } func Test2(t *testing.T) { if strings.Contains("/public/uploadfile/admin.jpg","/public/uploadfile") { fmt.Println("权限通过") }else{ fmt.Println("权限不通过") } } func Test(t *testing.T) { rutes := []string{"/sysMenu","/user/getuserinfo","/public/uploadfile"} ok := IsContain(rutes,"/public/uploadfile/admin.jpg") if !ok { fmt.Println("权限不通过") }else{ fmt.Println("权限通过") } } func IsContain(items []string, item string) bool { for _, eachItem := range items { if eachItem == item { return true } } return false }