3 [ "$include_acl" ] && return 0
6 # ACL_OVERRIDE="${ACL_OVERRIDE:-Admin:read,write}"
7 ACL_DEFAULT="${ACL_DEFAULT:-Known:read,write${BR}All:read}"
13 local path="${1:-${PATH_INFO}}"
14 # Get directory part of PATH_INFO
15 local path="${path%/*}/./"
16 local pagefile head acl
18 if [ "$acl_cachepath" = "$path" ]; then
19 printf '%s\n' "$ACL_OVERRIDE" "$acl_collection" "$ACL_DEFAULT"
26 printf '%s\n' "$ACL_OVERRIDE"
29 [ "$path" = / ] && break
32 # Do not use `mdfile` function here because of specialties
33 # in translation handler (`handlers/10_translations.sh`)
34 if [ -f "$_DATA/pages/$path/#page.md" ]; then
35 pagefile="$_DATA/pages/$path/#page.md"
36 elif [ -f "$_EXEC/pages/$path/#page.md" ]; then
37 pagefile="$_EXEC/pages/$path/#page.md"
44 /^%acl([\t ]+.*)?$/bACL;
51 /^(%[ \t]+|%acl[ \t]+|[ \t]+)[^ \t\r]+$/bACL;
52 /^(%[ \t]*|%acl[ \t]*)$/bACL;
56 acl_collection="${acl_collection}${acl}${BR}"
59 printf '%s\n' "$ACL_DEFAULT"
63 local page="${1:-${PATH_INFO}}"
68 read|*,read,*|read,*|*,read)
69 acl="${acl%%:*}:read";;
70 *) acl="${acl%%:*}:";;
72 [ "$USER_NAME" ] && case $acl in
73 "Known:read") return 0;;
75 "+Known:read") return 0;;
76 "-Known:read") return 1;;
77 "@${USER_NAME}:read") return 0;;
78 "@${USER_NAME}:") return 1;;
79 "+@{$USER_NAME}:read") return 0;;
80 "-@{$USER_NAME}:read") return 1;;
83 "All:read") return 0;;
85 "+All:read") return 0;;
86 "-All:read") return 1;;
89 $(acl_collect "$page")
95 local page="${1:-${PATH_INFO}}"
100 write|*,write,*|write,*|*,write)
101 acl="${acl%%:*}:write";;
102 *) acl="${acl%%:*}:";;
104 [ "$USER_NAME" ] && case ${acl} in
105 "Known:write") return 0;;
107 "+Known:write") return 0;;
108 "-Known:write") return 1;;
109 "@${USER_NAME}:write") return 0;;
110 "@${USER_NAME}:") return 1;;
111 "+@{$USER_NAME}:write") return 0;;
112 "-@{$USER_NAME}:write") return 1;;
115 "All:write") return 0;;
117 "+All:write") return 0;;
118 "-All:write") return 1;;
121 $(acl_collect "$page")