add preference page, start with just a password changer
authorivan <ivan>
Mon, 13 Nov 2006 01:09:17 +0000 (01:09 +0000)
committerivan <ivan>
Mon, 13 Nov 2006 01:09:17 +0000 (01:09 +0000)
FS/FS/CGI.pm
httemplate/elements/error.html [new file with mode: 0644]
httemplate/elements/header.html
httemplate/pref/pref-process.html [new file with mode: 0644]
httemplate/pref/pref.html [new file with mode: 0644]

index 1f3b59e..8b401da 100644 (file)
@@ -239,7 +239,7 @@ sub rooturl {
   #even though this is kludgy
   $url_string =~
     s{
-       (browse|config|docs|edit|graph|misc|search|view)
+       (browse|config|docs|edit|graph|misc|search|view|pref)
        /
        (process/)?
        ([\w\-\.]+)
diff --git a/httemplate/elements/error.html b/httemplate/elements/error.html
new file mode 100644 (file)
index 0000000..e8ba930
--- /dev/null
@@ -0,0 +1,4 @@
+% if ( $cgi->param('error') ) { 
+  <FONT SIZE="+1" COLOR="#ff0000">Error: <% $cgi->param('error') %></FONT>
+  <BR><BR>
+% } 
index ce54012..c543ac0 100644 (file)
@@ -50,7 +50,7 @@
         <td align=left rowspan=2 BGCOLOR="#ffffff"> <!-- valign="top" -->
           <font size=6><% $conf->config('company_name') || 'ExampleCo' %></font>
         </td>
-        <td align=right valign=top BGCOLOR="#ffffff"><FONT SIZE="-1">Logged in as <b><% getotaker %>&nbsp</b><br></FONT><FONT SIZE="-2"><a href="<%$fsurl%>pref/XXXwritethis">Preferences</a>&nbsp;<BR></FONT>
+        <td align=right valign=top BGCOLOR="#ffffff"><FONT SIZE="-1">Logged in as <b><% getotaker %>&nbsp;</b><br></FONT><FONT SIZE="-2"><a href="<%$fsurl%>pref/pref.html">Preferences</a>&nbsp;<BR></FONT>
         </td>
       </tr>
       <tr>
diff --git a/httemplate/pref/pref-process.html b/httemplate/pref/pref-process.html
new file mode 100644 (file)
index 0000000..a342a51
--- /dev/null
@@ -0,0 +1,26 @@
+% my $error = '';
+%
+% my $access_user = qsearchs( 'access_user', {
+%   'username'  => getotaker,
+%   '_password' => $cgi->param('_password'),
+% } );
+%
+% $error = 'Current password incorrect; password not changed'
+%   unless $access_user;
+%
+% $error ||= "New passwords don't match"
+%   unless $cgi->param('new_password') eq $cgi->param('new_password2');
+%
+% $error ||= "No new password entered"
+%   unless length($cgi->param('new_password'));
+%
+% $access_user->_password($cgi->param('new_password')) unless $error;
+% $error ||= $access_user->replace;
+%
+% if ( $error ) {
+%   $cgi->param('error', $error);
+%   print $cgi->redirect(popurl(1). "pref.html?". $cgi->query_string );
+% } else {
+<% include('/elements/header.html', 'Password changed') %>
+<% include('/elements/footer.html') %>
+% }
diff --git a/httemplate/pref/pref.html b/httemplate/pref/pref.html
new file mode 100644 (file)
index 0000000..2595239
--- /dev/null
@@ -0,0 +1,28 @@
+<% include('/elements/header.html', 'Preferences for '. getotaker ) %>
+
+<FORM METHOD="POST" ACTION="pref-process.html">
+
+<% include('/elements/error.html') %>
+
+<% ntable("#cccccc",2) %>
+
+<TR>
+  <TD ALIGN="right">Current password: </TD>
+  <TD><INPUT TYPE="password" NAME="_password"></TD>
+</TR>
+
+<TR>
+  <TD ALIGN="right">New password: </TD>
+  <TD><INPUT TYPE="password" NAME="new_password"></TD>
+</TR>
+
+<TR>
+  <TD ALIGN="right">Re-enter new password: </TD>
+  <TD><INPUT TYPE="password" NAME="new_password2"></TD>
+</TR>
+
+</TABLE>
+
+<INPUT TYPE="submit" VALUE="Change password">
+
+<% include('/elements/footer.html') %>