Skip to content

Commit

Permalink
Merge 7877bfd into 150a65a
Browse files Browse the repository at this point in the history
  • Loading branch information
peterbourgon committed Aug 7, 2019
2 parents 150a65a + 7877bfd commit bfaaf21
Show file tree
Hide file tree
Showing 3 changed files with 20 additions and 10 deletions.
11 changes: 7 additions & 4 deletions .build.yml
Original file line number Diff line number Diff line change
@@ -1,15 +1,18 @@
image: debian/stable
packages:
- wget
sources:
- https://github.com/go-kit/kit
tasks:
- go_toolchain: |
wget -q https://dl.google.com/go/go1.12.6.linux-amd64.tar.gz
sudo tar -C /usr/local -xzf go1.12.6.linux-amd64.tar.gz
go_version="$(wget -q -O- https://golang.org/VERSION?m=text)"
wget -q https://dl.google.com/go/$go_version.linux-amd64.tar.gz
sudo tar -C /usr/local -xzf $go_version.linux-amd64.tar.gz
sudo ln -s /usr/local/go/bin/go /usr/bin/go
go env
- dependencies: |
mkdir -p $HOME/go/src/github.com/go-kit
mv kit $HOME/go/src/github.com/go-kit
mkdir -p $(go env GOPATH)/src/github.com/go-kit
mv kit $(go env GOPATH)/src/github.com/go-kit
go get -t github.com/go-kit/kit/...
- test: |
go test -race -v github.com/go-kit/kit/...
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 bfaaf21

Please sign in to comment.