Merge branch 'master' of git.freeside.biz:/home/git/freeside
[freeside.git] / httemplate / misc / process / change-password.html
1 <%init>
2 my $curuser = $FS::CurrentUser::CurrentUser;
3
4 $cgi->param('svcnum') =~ /^(\d+)$/ or die "illegal svcnum";
5 my $svcnum = $1;
6 my $svc_acct = FS::svc_acct->by_key($svcnum)
7   or die "svc_acct $svcnum not found";
8 my $part_svc = $svc_acct->part_svc;
9 die "access denied" unless (
10   $curuser->access_right('Provision customer service') or
11   ( $curuser->access_right('Edit password') and 
12     ! $part_svc->restrict_edit_password )
13   );
14 my $newpass = $cgi->param('password');
15 my $error = $svc_acct->is_password_allowed($newpass)
16         ||  $svc_acct->set_password($newpass)
17         ||  $svc_acct->replace;
18
19 # annoyingly specific to view/svc_acct.cgi, for now...
20 $cgi->delete('password');
21 </%init>
22 % if ( $error ) {
23 %   $cgi->param('svcnum', $svcnum);
24 %   $cgi->param("changepw${svcnum}_error", $error);
25 % } else {
26 %   $cgi->query_string($svcnum);
27 % }
28 <% $cgi->redirect($fsurl.'view/svc_acct.cgi?'.$cgi->query_string) %>