diff options
author | Christopher Burger <burgerc@freeside.biz> | 2017-06-20 09:04:14 -0400 |
---|---|---|
committer | Christopher Burger <burgerc@freeside.biz> | 2017-06-21 15:59:35 -0400 |
commit | b4d7dc9ec38daec3ee96d32287f701ed719b5eba (patch) | |
tree | f1a390efedb68b82b38a8f1f643fa134682a5200 /httemplate/misc/process | |
parent | 94cda7ff5fd7fe41d9d0b14d544cb85fbff55dc0 (diff) |
RT# 75817 - Added the ability to set contacts password on the backend
Diffstat (limited to 'httemplate/misc/process')
-rw-r--r-- | httemplate/misc/process/change-password.html | 71 |
1 files changed, 53 insertions, 18 deletions
diff --git a/httemplate/misc/process/change-password.html b/httemplate/misc/process/change-password.html index d58ce544d..250e8320b 100644 --- a/httemplate/misc/process/change-password.html +++ b/httemplate/misc/process/change-password.html @@ -1,28 +1,63 @@ <%init> my $curuser = $FS::CurrentUser::CurrentUser; -$cgi->param('svcnum') =~ /^(\d+)$/ or die "illegal svcnum"; +$cgi->param('svcnum') =~ /^(\d+)$/ or die "illegal svcnum" if $cgi->param('svcnum'); my $svcnum = $1; -my $svc_acct = FS::svc_acct->by_key($svcnum) - or die "svc_acct $svcnum not found"; -my $part_svc = $svc_acct->part_svc; -die "access denied" unless ( - $curuser->access_right('Provision customer service') or - ( $curuser->access_right('Edit password') and - ! $part_svc->restrict_edit_password ) - ); + +$cgi->param('contactnum') =~ /^(\d+)$/ or die "illegal contactnum" if $cgi->param('contactnum'); +my $contactnum = $1; + my $newpass = $cgi->param('password'); -my $error = $svc_acct->is_password_allowed($newpass) - || $svc_acct->set_password($newpass) - || $svc_acct->replace; -# annoyingly specific to view/svc_acct.cgi, for now... -$cgi->delete('password'); +my $error; + +if ($svcnum) { + my $svc_acct = FS::svc_acct->by_key($svcnum) + or die "svc_acct $svcnum not found"; + my $part_svc = $svc_acct->part_svc; + die "access denied" unless ( + $curuser->access_right('Provision customer service') or + ( $curuser->access_right('Edit password') and + ! $part_svc->restrict_edit_password ) + ); + + my $error = $svc_acct->is_password_allowed($newpass) + || $svc_acct->set_password($newpass) + || $svc_acct->replace; + + # annoyingly specific to view/svc_acct.cgi, for now... + $cgi->delete('password'); +} +elsif ($contactnum) { + my $contact = qsearchs('contact', { 'contactnum' => $contactnum } ) + or return { 'error' => "Contact not found" . $contactnum }; + + my $error = $contact->is_password_allowed($newpass) + || $contact->change_password($newpass); + + # annoyingly specific to view/svc_acct.cgi, for now... + #$cgi->delete('password'); +} + </%init> % if ( $error ) { -% $cgi->param('svcnum', $svcnum); -% $cgi->param("changepw${svcnum}_error", $error); +% if ($svcnum) { +% $cgi->param('svcnum', $svcnum); +% $cgi->param("changepw${svcnum}_error", $error); +% } +% elsif ($contactnum) { +% $cgi->param('contactnum', $contactnum); +% $cgi->param("changepw${contactnum}_error", $error); +% } % } else { -% $cgi->query_string($svcnum); +% if ($svcnum) { $cgi->query_string($svcnum); } +% elsif ($contactnum) { $cgi->query_string($contactnum); } +% } +%warn('my pwd error is ' . $error . ' end'); +% if ($svcnum) { + <% $cgi->redirect($fsurl.'view/svc_acct.cgi?'.$cgi->query_string) %> % } -<% $cgi->redirect($fsurl.'view/svc_acct.cgi?'.$cgi->query_string) %> +% elsif ($contactnum) { + <% $cgi->redirect($fsurl.'edit/cust_main-contacts.html?'.$cgi->param('custnum')) %> +% } + |