shithub: werc

Download patch

ref: c3c6d0a991e8c55022d6d405719198a6291cb3b1
parent: e3a512abceedcc9f39194e76e23a0a8e23cbc778
author: uriel <uriel@engel.se.cat-v.org>
date: Sat Jan 24 02:11:39 EST 2009

Add some comments and replace get_post_args with load_post_args

--- a/apps/bridge/app.rc
+++ b/apps/bridge/app.rc
@@ -1,4 +1,5 @@
 fn bridge_init {
+    # XXX: Should avoid running for 404s, dir lists, etc.
     if(! ~ $#enable_comments 0) {
         ll_add handlers_body_foot bridge_body_foot 
         if(get_post_args comment_text) {
@@ -19,9 +20,10 @@
             }
 
             umask 002
-            mkdir -m 775 -p $d
-            echo $u > $d/user
-            echo $comment_text > $d/body
+            if(mkdir -m 775 -p $d) { # Rudimentary perm checking
+                echo $u > $d/user
+                echo $comment_text > $d/body
+            }
         }
     }
 
--- a/bin/cgilib.rc
+++ b/bin/cgilib.rc
@@ -186,11 +186,10 @@
 # Check loggin status, if called with group arg we check membership too
 fn check_user {
     if(! get_user)
-        status='Not logged in:' $status
-    if not if(~ $#1 1 && ! grep -s '^'^$logged_user^'$' etc/groups/$1)
-        status=User $logged_user not in group $1
-    if not
-        status=()
+        _status='Not logged in:' $status
+    if not if(! ~ $#* 0 && ! grep -s '^'^$logged_user^'$' etc/groups/$*)
+        _status=User $logged_user not in groups $*
+    status=$_status
 }
 
 # If not logged in, try to get user login info from POST or from cookie
--- a/bin/werc.rc
+++ b/bin/werc.rc
@@ -98,7 +98,8 @@
     if not if(test -f $local_path.txt)
         handler_body_main=(txt_handler $local_path.txt)
 
-    # Apps, XXX: Maybe we should check that $enabled_apps exist in $werc_apps.
+    # XXX Should check that $enabled_apps exist in $werc_apps?
+    # XXX Should split init of apps that provide main handler (eg., blog) and apps that don't (eg., comments)?
     if(! ~ $#enabled_apps 0)
         for(a in $enabled_apps)
             $a^'_init'
@@ -162,7 +163,7 @@
 
 # Hack: preload post data so we can access it from templates where cgi's stdin is not accesible
 if(~ $REQUEST_METHOD POST) {
-    get_post_args 
+    load_post_args
     login_user
 }
 
--- a/lib/_debug.tpl
+++ b/lib/_debug.tpl
@@ -1,6 +1,29 @@
-<pre>
+% if(! ~ $#debug_shell 0) {
+<form method="POST" name="prompt">
+<input type="text" name="command" />
+<input type="submit" Value="Run" />
+</form>
+<script language="javascript"><!--
+document.prompt.command.focus()
+//--></script>
+
+%{
+fn evl {
+    # Buffering is probably messing this up:
+    #rc -c 'flag x +;{'^$post_arg_command'} |[2] awk ''{print ">> "$0}'''
+    rc -c 'flag x +;'^$post_arg_command
+}
+    if(! ~ $#post_arg_command 0 && ! ~ $#post_arg_command '') {
+        echo '<hr /><pre>'
+        evl | escape_html |[2] awk '{print "<b>"$0"</b>"}' 
+        echo '</pre>'
+    }
+%}
+% }
+
+<hr /><pre>
 % env | escape_html
----------------------
+</pre><hr />
+
 % umask
-</pre>
 
--- a/lib/_users/login.tpl
+++ b/lib/_users/login.tpl
@@ -1,13 +1,14 @@
-%{
-
-if(check_user)
-    echo 'You are logged in as' $logged_user
-if not if (~ $REQUEST_METHOD POST)
-    echo 'Login failed!'
-
-%}
+<h1>User login</h1>
+<br />
+% if(check_user) {
+    You are logged in as: <b>%($logged_user%)</b>
+% }
+% if not {
+%    if (~ $REQUEST_METHOD POST)
+%        echo 'Login failed!'
 <form method="POST">
     User name: <input type="text" name="user_name" /><br />
     User password: <input type="password" name="user_password" /><br />
     <input name="s" type="submit" value="Login" />
 </form>
+% }