JasonWoof Got questions, comments, patches, etc.? Contact Jason Woofenden
metaform has option for a session-based login-required
authorJason Woofenden <jason@jasonwoof.com>
Sun, 8 Nov 2009 20:08:51 +0000 (15:08 -0500)
committerJason Woofenden <jason@jasonwoof.com>
Sun, 8 Nov 2009 20:28:13 +0000 (15:28 -0500)
metaform.php
metaform/main.html
metaform/preview.html
metaform/template.php

index f90ad17..0f7563e 100644 (file)
@@ -87,8 +87,8 @@ function metaform() {
                tem_set('opt_listing', $GLOBALS['opt_listing']);
                $GLOBALS['opt_display'] = format_yesno($_REQUEST['opt_display']);
                tem_set('opt_display', $GLOBALS['opt_display']);
-               $GLOBALS['opt_http_pass'] = format_yesno($_REQUEST['opt_http_pass']);
-               tem_set('opt_http_pass', $GLOBALS['opt_http_pass']);
+               $GLOBALS['opt_pass'] = format_yesno($_REQUEST['opt_pass']);
+               tem_set('opt_pass', $GLOBALS['opt_pass']);
        }
 
        if(isset($_REQUEST['fields'])) {
@@ -437,9 +437,9 @@ function make_php() {
                $tem->show('opt_email_1');
                $tem->show('opt_email_2');
        }
-       if($GLOBALS['opt_http_pass'] == 'Yes') {
-               $tem->show('opt_http_pass_1');
-               $tem->show('opt_http_pass_2');
+       if($GLOBALS['opt_pass'] == 'Yes') {
+               $tem->show('opt_pass');
+               $tem->show('opt_pass');
        }
        return $tem->run();
 }
index 80f7d2b..f698d14 100644 (file)
@@ -30,7 +30,7 @@
 
     <p><input type="checkbox" name="opt_display~opt_display checked~" value="Yes" /> Provide a "Display" page.</p>
 
-    <p><input type="checkbox" name="opt_http_pass~opt_http_pass checked~" value="Yes" /> Password protect this form (with HTTP authentication).</p>
+    <p><input type="checkbox" name="opt_pass~opt_pass checked~" value="Yes" /> Password protect this form.</p>
 
        <p>Below, specify the fields you'd like in your form, one field per line. After each field name, put at least one space, then the field type. The following field types are available: <!--~types {~--><!--~types_sep {~-->, <!--~}~-->~type html~<!--~}~-->.</p>
        <p>Example:<br /><pre>
index 5f20a5b..e8a07d2 100644 (file)
@@ -14,7 +14,7 @@
     <p><form action="~file_name~.tgz" method="get">~hiddens~<input type="submit" name="download_tar" value="Download tarball" /></form></p>
 
   <form action="~metaform_name~" method="get">
-       <p><!--~hiddens {~--><input type="hidden" name="file_name" value="~file_name attr~" /><input type="hidden" name="table_name" value="~table_name attr~" /><input type="hidden" name="singular" value="~singular attr~" /><input type="hidden" name="plural" value="~plural attr~" /><input type="hidden" name="opt_email" value="~opt_email attr~" /><input type="hidden" name="opt_db" value="~opt_db attr~" /><input type="hidden" name="opt_listing" value="~opt_listing attr~" /><input type="hidden" name="opt_display" value="~opt_display attr~" /><input type="hidden" name="opt_http_pass" value="~opt_http_pass attr~" /><input type="hidden" name="fields" value="~fields attr~" /><!--~}~--><input type="submit" name="edit" value="Back to editing" /></p>
+    <p><!--~hiddens {~--><input type="hidden" name="file_name" value="~file_name attr~" /><input type="hidden" name="table_name" value="~table_name attr~" /><input type="hidden" name="singular" value="~singular attr~" /><input type="hidden" name="plural" value="~plural attr~" /><input type="hidden" name="opt_email" value="~opt_email attr~" /><input type="hidden" name="opt_db" value="~opt_db attr~" /><input type="hidden" name="opt_listing" value="~opt_listing attr~" /><input type="hidden" name="opt_display" value="~opt_display attr~" /><input type="hidden" name="opt_pass" value="~opt_pass attr~" /><input type="hidden" name="fields" value="~fields attr~" /><!--~}~--><input type="submit" name="edit" value="Back to editing" /></p>
 
     <p><input type="submit" name="view_sql" value="View SQL" /></p>
 
index aed6054..5f59c6d 100644 (file)
@@ -31,12 +31,7 @@ $GLOBALS['~name~_max_height'] = '400';<!--~thumb_settings {~-->
 $GLOBALS['~name~_thumb_max_width'] = '70';
 $GLOBALS['~name~_thumb_max_height'] = '70';
 $GLOBALS['~name~_file_name'] = uniqid() . getmypid() . '.jpg'; # comment this out to use uploader's filename
-<!--~}~--><!--~}~--><!--~opt_http_pass_1 {~-->
-# Define the username and password required to view this form:
-define('AUTH_REALM', '~file_name~ administration area');
-define('AUTH_USER', 'fixme');
-define('AUTH_PASS', 'fixme');
-<!--~}~-->
+<!--~}~--><!--~}~-->
 
 require_once('code/wfpl/template.php');
 require_once('code/wfpl/format.php');
@@ -133,13 +128,10 @@ function ~file_name~_display_main() {
 function ~file_name~_edit_main() {<!--~}~--><!--~opt_display_2_else {~-->
 
 
-function _~file_name~_main() {<!--~}~--><!--~opt_http_pass_2 {~-->
-       # To remove password protection, just delete this block:
-       if (!isset($_SERVER['PHP_AUTH_USER']) || $_SERVER['PHP_AUTH_USER'] != AUTH_USER || $_SERVER['PHP_AUTH_PW'] != AUTH_PASS) {
-               header('WWW-Authenticate: Basic realm="' . AUTH_REALM . '"');
-               header('HTTP/1.0 401 Unauthorized');
-               echo '401 Unauthorized';
-               exit;
+function _~file_name~_main() {<!--~}~--><!--~opt_pass {~-->
+       if(!logged_in_as_admin()) {
+               $GLOBALS['url'] = this_url();
+               return 'admin_login';
        }
 <!--~}~--><!--~pulldowns {~-->
        pulldown('~name~', array('option 1', 'option 2', 'option 3'));