X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=httemplate%2Fpref%2Fpref-process.html;h=47f80afd049b40d160aae8402f7149c9905ecab0;hb=7b125e587a4d1ee0aca692e23ea7897f671855ae;hp=25f30e9a9c2a18855e8820b350fe2e4e0b0ce660;hpb=eb4ff7f73c5d4bdf74a3472448b5a195598ff4cd;p=freeside.git diff --git a/httemplate/pref/pref-process.html b/httemplate/pref/pref-process.html index 25f30e9a9..47f80afd0 100644 --- a/httemplate/pref/pref-process.html +++ b/httemplate/pref/pref-process.html @@ -1,57 +1,70 @@ -% my $error = ''; -% -% my $access_user; -% if ( grep { $cgi->param($_) !~ /^\s*$/ } -% qw(_password new_password new_password2) -% ) { -% -% $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; -% -% } else { -% -% $access_user = $FS::CurrentUser::CurrentUser; -% -% } -% -% my %param = $access_user->options; -% -% #XXX autogen -% my @paramlist = qw( menu_position -% email_address -% vonage-fromnumber vonage-username vonage-password -% height width availHeight availWidth colorDepth -% ); -% -% foreach (@paramlist) { -% scalar($cgi->param($_)) =~ /^[,.\-\@\w]*$/ && next; -% $error ||= "Illegal value for parameter $_"; -% last; -% } -% -% foreach (@paramlist) { -% $param{$_} = scalar($cgi->param($_)); -% } -% -% $error ||= $access_user->replace( \%param ); -% % if ( $error ) { % $cgi->param('error', $error); -% print $cgi->redirect(popurl(1). "pref.html?". $cgi->query_string ); +<% $cgi->redirect(popurl(1). "pref.html?". $cgi->query_string ) %> % } else { <% include('/elements/header.html', 'Preferences updated') %> <% include('/elements/footer.html') %> % } +<%init> + +my $error = ''; +my $access_user = ''; + +if ( grep { $cgi->param($_) !~ /^\s*$/ } + qw(_password new_password new_password2) + ) { + + $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; + +} else { + + $access_user = $FS::CurrentUser::CurrentUser; + +} + +#well, if you got your password change wrong, you don't get anything else +#changed right now. but it should be sticky on the form +unless ( $error ) { # if ($access_user) { + + my %param = $access_user->options; + + #XXX autogen + my @paramlist = qw( menu_position default_customer_view + disable_html_editor + email_address + snom-ip snom-username snom-password + vonage-fromnumber vonage-username vonage-password + show_pkgnum show_confitem_counts export_getsettings + show_db_profile save_db_profile + height width availHeight availWidth colorDepth + ); + + foreach (@paramlist) { + scalar($cgi->param($_)) =~ /^[,.\-\@\w]*$/ && next; + $error ||= "Illegal value for parameter $_"; + last; + } + + foreach (@paramlist) { + $param{$_} = scalar($cgi->param($_)); + } + + $error ||= $access_user->replace( \%param ); + +} + +