From 3758ad3cb13752bbbebb2c42fcc398bdb1ffdc6a Mon Sep 17 00:00:00 2001 From: ivan Date: Mon, 13 Nov 2006 01:09:17 +0000 Subject: [PATCH] add preference page, start with just a password changer --- FS/FS/CGI.pm | 2 +- httemplate/elements/error.html | 4 ++++ httemplate/elements/header.html | 2 +- httemplate/pref/pref-process.html | 26 ++++++++++++++++++++++++++ httemplate/pref/pref.html | 28 ++++++++++++++++++++++++++++ 5 files changed, 60 insertions(+), 2 deletions(-) create mode 100644 httemplate/elements/error.html create mode 100644 httemplate/pref/pref-process.html create mode 100644 httemplate/pref/pref.html 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') ) { + Error: <% $cgi->param('error') %> +

+% } 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 @@ <% $conf->config('company_name') || 'ExampleCo' %> - Logged in as <% getotaker %> 
Preferences 
+ Logged in as <% getotaker %> 
Preferences 
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 ) %> + +
+ +<% include('/elements/error.html') %> + +<% ntable("#cccccc",2) %> + + + Current password: + + + + + New password: + + + + + Re-enter new password: + + + + + + + +<% include('/elements/footer.html') %> -- 2.11.0