local page="$1" title
title="${page%/}"; title="${title##*/}"
+ if [ ! "$(mdfile "$page")" ]; then
+ theme_404
+ return 0
+ elif ! acl_read "$page"; then
+ theme_403
+ return 0
+ fi
+
# Important! Web Server response including newline
printf "%s\r\n" "Content-Type: text/html; charset=utf-8" ""
</head><body id="$(HTML "$page")">
$(theme_header)
<main>
- <ul class="pagemenu">
- <li><a href="[edit]">Edit</a></li>
- <li><a href="[attachment]/">Attachments</a></li>
- </ul>
+ $(acl_write "$page" && printf %s \
+ '<ul class="pagemenu">
+ <li><a href="[edit]">Edit</a></li>
+ <li><a href="[attachment]/">Attachments</a></li>
+ </ul>'
+ )
<article>
- $(wiki "$page" || printf 'Page not found')
+ $(wiki "$page" || printf 'Error while loading page <br> function "wiki" of index.sh returned with an error.')
</article>
</main>
$(theme_footer)
local page="$1" title
title="${page%/}"; title="${title##*/}"
+ if [ ! "$(mdfile "$page")" ]; then
+ theme_404
+ return 0
+ elif ! acl_write "$page"; then
+ theme_403
+ return 0
+ fi
+
# Important! Web Server response including newline
printf "%s\r\n" "Content-Type: text/html; charset=utf-8" ""
}
theme_login(){
- theme_page '[wiki]/login/'
+ theme_page '/[wiki]/login/'
}
theme_register(){
- theme_page '[wiki]/register/'
+ theme_page '/[wiki]/register/'
+}
+
+theme_403(){
+ printf "%s\r\n" "Status: 403 Forbidden"
+
+ if [ "$(mdfile '/[wiki]/403/')" ]; then
+ theme_page '/[wiki]/403/'
+ else
+ printf "Content-Length: 0\r\n\r\n"
+ fi
}
theme_404(){
printf "%s\r\n" "Status: 404 Not Found"
- theme_page '[wiki]/404/'
+ if [ "$(mdfile '/[wiki]/404/')" ]; then
+ theme_page '/[wiki]/404/'
+ else
+ printf "Content-Length: 0\r\n\r\n"
+ fi
}