From 0e54af178e362deaf66fe5d98773254ed7a1dfa1 Mon Sep 17 00:00:00 2001 From: gamab Date: Fri, 23 Sep 2022 14:28:40 +0200 Subject: [PATCH 1/2] Fix: Handle error no resolver found --- .../accesscontrol/ossaccesscontrol/ossaccesscontrol.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/pkg/services/accesscontrol/ossaccesscontrol/ossaccesscontrol.go b/pkg/services/accesscontrol/ossaccesscontrol/ossaccesscontrol.go index 7cc485b2b24f..dfb559bdf47c 100644 --- a/pkg/services/accesscontrol/ossaccesscontrol/ossaccesscontrol.go +++ b/pkg/services/accesscontrol/ossaccesscontrol/ossaccesscontrol.go @@ -2,6 +2,7 @@ package ossaccesscontrol import ( "context" + "errors" "github.com/grafana/grafana/pkg/api/routing" "github.com/grafana/grafana/pkg/infra/log" @@ -101,6 +102,9 @@ func (ac *OSSAccessControlService) Evaluate(ctx context.Context, user *models.Si resolvedEvaluator, err := evaluator.MutateScopes(ctx, ac.scopeResolvers.GetScopeAttributeMutator(user.OrgId)) if err != nil { + if errors.Is(err, accesscontrol.ErrResolverNotFound) { + return false, nil + } return false, err } return resolvedEvaluator.Evaluate(user.Permissions[user.OrgId]), nil From 2e9d75947728c5353270e1c14ad499cc8a916148 Mon Sep 17 00:00:00 2001 From: gamab Date: Fri, 23 Sep 2022 16:31:25 +0200 Subject: [PATCH 2/2] Fix test not to expect the error --- .../accesscontrol/ossaccesscontrol/ossaccesscontrol_test.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/services/accesscontrol/ossaccesscontrol/ossaccesscontrol_test.go b/pkg/services/accesscontrol/ossaccesscontrol/ossaccesscontrol_test.go index de8ae58bf995..efb0910aaa02 100644 --- a/pkg/services/accesscontrol/ossaccesscontrol/ossaccesscontrol_test.go +++ b/pkg/services/accesscontrol/ossaccesscontrol/ossaccesscontrol_test.go @@ -87,7 +87,7 @@ func TestEvaluatingPermissions(t *testing.T) { {evaluator: accesscontrol.EvalPermission(accesscontrol.ActionUsersCreate, accesscontrol.ScopeGlobalUsersAll)}, }, evalResult: false, - expectedErr: accesscontrol.ErrResolverNotFound, + expectedErr: nil, }, } for _, tc := range testCases {