You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

75 lines
1.6 KiB

  1. package casbins
  2. import (
  3. "fmt"
  4. "github.com/casbin/casbin/v2"
  5. xormadapter "github.com/casbin/xorm-adapter/v2"
  6. "log"
  7. "strings"
  8. "testing"
  9. )
  10. func TestGetEnforcer(t *testing.T) {
  11. driveSource := fmt.Sprintf("server=%s;database=%s;user id=%s;password=%s;port=%d;encrypt=disable",
  12. "127.0.0.1", "GAAS_MOM", "sa", "Leit2020", 1433)
  13. a, err := xormadapter.NewAdapter("mssql", driveSource, true)
  14. if err != nil {
  15. log.Printf("连接数据库错误: %v", err)
  16. return
  17. }
  18. e, err := casbin.NewEnforcer("D:\\GoWrok\\src\\leit.com\\LAPP_LF_MOM_BACKEND\\conf\\rbac_model.conf", a)
  19. if err != nil {
  20. log.Printf("casbin初始化: %v", err)
  21. return
  22. }
  23. if err = e.LoadPolicy(); err == nil {
  24. }
  25. fmt.Println(err)
  26. //ok,err:=e.AddPolicy("test222", "/admin/base/person/checklogin/{personId}/{workPlaceNr}", "GET")
  27. //if err !=nil{
  28. // log.Printf("AddPolicy错误: %v", err)
  29. //}
  30. //if ok{
  31. // log.Printf("AddPolicy添加成功")
  32. //}
  33. ok2,err:=e.Enforce("目检", "/admin/base/person/checklogin/1/1", "GET")
  34. fmt.Println(ok2)
  35. if !ok2{
  36. fmt.Println("权限不通过")
  37. }else{
  38. fmt.Println("权限通过")
  39. }
  40. }
  41. func Test2(t *testing.T) {
  42. if strings.Contains("/public/uploadfile/admin.jpg","/public/uploadfile") {
  43. fmt.Println("权限通过")
  44. }else{
  45. fmt.Println("权限不通过")
  46. }
  47. }
  48. func Test(t *testing.T) {
  49. rutes := []string{"/sysMenu","/user/getuserinfo","/public/uploadfile"}
  50. ok := IsContain(rutes,"/public/uploadfile/admin.jpg")
  51. if !ok {
  52. fmt.Println("权限不通过")
  53. }else{
  54. fmt.Println("权限通过")
  55. }
  56. }
  57. func IsContain(items []string, item string) bool {
  58. for _, eachItem := range items {
  59. if eachItem == item {
  60. return true
  61. }
  62. }
  63. return false
  64. }