Skip to content

Commit 8d64879

Browse files
authored
chore: upgrade casbin and ent-adapter (#1581)
Signed-off-by: Miguel Martinez <[email protected]>
1 parent d287787 commit 8d64879

24 files changed

+175
-252
lines changed

app/controlplane/pkg/authz/authz.go

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -258,7 +258,10 @@ func (e *Enforcer) ClearPolicies(sub *SubjectAPIToken) error {
258258
}
259259

260260
// Get all the policies for the subject
261-
policies := e.GetFilteredPolicy(0, sub.String())
261+
policies, err := e.GetFilteredPolicy(0, sub.String())
262+
if err != nil {
263+
return fmt.Errorf("failed to get policies: %w", err)
264+
}
262265

263266
if _, err := e.Enforcer.RemovePolicies(policies); err != nil {
264267
return fmt.Errorf("failed to remove policies: %w", err)
@@ -362,7 +365,12 @@ func doSync(e *Enforcer, rolesMap map[Role][]*Policy) error {
362365

363366
// Delete all the policies that are not in the roles map
364367
// 1 - load the policies from the enforcer DB
365-
for _, gotPolicies := range e.GetPolicy() {
368+
policies, err := e.GetPolicy()
369+
if err != nil {
370+
return fmt.Errorf("failed to get policies: %w", err)
371+
}
372+
373+
for _, gotPolicies := range policies {
366374
role := gotPolicies[0]
367375
policy := &Policy{Resource: gotPolicies[1], Action: gotPolicies[2]}
368376

@@ -395,7 +403,7 @@ func doSync(e *Enforcer, rolesMap map[Role][]*Policy) error {
395403
}
396404

397405
// To finish we make sure that the admin role inherit all the policies from the viewer role
398-
_, err := e.AddGroupingPolicy(string(RoleAdmin), string(RoleViewer))
406+
_, err = e.AddGroupingPolicy(string(RoleAdmin), string(RoleViewer))
399407
if err != nil {
400408
return fmt.Errorf("failed to add grouping policy: %w", err)
401409
}

app/controlplane/pkg/authz/authz_integration_test.go

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -47,12 +47,14 @@ func TestMultiReplicaPropagation(t *testing.T) {
4747
require.NoError(t, err)
4848

4949
// Make sure it propagates to the other one
50-
got := enforcerA.GetFilteredPolicy(0, sub.String())
50+
got, err := enforcerA.GetFilteredPolicy(0, sub.String())
51+
require.NoError(t, err)
5152
assert.Len(t, got, 2)
5253

5354
// it might take a bit for the policies to propagate to the other enforcer
5455
err = fnWithRetry(func() error {
55-
got = enforcerB.GetFilteredPolicy(0, sub.String())
56+
got, err = enforcerB.GetFilteredPolicy(0, sub.String())
57+
require.NoError(t, err)
5658
if len(got) == 2 {
5759
return nil
5860
}
@@ -63,19 +65,24 @@ func TestMultiReplicaPropagation(t *testing.T) {
6365

6466
// Then delete them from the second one and check propagation again
6567
require.NoError(t, enforcerB.ClearPolicies(sub))
66-
assert.Len(t, enforcerB.GetFilteredPolicy(0, sub.String()), 0)
68+
got, err = enforcerB.GetFilteredPolicy(0, sub.String())
69+
require.NoError(t, err)
70+
assert.Len(t, got, 0)
6771

6872
// Make sure it propagates to the other one
6973
err = fnWithRetry(func() error {
70-
got = enforcerA.GetFilteredPolicy(0, sub.String())
74+
got, err = enforcerA.GetFilteredPolicy(0, sub.String())
75+
require.NoError(t, err)
7176
if len(got) == 0 {
7277
return nil
7378
}
7479

7580
return fmt.Errorf("policies not propagated yet")
7681
})
7782
require.NoError(t, err)
78-
assert.Len(t, enforcerA.GetFilteredPolicy(0, sub.String()), 0)
83+
got, err = enforcerA.GetFilteredPolicy(0, sub.String())
84+
require.NoError(t, err)
85+
assert.Len(t, got, 0)
7986
}
8087

8188
func fnWithRetry(f func() error) error {

app/controlplane/pkg/authz/authz_test.go

Lines changed: 25 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -91,11 +91,13 @@ func TestAddPolicies(t *testing.T) {
9191
require.NoError(t, err)
9292

9393
for _, p := range tc.policies {
94-
ok := enforcer.HasPolicy(tc.subject.String(), p.Resource, p.Action)
94+
ok, err := enforcer.HasPolicy(tc.subject.String(), p.Resource, p.Action)
95+
assert.NoError(t, err)
9596
assert.True(t, ok, fmt.Sprintf("policy %s:%s not found", p.Resource, p.Action))
9697
}
9798

98-
gotLength := enforcer.GetFilteredPolicy(0, tc.subject.String())
99+
gotLength, err := enforcer.GetFilteredPolicy(0, tc.subject.String())
100+
assert.NoError(t, err)
99101
assert.Len(t, gotLength, tc.wantNumberPolicies)
100102
})
101103
}
@@ -113,15 +115,17 @@ func TestAddPoliciesDuplication(t *testing.T) {
113115

114116
err := enforcer.AddPolicies(sub, want...)
115117
require.NoError(t, err)
116-
got := enforcer.GetFilteredPolicy(0, sub.String())
118+
got, err := enforcer.GetFilteredPolicy(0, sub.String())
119+
require.NoError(t, err)
117120
assert.Len(t, got, 2)
118121

119122
// Update the list of policies we want to add by appending an extra one
120123
want = append(want, PolicyWorkflowContractUpdate)
121124
// AddPolicies only add the policies that are not already present preventing duplication
122125
err = enforcer.AddPolicies(sub, want...)
123126
assert.NoError(t, err)
124-
got = enforcer.GetFilteredPolicy(0, sub.String())
127+
got, err = enforcer.GetFilteredPolicy(0, sub.String())
128+
assert.NoError(t, err)
125129
assert.Len(t, got, 3)
126130
}
127131

@@ -145,7 +149,8 @@ func TestSyncRBACRoles(t *testing.T) {
145149

146150
// Make sure we are adding all the policies for the listed roles
147151
for r, policies := range rolesMap {
148-
got := e.GetFilteredPolicy(0, string(r))
152+
got, err := e.GetFilteredPolicy(0, string(r))
153+
assert.NoError(t, err)
149154
assert.Len(t, got, len(policies))
150155
}
151156

@@ -178,7 +183,9 @@ func TestDoSync(t *testing.T) {
178183
// load custom policies
179184
err := doSync(e, policiesM)
180185
assert.NoError(t, err)
181-
assert.Len(t, e.GetPolicy(), 3)
186+
got, err := e.GetPolicy()
187+
assert.NoError(t, err)
188+
assert.Len(t, got, 3)
182189

183190
// update stored map removing one item of one role
184191
policiesM = map[Role][]*Policy{
@@ -192,7 +199,9 @@ func TestDoSync(t *testing.T) {
192199

193200
err = doSync(e, policiesM)
194201
assert.NoError(t, err)
195-
assert.Len(t, e.GetPolicy(), 2)
202+
got, err = e.GetPolicy()
203+
assert.NoError(t, err)
204+
assert.Len(t, got, 2)
196205

197206
// or deleting a whole section
198207
policiesM = map[Role][]*Policy{
@@ -203,7 +212,9 @@ func TestDoSync(t *testing.T) {
203212

204213
err = doSync(e, policiesM)
205214
assert.NoError(t, err)
206-
assert.Len(t, e.GetPolicy(), 1)
215+
got, err = e.GetPolicy()
216+
assert.NoError(t, err)
217+
assert.Len(t, got, 1)
207218
}
208219

209220
func TestClearPolicies(t *testing.T) {
@@ -223,17 +234,20 @@ func TestClearPolicies(t *testing.T) {
223234
err = enforcer.AddPolicies(sub2, want...)
224235
require.NoError(t, err)
225236
// Each have 2 items
226-
got := enforcer.GetFilteredPolicy(0, sub.String())
237+
got, err := enforcer.GetFilteredPolicy(0, sub.String())
238+
require.NoError(t, err)
227239
assert.Len(t, got, 2)
228240

229241
// Clear all the policies for the subject
230242
err = enforcer.ClearPolicies(sub)
231243
assert.NoError(t, err)
232244
// there should be no policies left for this user
233-
got = enforcer.GetFilteredPolicy(0, sub.String())
245+
got, err = enforcer.GetFilteredPolicy(0, sub.String())
246+
require.NoError(t, err)
234247
assert.Len(t, got, 0)
235248
// but the other user should still have 2
236-
got = enforcer.GetFilteredPolicy(0, sub2.String())
249+
got, err = enforcer.GetFilteredPolicy(0, sub2.String())
250+
require.NoError(t, err)
237251
assert.Len(t, got, 2)
238252
}
239253

app/controlplane/pkg/biz/apitoken_integration_test.go

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -121,12 +121,14 @@ func (s *apiTokenTestSuite) TestAuthzPolicies() {
121121

122122
subject := (&authz.SubjectAPIToken{ID: token.ID.String()}).String()
123123
// load the policies associated with the token from the global enforcer
124-
policies := s.Enforcer.GetFilteredPolicy(0, subject)
124+
policies, err := s.Enforcer.GetFilteredPolicy(0, subject)
125+
s.Require().NoError(err)
125126

126127
// Check that only default policies are loaded
127128
s.Len(policies, len(s.APIToken.DefaultAuthzPolicies))
128129
for _, p := range s.APIToken.DefaultAuthzPolicies {
129-
ok := s.Enforcer.HasPolicy(subject, p.Resource, p.Action)
130+
ok, err := s.Enforcer.HasPolicy(subject, p.Resource, p.Action)
131+
s.NoError(err)
130132
s.True(ok, fmt.Sprintf("policy %s:%s not found", p.Resource, p.Action))
131133
}
132134
}
@@ -155,12 +157,14 @@ func (s *apiTokenTestSuite) TestRevoke() {
155157
s.Run("the revoked token also get its policies cleared", func() {
156158
sub := (&authz.SubjectAPIToken{ID: s.t2.ID.String()}).String()
157159
// It has the default policies
158-
gotPolicies := s.Enforcer.GetFilteredPolicy(0, sub)
160+
gotPolicies, err := s.Enforcer.GetFilteredPolicy(0, sub)
161+
s.NoError(err)
159162
s.Len(gotPolicies, len(s.APIToken.DefaultAuthzPolicies))
160-
err := s.APIToken.Revoke(ctx, s.org.ID, s.t2.ID.String())
163+
err = s.APIToken.Revoke(ctx, s.org.ID, s.t2.ID.String())
161164
s.NoError(err)
162165
// once revoked, the policies are cleared
163-
gotPolicies = s.Enforcer.GetFilteredPolicy(0, sub)
166+
gotPolicies, err = s.Enforcer.GetFilteredPolicy(0, sub)
167+
s.NoError(err)
164168
s.Len(gotPolicies, 0)
165169
})
166170

app/controlplane/pkg/data/ent/apitoken_query.go

Lines changed: 3 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

app/controlplane/pkg/data/ent/casbackend_query.go

Lines changed: 3 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

app/controlplane/pkg/data/ent/casmapping_query.go

Lines changed: 3 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

app/controlplane/pkg/data/ent/integration_query.go

Lines changed: 3 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

app/controlplane/pkg/data/ent/integrationattachment_query.go

Lines changed: 3 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

app/controlplane/pkg/data/ent/membership_query.go

Lines changed: 3 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)