- my($query) = $cgi->keywords;
- if ( $query =~ /^(\d+)$/ ) { #editing
- $svcnum=$1;
- $svc_acct=qsearchs('svc_acct',{'svcnum'=>$svcnum})
- or die "Unknown (svc_acct) svcnum!";
-
- my($cust_svc)=qsearchs('cust_svc',{'svcnum'=>$svcnum})
- or die "Unknown (cust_svc) svcnum!";
-
- $pkgnum=$cust_svc->pkgnum;
- $svcpart=$cust_svc->svcpart;
-
- $part_svc = qsearchs( 'part_svc', { 'svcpart' => $svcpart } );
- die "No part_svc entry for svcpart $svcpart!" unless $part_svc;
-
- @groups = $svc_acct->radius_groups;
-
- } else { #adding
-
- foreach $_ (split(/-/,$query)) {
- $pkgnum=$1 if /^pkgnum(\d+)$/;
- $svcpart=$1 if /^svcpart(\d+)$/;
- }
- $part_svc = qsearchs( 'part_svc', { 'svcpart' => $svcpart } );
- die "No part_svc entry for svcpart $svcpart!" unless $part_svc;
-
- $svc_acct = new FS::svc_acct({svcpart => $svcpart});
-
- $svcnum='';
-
- }
-}
-
-my( $cust_pkg, $cust_main ) = ( '', '' );
-if ( $pkgnum ) {
- $cust_pkg = qsearchs('cust_pkg', { 'pkgnum' => $pkgnum } );
- $cust_main = $cust_pkg->cust_main;
-}
-
-unless ( $svcnum || $cgi->param('error') ) { #adding
-
- #set gecos
- if ($cust_main) {
- unless ( $part_svc->part_svc_column('uid')->columnflag eq 'F' ) {
- $svc_acct->setfield('finger',
- $cust_main->getfield('first') . " " . $cust_main->getfield('last')
- );
- }
- }
-
- $svc_acct->set_default_and_fixed( {
- #false laziness w/svc-acct::_fieldhandlers
- 'usergroup' => sub {
- my( $self, $groups ) = @_;
- if ( ref($groups) eq 'ARRAY' ) {
- @groups = @$groups;
- $groups;
- } elsif ( length($groups) ) {
- @groups = split(/\s*,\s*/, $groups);
- [ @groups ];
- } else {
- @groups = ();
- [];
- }
- }
- );
-
-}
-
-#fixed radius groups always override & display
-if ( $part_svc->part_svc_column('usergroup')->columnflag eq 'F' ) {
- @groups = split(',', $part_svc->part_svc_column('usergroup')->columnvalue);
-}
-
-my $action = $svcnum ? 'Edit' : 'Add';
-
-my $svc = $part_svc->getfield('svc');
-
-my $otaker = getotaker;
-
-my $username = $svc_acct->username;
-my $password;
-if ( $svc_acct->_password ) {
- if ( $conf->exists('showpasswords') || ! $svcnum ) {
- $password = $svc_acct->_password;
- } else {
- $password = "*HIDDEN*";
- }
-} else {
- $password = '';
-}
-
-my $ulen =
- $conf->exists('usernamemax')
- ? $conf->config('usernamemax')
- : dbdef->table('svc_acct')->column('username')->length;
-my $ulen2 = $ulen+2;
-
-my $pmax = $conf->config('passwordmax') || 8;
-my $pmax2 = $pmax+2;
-
-my $p1 = popurl(1);
-
-%>
-
-<%= include("/elements/header.html","$action $svc account") %>
-
-<% if ( $cgi->param('error') ) { %>
- <FONT SIZE="+1" COLOR="#ff0000">Error: <%= $cgi->param('error') %></FONT>
- <BR><BR>
-<% } %>
-
-<% if ( $cust_main ) { %>
- <%= include( '/elements/small_custview.html', $cust_main, '', 1 ) %>