summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornsensfel <SpamShield0@noot-noot.org>2018-07-11 18:02:26 +0200
committernsensfel <SpamShield0@noot-noot.org>2018-07-11 18:02:26 +0200
commitacb9dd3220a3edcac93aa11d1d74d008e2fb23ed (patch)
tree98b45af3f7eb9c7d812ed33a07e6a0f665a7a8cd /src/shared/struct/shr_db_user.erl
parentfde827cba1ff3d889135c74ee1978098465fd200 (diff)
"sh_" -> "shr_".
Diffstat (limited to 'src/shared/struct/shr_db_user.erl')
-rw-r--r--src/shared/struct/shr_db_user.erl31
1 files changed, 31 insertions, 0 deletions
diff --git a/src/shared/struct/shr_db_user.erl b/src/shared/struct/shr_db_user.erl
new file mode 100644
index 0000000..01840e2
--- /dev/null
+++ b/src/shared/struct/shr_db_user.erl
@@ -0,0 +1,31 @@
+-module(shr_db_user).
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% TYPES %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+-type db_named_user() :: {'user', any()}.
+-type db_user() :: (db_named_user() | 'admin' | 'any').
+-type db_permission() :: (list(db_named_user()) | 'any').
+
+
+-type user() :: db_user().
+-type permission() :: db_permission().
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% EXPORTS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+-export_type([user/0, permission/0]).
+
+-export([can_access/2]).
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% LOCAL FUNCTIONS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% EXPORTED FUNCTIONS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+-spec can_access (permission(), user()) -> boolean().
+can_access (_, admin) -> true;
+can_access (any, _) -> true;
+can_access (List, {'user', User}) ->
+ lists:member(User, List).