<% include( 'elements/svc_Common.html',
'table' => 'svc_dsl',
+ 'precheck_callback' => $precheck_callback,
)
%>
<%init>
die "access denied"
unless $FS::CurrentUser::CurrentUser->access_right('Provision customer service'); #something else more specific?
+my $precheck_callback = sub {
+ my $cgi = shift;
+ my $svcnum = $cgi->param('svcnum');
+ my $error = '';
+ my $old;
+ my $part_svc;
+
+ if ( $svcnum ) {
+ $old = FS::svc_dsl->by_key($svcnum);
+ $part_svc = $old->part_svc;
+ } else {
+ my $svcpart = $cgi->param('svcpart') or die "svcpart required";
+ $part_svc = FS::part_svc->by_key($svcpart);
+ }
+ my $psc = $part_svc->part_svc_column('password');
+ if ( $psc->columnflag eq 'F' ) {
+ # enforce it here and skip password validation
+ $cgi->param('password', $psc->columnvalue);
+ } else {
+ my $newpass = $cgi->param('password');
+ if ( $old and $newpass ne $old->password ) {
+ $error ||= $old->is_password_allowed($newpass);
+ }
+ }
+ $error;
+};
+
</%init>