Skip to content

Commit

Permalink
Remove policy "p, alice, data, 1, 2, 3, read".
Browse files Browse the repository at this point in the history
  • Loading branch information
hsluoyz committed Jun 23, 2019
1 parent f459753 commit 9d922cc
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 13 deletions.
20 changes: 8 additions & 12 deletions adapter_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ func initPolicy(t *testing.T, a *Adapter) {
if err != nil {
panic(err)
}
testGetPolicy(t, e, [][]string{{"alice", "data1", "read"}, {"bob", "data2", "write"}, {"data2_admin", "data2", "read"}, {"data2_admin", "data2", "write"}, {"alice", "data", "1", "2", "3", "read"}})
testGetPolicy(t, e, [][]string{{"alice", "data1", "read"}, {"bob", "data2", "write"}, {"data2_admin", "data2", "read"}, {"data2_admin", "data2", "write"}})
}

func testSaveLoad(t *testing.T, a *Adapter) {
Expand All @@ -73,7 +73,7 @@ func testSaveLoad(t *testing.T, a *Adapter) {
// NewEnforcer() will load the policy automatically.

e := casbin.NewEnforcer("examples/rbac_model.conf", a)
testGetPolicy(t, e, [][]string{{"alice", "data1", "read"}, {"bob", "data2", "write"}, {"data2_admin", "data2", "read"}, {"data2_admin", "data2", "write"}, {"alice", "data", "1", "2", "3", "read"}})
testGetPolicy(t, e, [][]string{{"alice", "data1", "read"}, {"bob", "data2", "write"}, {"data2_admin", "data2", "read"}, {"data2_admin", "data2", "write"}})
}

func initAdapter(t *testing.T, driverName string, dataSourceName string, dbSpecified ...bool) *Adapter {
Expand Down Expand Up @@ -114,7 +114,7 @@ func testAutoSave(t *testing.T, a *Adapter) {
// Reload the policy from the storage to see the effect.
e.LoadPolicy()
// This is still the original policy.
testGetPolicy(t, e, [][]string{{"alice", "data1", "read"}, {"bob", "data2", "write"}, {"data2_admin", "data2", "read"}, {"data2_admin", "data2", "write"}, {"alice", "data", "1", "2", "3", "read"}})
testGetPolicy(t, e, [][]string{{"alice", "data1", "read"}, {"bob", "data2", "write"}, {"data2_admin", "data2", "read"}, {"data2_admin", "data2", "write"}})

// Now we enable the AutoSave.
e.EnableAutoSave(true)
Expand All @@ -125,18 +125,18 @@ func testAutoSave(t *testing.T, a *Adapter) {
// Reload the policy from the storage to see the effect.
e.LoadPolicy()
// The policy has a new rule: {"alice", "data1", "write"}.
testGetPolicy(t, e, [][]string{{"alice", "data1", "read"}, {"bob", "data2", "write"}, {"data2_admin", "data2", "read"}, {"data2_admin", "data2", "write"}, {"alice", "data", "1", "2", "3", "read"}, {"alice", "data1", "write"}})
testGetPolicy(t, e, [][]string{{"alice", "data1", "read"}, {"bob", "data2", "write"}, {"data2_admin", "data2", "read"}, {"data2_admin", "data2", "write"}, {"alice", "data1", "write"}})

// Remove the added rule.
e.RemovePolicy("alice", "data1", "write")
e.LoadPolicy()
testGetPolicy(t, e, [][]string{{"alice", "data1", "read"}, {"bob", "data2", "write"}, {"data2_admin", "data2", "read"}, {"data2_admin", "data2", "write"}, {"alice", "data", "1", "2", "3", "read"}})
testGetPolicy(t, e, [][]string{{"alice", "data1", "read"}, {"bob", "data2", "write"}, {"data2_admin", "data2", "read"}, {"data2_admin", "data2", "write"}})

// Remove "data2_admin" related policy rules via a filter.
// Two rules: {"data2_admin", "data2", "read"}, {"data2_admin", "data2", "write"} are deleted.
e.RemoveFilteredPolicy(0, "data2_admin")
e.LoadPolicy()
testGetPolicy(t, e, [][]string{{"alice", "data1", "read"}, {"bob", "data2", "write"}, {"alice", "data", "1", "2", "3", "read"}})
testGetPolicy(t, e, [][]string{{"alice", "data1", "read"}, {"bob", "data2", "write"}})
}

func testFilteredPolicy(t *testing.T, a *Adapter) {
Expand All @@ -147,7 +147,7 @@ func testFilteredPolicy(t *testing.T, a *Adapter) {

// Load only alice's policies
assert.Nil(t, e.LoadFilteredPolicy(Filter{V0: []string{"alice"}}))
testGetPolicy(t, e, [][]string{{"alice", "data1", "read"}, {"alice", "data", "1", "2", "3", "read"}})
testGetPolicy(t, e, [][]string{{"alice", "data1", "read"}})

// Load only bob's policies
assert.Nil(t, e.LoadFilteredPolicy(Filter{V0: []string{"bob"}}))
Expand All @@ -159,11 +159,7 @@ func testFilteredPolicy(t *testing.T, a *Adapter) {

// Load policies for alice and bob
assert.Nil(t, e.LoadFilteredPolicy(Filter{V0: []string{"alice", "bob"}}))
testGetPolicy(t, e, [][]string{{"alice", "data1", "read"}, {"bob", "data2", "write"}, {"alice", "data", "1", "2", "3", "read"}})

// Load alice's policy with all five attributes
assert.Nil(t, e.LoadFilteredPolicy(Filter{PType: []string{"p"}, V0: []string{"alice"}, V1: []string{"data"}, V2: []string{"1"}, V3: []string{"2"}, V4: []string{"3"}, V5: []string{"read"}}))
testGetPolicy(t, e, [][]string{{"alice", "data", "1", "2", "3", "read"}})
testGetPolicy(t, e, [][]string{{"alice", "data1", "read"}, {"bob", "data2", "write"}})
}

func TestAdapters(t *testing.T) {
Expand Down
1 change: 0 additions & 1 deletion examples/rbac_policy.csv
Original file line number Diff line number Diff line change
Expand Up @@ -2,5 +2,4 @@ p, alice, data1, read
p, bob, data2, write
p, data2_admin, data2, read
p, data2_admin, data2, write
p, alice, data, 1, 2, 3, read
g, alice, data2_admin

0 comments on commit 9d922cc

Please sign in to comment.