From: Mark Wells Date: Wed, 27 Feb 2013 20:34:17 +0000 (-0800) Subject: "Edit password" ACL, #21178, part 1 X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=commitdiff_plain;h=a5e611f5ffc045a59fee9e1b03f8ac79ef794d00;hp=bb79bc808b080e3c9fb9ebe3275c75343a3385bd "Edit password" ACL, #21178, part 1 --- diff --git a/httemplate/elements/change_password.html b/httemplate/elements/change_password.html new file mode 100644 index 000000000..625ba1fb5 --- /dev/null +++ b/httemplate/elements/change_password.html @@ -0,0 +1,41 @@ + +(<% mt('change') %>) +
+
+ + + <& /elements/random_pass.html, $pre.'password', 'randomize' &> + + +% if ( $error ) { +
<% $error |h %> +% } +
+
+ +<%init> +my %opt = @_; +my $svc_acct = $opt{'svc_acct'}; +my $curr_value = $opt{'curr_value'} || ''; +my $pre = 'changepw'.$svc_acct->svcnum.'_'; +my $error = $cgi->param($pre.'error'); + diff --git a/httemplate/elements/random_pass.html b/httemplate/elements/random_pass.html new file mode 100644 index 000000000..b215b77d9 --- /dev/null +++ b/httemplate/elements/random_pass.html @@ -0,0 +1,17 @@ + + +<%init> +my $id = shift; +my $label = shift || 'Generate'; + diff --git a/httemplate/misc/process/change-password.html b/httemplate/misc/process/change-password.html new file mode 100644 index 000000000..7005439cc --- /dev/null +++ b/httemplate/misc/process/change-password.html @@ -0,0 +1,21 @@ +<%init> +my $curuser = $FS::CurrentUser::CurrentUser; +die "access denied" unless $curuser->access_right('Edit password'); + +$cgi->param('svcnum') =~ /^(\d+)$/ or die "illegal svcnum"; +my $svcnum = $1; +my $svc_acct = FS::svc_acct->by_key($svcnum) + or die "svc_acct $svcnum not found"; +my $error = $svc_acct->set_password($cgi->param('password')) + || $svc_acct->replace; + +# annoyingly specific to view/svc_acct.cgi, for now... +$cgi->delete('password'); + +% if ( $error ) { +% $cgi->param('svcnum', $svcnum); +% $cgi->param("changepw${svcnum}_error", $error); +% } else { +% $cgi->query_string($svcnum); +% } +<% $cgi->redirect($fsurl.'view/svc_acct.cgi?'.$cgi->query_string) %>