summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorivan <ivan>2006-11-13 01:09:17 +0000
committerivan <ivan>2006-11-13 01:09:17 +0000
commit3758ad3cb13752bbbebb2c42fcc398bdb1ffdc6a (patch)
tree79abd2ad06733f7b515250d6df4d33767c814209
parent33f61386d77a035fd59a15ccfea43d0fbff911d2 (diff)
add preference page, start with just a password changer
-rw-r--r--FS/FS/CGI.pm2
-rw-r--r--httemplate/elements/error.html4
-rw-r--r--httemplate/elements/header.html2
-rw-r--r--httemplate/pref/pref-process.html26
-rw-r--r--httemplate/pref/pref.html28
5 files changed, 60 insertions, 2 deletions
diff --git a/FS/FS/CGI.pm b/FS/FS/CGI.pm
index 1f3b59efb..8b401da36 100644
--- a/FS/FS/CGI.pm
+++ b/FS/FS/CGI.pm
@@ -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
index 000000000..e8ba93010
--- /dev/null
+++ b/httemplate/elements/error.html
@@ -0,0 +1,4 @@
+% if ( $cgi->param('error') ) {
+ <FONT SIZE="+1" COLOR="#ff0000">Error: <% $cgi->param('error') %></FONT>
+ <BR><BR>
+% }
diff --git a/httemplate/elements/header.html b/httemplate/elements/header.html
index ce5401242..c543ac040 100644
--- a/httemplate/elements/header.html
+++ b/httemplate/elements/header.html
@@ -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
index 000000000..a342a51ec
--- /dev/null
+++ b/httemplate/pref/pref-process.html
@@ -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
index 000000000..259523941
--- /dev/null
+++ b/httemplate/pref/pref.html
@@ -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') %>