<% 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; };