Skip to content

Commit 9c5bdf3

Browse files
authored
feat: replace ioutils.ReadFile functions by os.ReadFile due to deprecation (#114)
* add unit test for GetDomains function * fix: remove ioutils.ReadFile function after deprecation Use os package version of the function, as ioutils implementation was deprecated. * fix: adds context.TODO to avoid passing nil context adds context.TODO to avoid passing nil context
1 parent 138d465 commit 9c5bdf3

5 files changed

Lines changed: 45 additions & 6 deletions

File tree

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
[request_definition]
2+
r = sub, dom, obj, act
3+
4+
[policy_definition]
5+
p = sub, dom, obj, act
6+
7+
[role_definition]
8+
g = _, _, _
9+
10+
[policy_effect]
11+
e = some(where (p.eft == allow))
12+
13+
[matchers]
14+
m = g(r.sub, p.sub, r.dom) && r.dom == p.dom && r.obj == p.obj && r.act == p.act
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
p, admin, domain1, data1, read
2+
p, admin, domain1, data1, write
3+
p, admin, domain2, data2, read
4+
p, admin, domain2, data2, write
5+
g, alice, admin, domain1
6+
g, bob, admin, domain2

server/enforcer.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ package server
1717
import (
1818
"context"
1919
"errors"
20-
"io/ioutil"
20+
"os"
2121
"strings"
2222
"sync"
2323

@@ -98,7 +98,7 @@ func (s *Server) NewEnforcer(ctx context.Context, in *pb.NewEnforcerRequest) (*p
9898

9999
if in.ModelText == "" {
100100
cfg := LoadConfiguration(getLocalConfigPath())
101-
data, err := ioutil.ReadFile(cfg.Enforcer)
101+
data, err := os.ReadFile(cfg.Enforcer)
102102
if err != nil {
103103
return &pb.NewEnforcerReply{Handler: 0}, err
104104
}

server/model_test.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ package server
1616

1717
import (
1818
"context"
19-
"io/ioutil"
19+
"os"
2020
"testing"
2121

2222
pb "github.com/casbin/casbin-server/proto"
@@ -54,7 +54,7 @@ func TestRBACModel(t *testing.T) {
5454
t.Error(err)
5555
}
5656

57-
modelText, err := ioutil.ReadFile("../examples/rbac_model.conf")
57+
modelText, err := os.ReadFile("../examples/rbac_model.conf")
5858
if err != nil {
5959
t.Error(err)
6060
}
@@ -85,7 +85,7 @@ func TestABACModel(t *testing.T) {
8585
s := NewServer()
8686
ctx := context.Background()
8787

88-
modelText, err := ioutil.ReadFile("../examples/abac_model.conf")
88+
modelText, err := os.ReadFile("../examples/abac_model.conf")
8989
if err != nil {
9090
t.Error(err)
9191
}
@@ -117,7 +117,7 @@ func TestABACModel(t *testing.T) {
117117
func testModel(t *testing.T, s *Server, enforcerHandler int32, sub string, obj string, act string, res bool) {
118118
t.Helper()
119119

120-
reply, err := s.Enforce(nil, &pb.EnforceRequest{EnforcerHandler: enforcerHandler, Params: []string{sub, obj, act}})
120+
reply, err := s.Enforce(context.TODO(), &pb.EnforceRequest{EnforcerHandler: enforcerHandler, Params: []string{sub, obj, act}})
121121
assert.NoError(t, err)
122122

123123
if reply.Res != res {

server/rbac_api_test.go

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -239,3 +239,22 @@ func TestPermissionAPI(t *testing.T) {
239239
testEnforceWithoutUsers(t, e, "bob", "read", false)
240240
testEnforceWithoutUsers(t, e, "bob", "write", false)
241241
}
242+
243+
func testGetDomains(t *testing.T, e *testEngine, name string, res []string) {
244+
t.Helper()
245+
reply, err := e.s.GetDomains(e.ctx, &pb.UserRoleRequest{EnforcerHandler: e.h, User: name})
246+
assert.NoError(t, err)
247+
248+
t.Log("Domains for ", name, ": ", reply.Array)
249+
250+
if !util.SetEquals(res, reply.Array) {
251+
t.Error("Domains for ", name, ": ", reply.Array, ", supposed to be ", res)
252+
}
253+
}
254+
255+
func TestRoleDomainAPI(t *testing.T) {
256+
e := newTestEngine(t, "file", "../examples/rbac_with_domains_policy.csv", "../examples/rbac_with_domains_model.conf")
257+
258+
testGetDomains(t, e, "alice", []string{"domain1"})
259+
testGetDomains(t, e, "bob", []string{"domain2"})
260+
}

0 commit comments

Comments
 (0)