From 33333941657e35a5d27b4f8640255dea14b1db94 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Toma=C5=BE=20Jerman?= Date: Tue, 17 Nov 2020 16:00:52 +0100 Subject: [PATCH] Small pkg/rbac changes in exposed methods --- pkg/rbac/rule.go | 4 ++-- pkg/rbac/ruleset_utils.go | 10 +++++----- pkg/rbac/ruleset_utils_test.go | 8 ++++---- pkg/rbac/service.go | 11 ++++++----- 4 files changed, 17 insertions(+), 16 deletions(-) diff --git a/pkg/rbac/rule.go b/pkg/rbac/rule.go index 4e793fc95..258644b0a 100644 --- a/pkg/rbac/rule.go +++ b/pkg/rbac/rule.go @@ -21,10 +21,10 @@ const ( Allow Access = 1 // Deny - Operation over a resource is denied - Deny = 0 + Deny Access = 0 // Inherit - Operation over a resource is not defined, inherit - Inherit = -1 + Inherit Access = -1 ) func (r Rule) String() string { diff --git a/pkg/rbac/ruleset_utils.go b/pkg/rbac/ruleset_utils.go index 8372bada0..1f61b06e4 100644 --- a/pkg/rbac/ruleset_utils.go +++ b/pkg/rbac/ruleset_utils.go @@ -2,8 +2,8 @@ package rbac import "github.com/cortezaproject/corteza-server/pkg/slice" -// merge applies new rules (changes) to existing set and mark all changes as dirty -func (set RuleSet) merge(rules ...*Rule) (out RuleSet) { +// Merge applies new rules (changes) to existing set and mark all changes as dirty +func (set RuleSet) Merge(rules ...*Rule) (out RuleSet) { var ( o int olen = len(set) @@ -44,8 +44,8 @@ func (set RuleSet) merge(rules ...*Rule) (out RuleSet) { return } -// dirty returns list of changed (dirty==true) and deleted (Access==Inherit) rules -func (set RuleSet) dirty() (inherited, rest RuleSet) { +// Dirty returns list of changed (Dirty==true) and deleted (Access==Inherit) rules +func (set RuleSet) Dirty() (inherited, rest RuleSet) { inherited, rest = RuleSet{}, RuleSet{} for _, r := range set { @@ -61,7 +61,7 @@ func (set RuleSet) dirty() (inherited, rest RuleSet) { } // reset dirty flag -func (set RuleSet) clear() { +func (set RuleSet) Clear() { _ = set.Walk(func(rule *Rule) error { rule.dirty = false return nil diff --git a/pkg/rbac/ruleset_utils_test.go b/pkg/rbac/ruleset_utils_test.go index 740c6e670..c3bbdcf24 100644 --- a/pkg/rbac/ruleset_utils_test.go +++ b/pkg/rbac/ruleset_utils_test.go @@ -72,12 +72,12 @@ func TestRuleSet_merge(t *testing.T) { for _, sc := range sCases { // Apply changed and get update candidates - mrg := sc.old.merge(sc.new...) - del, upd := mrg.dirty() + mrg := sc.old.Merge(sc.new...) + del, upd := mrg.Dirty() // Clear dirty flag so that we do not confuse DeepEqual - del.clear() - upd.clear() + del.Clear() + upd.Clear() req.Equal(len(sc.del), len(del)) req.Equal(len(sc.upd), len(upd)) diff --git a/pkg/rbac/service.go b/pkg/rbac/service.go index 0cb0271ec..9c04cecca 100644 --- a/pkg/rbac/service.go +++ b/pkg/rbac/service.go @@ -2,11 +2,12 @@ package rbac import ( "context" + "sync" + "time" + "github.com/cortezaproject/corteza-server/pkg/sentry" "github.com/pkg/errors" "go.uber.org/zap" - "sync" - "time" ) type ( @@ -145,7 +146,7 @@ func (svc service) checkRules(wl Whitelist, rules ...*Rule) error { } func (svc *service) grant(rules ...*Rule) { - svc.rules = svc.rules.merge(rules...) + svc.rules = svc.rules.Merge(rules...) } // Watches for changes @@ -205,7 +206,7 @@ func (svc *service) Reload(ctx context.Context) { } func (svc service) flush(ctx context.Context) (err error) { - d, u := svc.rules.dirty() + d, u := svc.rules.Dirty() err = svc.store.DeleteRbacRule(ctx, d...) if err != nil { @@ -217,7 +218,7 @@ func (svc service) flush(ctx context.Context) (err error) { return } - u.clear() + u.Clear() svc.rules = u svc.logger.Debug("flushed rules", zap.Int("updated", len(u)),