(t *testing.T)
| 119 | } |
| 120 | |
| 121 | func TestRBACModelInMemory(t *testing.T) { |
| 122 | m := model.NewModel() |
| 123 | m.AddDef("r", "r", "sub, obj, act") |
| 124 | m.AddDef("p", "p", "sub, obj, act") |
| 125 | m.AddDef("g", "g", "_, _") |
| 126 | m.AddDef("e", "e", "some(where (p.eft == allow))") |
| 127 | m.AddDef("m", "m", "g(r.sub, p.sub) && r.obj == p.obj && r.act == p.act") |
| 128 | |
| 129 | e, _ := NewEnforcer(m) |
| 130 | |
| 131 | _, _ = e.AddPermissionForUser("alice", "data1", "read") |
| 132 | _, _ = e.AddPermissionForUser("bob", "data2", "write") |
| 133 | _, _ = e.AddPermissionForUser("data2_admin", "data2", "read") |
| 134 | _, _ = e.AddPermissionForUser("data2_admin", "data2", "write") |
| 135 | _, _ = e.AddRoleForUser("alice", "data2_admin") |
| 136 | |
| 137 | testEnforce(t, e, "alice", "data1", "read", true) |
| 138 | testEnforce(t, e, "alice", "data1", "write", false) |
| 139 | testEnforce(t, e, "alice", "data2", "read", true) |
| 140 | testEnforce(t, e, "alice", "data2", "write", true) |
| 141 | testEnforce(t, e, "bob", "data1", "read", false) |
| 142 | testEnforce(t, e, "bob", "data1", "write", false) |
| 143 | testEnforce(t, e, "bob", "data2", "read", false) |
| 144 | testEnforce(t, e, "bob", "data2", "write", true) |
| 145 | } |
| 146 | |
| 147 | func TestRBACModelInMemory2(t *testing.T) { |
| 148 | text := |
nothing calls this directly
no test coverage detected
searching dependent graphs…