| summaryrefslogtreecommitdiff |
diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/ataxia_security.erl | 4 | ||||
| -rw-r--r-- | src/ataxic.erl | 15 |
2 files changed, 15 insertions, 4 deletions
diff --git a/src/ataxia_security.erl b/src/ataxia_security.erl index 4088cd4..1ad1e88 100644 --- a/src/ataxia_security.erl +++ b/src/ataxia_security.erl @@ -20,6 +20,7 @@ add_access/2, remove_access/2, allow_only/1, + allow/1, allow_any/0, allow_none/0 ] @@ -45,6 +46,9 @@ remove_access (User, Permission) -> allow_only (User) -> ordsets:add_element(User, ordsets:new()). +-spec allow (list(user())) -> permission(). +allow (Users) -> ordsets:from_list(Users). + -spec allow_any () -> permission(). allow_any () -> ordsets:add_element(any(), ordsets:new()). diff --git a/src/ataxic.erl b/src/ataxic.erl index 6e941c4..2bd8796 100644 --- a/src/ataxic.erl +++ b/src/ataxic.erl @@ -38,6 +38,8 @@ -record(lor, {params :: list(basic())}). -record(neg, {param :: basic()}). +-record(list_cons, {param :: basic()}). + % TODO: list all of the above. -type basic() :: any(). @@ -72,7 +74,8 @@ eq/2, land/1, lor/1, - neg/1 + neg/1, + list_cons/1 ] ). @@ -126,12 +129,13 @@ basic_apply_to (#eq{ p0 = P0, p1 = P1 }, Val) -> basic_apply_to (#land{ params = List }, Val) -> lists:all(fun (E) -> basic_apply_to(E, Val) end, List); - basic_apply_to (#lor{ params = List }, Val) -> lists:any(fun (E) -> basic_apply_to(E, Val) end, List); - basic_apply_to (#neg{ param = V }, Val) -> - not basic_apply_to(V, Val). + not basic_apply_to(V, Val); + +basic_apply_to (#list_cons{ param = V }, Val) -> + [V|Val]. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% EXPORTED FUNCTIONS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -180,6 +184,9 @@ lor (List) -> #lor{ params = List }. neg (V) -> #neg{ param = V }. +-spec list_cons (basic()) -> basic(). +list_cons (V) -> #list_cons{ param = V}. + -spec sequence_meta (list(meta())) -> meta(). sequence_meta (List) -> #mseq{ ops = List }. |


