]> git.plutz.net Git - shellwiki/blobdiff - handlers/10_page.sh
avoid mishandling of pages (wrong 404 in particular)
[shellwiki] / handlers / 10_page.sh
index 0ebc2d028737979a84213bcdb89d54708eb7c583..edb849ab24acb12b7ea644c8572768be404535f6 100755 (executable)
@@ -36,6 +36,8 @@ wiki() {
 
 case "${PATH_INFO}" in
   /"[.]"/*)
+    # usually some file related to theme
+    # let file server handle errors
     FILE "${_EXEC}/${PATH_INFO#/\[.\]}"
     return 0
     ;;
@@ -49,11 +51,18 @@ case "${PATH_INFO}" in
     theme_error 400
     return 0
     ;;
-  */\[*\]/*)
+  */\[*\]/*|*/\[*\])
+    # looks like some kind of handler
     return 1
     ;;
   */)
-    theme_page "${PATH_INFO}"
+    if [ ! "$(mdfile "$page")" ]; then
+      theme_error 404
+    elif ! acl_read "$page"; then
+      theme_error 403
+    else
+      theme_page "${PATH_INFO}"
+    fi
     return 0
     ;;
 esac