Skip to content

Commit d21b0aa

Browse files
committed
fix: change is_admin from array to function
1 parent a5313d3 commit d21b0aa

File tree

4 files changed

+11
-7
lines changed

4 files changed

+11
-7
lines changed

policy/diamond/policy/admin/admin.rego

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,11 @@ package diamond.policy.admin
33
import data.diamond.policy.token
44
import rego.v1
55

6-
is_admin[subject] := "super_admin" in data.diamond.data.subjects[subject].permissions
6+
default is_admin(_) := false
7+
8+
is_admin(subject) if {
9+
"super_admin" in data.diamond.data.subjects[subject].permissions
10+
}
711

812
beamline_admin_for_subject[subject_name] contains beamline if {
913
some subject_name, subject in data.diamond.data.subjects
@@ -13,7 +17,7 @@ beamline_admin_for_subject[subject_name] contains beamline if {
1317
some beamline in role_beamlines
1418
}
1519

16-
admin := is_admin[token.claims.fedid] # regal ignore:rule-name-repeats-package
20+
admin := is_admin(token.claims.fedid) # regal ignore:rule-name-repeats-package
1721

1822
beamline_admin := input.beamline in object.get(beamline_admin_for_subject, token.claims.fedid, [])
1923

policy/diamond/policy/admin/admin_test.rego

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ diamond_data := {
3333
}
3434

3535
test_is_admin_for_admin if {
36-
admin.is_admin.carol with data.diamond.data as diamond_data
36+
admin.is_admin("carol") with data.diamond.data as diamond_data
3737
}
3838

3939
test_beamline_admin_for_subject_for_beamline_admin if {
@@ -45,11 +45,11 @@ test_beamlines_admin_for_subject_for_group_admin if {
4545
}
4646

4747
test_is_admin_for_non_admin if {
48-
not admin.is_admin.alice with data.diamond.data as diamond_data
48+
not admin.is_admin("alice") with data.diamond.data as diamond_data
4949
}
5050

5151
test_is_admin_for_beamline_admin_not_admin if {
52-
not admin.is_admin.bob with data.diamond.data as diamond_data
52+
not admin.is_admin("bob") with data.diamond.data as diamond_data
5353
}
5454

5555
test_beamline_admin_for_subject_for_non_beamline_admin if {

policy/diamond/policy/proposal/proposal.rego

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ on_proposal(subject, proposal_number) if {
1313
default access_proposal(_, _) := false
1414

1515
# Allow if subject has super_admin permission
16-
access_proposal(subject, proposal_number) if admin.is_admin[subject] # regal ignore:external-reference
16+
access_proposal(subject, proposal_number) if admin.is_admin(subject) # regal ignore:external-reference
1717

1818
# Allow if subject is on proposal
1919
access_proposal(subject, proposal_number) if on_proposal(subject, proposal_number)

policy/diamond/policy/session/session.rego

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ on_session(subject, proposal_number, visit_number) if {
2424
default access_session(_, _, _) := false
2525

2626
# Allow if subject has super_admin permission
27-
access_session(subject, proposal_number, visit_number) if admin.is_admin[subject] # regal ignore:external-reference
27+
access_session(subject, proposal_number, visit_number) if admin.is_admin(subject) # regal ignore:external-reference
2828

2929
# Allow if subject is admin for beamline containing session
3030
access_session(subject, proposal_number, visit_number) if {

0 commit comments

Comments
 (0)