Skip to content

Commit 0e9837b

Browse files
committed
fix: change is_admin from array to function
1 parent dc9ab8c commit 0e9837b

File tree

6 files changed

+12
-10
lines changed

6 files changed

+12
-10
lines changed

.devcontainer/Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
FROM docker.io/library/rust:1.84.1-bookworm
1+
FROM docker.io/library/rust:1.91.1-bookworm
22

33
RUN rustup component add rustfmt clippy
44

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 {

regal.yaml

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,6 @@ rules:
22
idiomatic:
33
no-defined-entrypoint:
44
level: ignore
5-
use-some-for-output-vars:
6-
level: ignore
75

86
imports:
97
unresolved-reference:

0 commit comments

Comments
 (0)