Skip to content

Commit

Permalink
auth/casbin: update to accommodate change in dep
Browse files Browse the repository at this point in the history
  • Loading branch information
peterbourgon committed Aug 7, 2019
1 parent d2f37af commit a183878
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 6 deletions.
16 changes: 11 additions & 5 deletions auth/casbin/middleware.go
Original file line number Diff line number Diff line change
Expand Up @@ -48,17 +48,23 @@ func NewEnforcer(
subject string, object interface{}, action string,
) endpoint.Middleware {
return func(next endpoint.Endpoint) endpoint.Endpoint {
return func(ctx context.Context, request interface{}) (
response interface{}, err error,
) {
return func(ctx context.Context, request interface{}) (response interface{}, err error) {
casbinModel := ctx.Value(CasbinModelContextKey)
casbinPolicy := ctx.Value(CasbinPolicyContextKey)
enforcer, err := stdcasbin.NewEnforcer(casbinModel, casbinPolicy)
if err != nil {
return nil, err
}

enforcer := stdcasbin.NewEnforcer(casbinModel, casbinPolicy)
ctx = context.WithValue(ctx, CasbinEnforcerContextKey, enforcer)
if !enforcer.Enforce(subject, object, action) {
ok, err := enforcer.Enforce(subject, object, action)
if err != nil {
return nil, err
}
if !ok {
return nil, ErrUnauthorized
}

return next(ctx, request)
}
}
Expand Down
3 changes: 2 additions & 1 deletion auth/casbin/middleware_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,13 +5,14 @@ import (
"testing"

stdcasbin "github.com/casbin/casbin"
"github.com/casbin/casbin/model"
fileadapter "github.com/casbin/casbin/persist/file-adapter"
)

func TestStructBaseContext(t *testing.T) {
e := func(ctx context.Context, i interface{}) (interface{}, error) { return ctx, nil }

m := stdcasbin.NewModel()
m := model.NewModel()
m.AddDef("r", "r", "sub, obj, act")
m.AddDef("p", "p", "sub, obj, act")
m.AddDef("e", "e", "some(where (p.eft == allow))")
Expand Down

0 comments on commit a183878

Please sign in to comment.