aboutsummaryrefslogtreecommitdiff
path: root/lib/permissions.nom
diff options
context:
space:
mode:
authorBruce Hill <bitbucket@bruce-hill.com>2017-09-29 22:04:03 -0700
committerBruce Hill <bitbucket@bruce-hill.com>2017-09-29 22:04:03 -0700
commite2bbbfe1611f12b33692af175d661fa25b2cc616 (patch)
tree1554068e8702612cbd86c4898059babe6b3e96dd /lib/permissions.nom
parent723a4c38710e24ef82c2142d126e6cec48091494 (diff)
More stuff is working more better.
Diffstat (limited to 'lib/permissions.nom')
-rw-r--r--lib/permissions.nom17
1 files changed, 13 insertions, 4 deletions
diff --git a/lib/permissions.nom b/lib/permissions.nom
index 8d8b56d..a65fb67 100644
--- a/lib/permissions.nom
+++ b/lib/permissions.nom
@@ -4,17 +4,24 @@ require "lib/operators.nom"
require "lib/collections.nom"
# Permission functions
+rule (standardize rules %rules) =:
+ if (lua expr "type(vars.rules) == 'string'"): %rules = [%rules]
+ (nomsu "get_stub" [%]) for all %rules
rule (restrict %rules to within %elite-rules) =:
+ %rules =: standardize rules %rules
+ %elite-rules =: standardize rules %elite-rules
say "Restricting \(%rules) to within \(%elite-rules)"
for all (flatten [%elite-rules, %rules]):
assert ((nomsu's "defs") has key %) "Undefined function: \(%)"
- for all %rules:
+ for %rule in %rules:
assert (nomsu "check_permission" [%]) ".."
|You do not have permission to restrict permissions for function: \(%)
- ((nomsu) ->* ["defs",%,"whiteset"]) =:
- dict: [%, yes] for %it in %elite-rules
+ ((nomsu) ->* ["defs",%rule,"whiteset"]) =:
+ dict: [%, yes] for all %elite-rules
rule (allow %elite-rules to use %rules) =:
+ %rules =: standardize rules %rules
+ %elite-rules =: standardize rules %elite-rules
say "Allowing \(%elite-rules) to use \(%rules)"
for all (flatten [%elite-rules, %rules]):
assert ((nomsu's "defs") has key %) "Undefined function: \(%)"
@@ -26,12 +33,14 @@ rule (allow %elite-rules to use %rules) =:
for all %elite-rules: %whiteset -> % = (yes)
rule (forbid %pleb-rules to use %rules) =:
+ %rules =: standardize rules %rules
+ %pleb-rules =: standardize rules %pleb-rules
say "Forbidding \(%pleb-rules) to use \(%rules)"
for all (flatten [%pleb-rules, %used]):
assert ((nomsu's "defs") has key %) "Undefined function: \(%)"
for all %rules:
assert (nomsu "check_permission" [%]) ".."
- |You do not have permission to grant permissions for function: \%it\
+ |You do not have permission to grant permissions for function: \(%)
%whiteset =: (nomsu) ->* ["defs",%,"whiteset"]
assert %whiteset ".."
|Cannot individually restrict permissions for \(%) because it is currently