use strict;
use vars qw( @ISA $nossh_hack $conf $dir_prefix @shells $usernamemin
$usernamemax $passwordmin $username_letter $username_letterfirst
- $shellmachine $useradd $usermod $userdel
+ $shellmachine $useradd $usermod $userdel $mydomain
@saltset @pw_set);
use Carp;
use FS::Conf;
use FS::svc_acct_sm;
use FS::cust_main_invoice;
use FS::svc_domain;
+use FS::raddb;
@ISA = qw( FS::svc_Common );
}
$username_letter = $conf->exists('username-letter');
$username_letterfirst = $conf->exists('username-letterfirst');
+ $mydomain = $conf->config('domain');
};
@saltset = ( 'a'..'z' , 'A'..'Z' , '0'..'9' , '.' , '/' );
=item slipip - IP address
+=item seconds -
+
+=item domsvc - svcnum from svc_domain
+
=item radius_I<Radius_Attribute> - I<Radius-Attribute>
=item domsvc - service number of svc_domain with which to associate
my $part_svc = qsearchs( 'part_svc', { 'svcpart' => $self->svcpart } );
return "Unknown svcpart" unless $part_svc;
return "uid in use"
- if $part_svc->svc_acct__uid_flag ne 'F'
+ if $part_svc->part_svc_column('uid')->columnflag ne 'F'
&& qsearchs( 'svc_acct', { 'uid' => $self->uid } )
&& $self->username !~ /^(hyla)?fax$/
;
! $recref->{popnum} ||
qsearchs('svc_acct_pop',{'popnum'=> $recref->{popnum} } );
- unless ( $part_svc->getfield('svc_acct__uid_flag') eq 'F' ) {
+ unless ( $part_svc->part_svc_column('uid')->columnflag eq 'F' ) {
$recref->{uid} =~ /^(\d*)$/ or return "Illegal uid";
$recref->{uid} = $1 eq '' ? $self->unique('uid') : $1;
return "Can't have quota without uid" : ( $recref->{quota}='' );
}
- unless ( $part_svc->getfield('svc_acct__slipip_flag') eq 'F' ) {
+ unless ( $part_svc->part_svc_column('slipip')->columnflag eq 'F' ) {
unless ( $recref->{slipip} eq '0e0' ) {
$recref->{slipip} =~ /^(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})$/
or return "Illegal slipip". $self->slipip;
map {
/^(radius_(.*))$/;
my($column, $attrib) = ($1, $2);
- $attrib =~ s/_/\-/g;
- ( $attrib, $self->getfield($column) );
+ #$attrib =~ s/_/\-/g;
+ ( $FS::raddb::attrib{lc($attrib)}, $self->getfield($column) );
} grep { /^radius_/ && $self->getfield($_) } fields( $self->table );
}
map {
/^(rc_(.*))$/;
my($column, $attrib) = ($1, $2);
- $attrib =~ s/_/\-/g;
- ( $attrib, $self->getfield($column) );
+ #$attrib =~ s/_/\-/g;
+ ( $FS::raddb:attrib{lc($attrib)}, $self->getfield($column) );
} grep { /^rc_/ && $self->getfield($_) } fields( $self->table );
}
Returns the domain associated with this account.
--cut
+=cut
sub domain {
my $self = shift;
- my $svc_domain = qsearchs( 'svc_domain', { 'svcnum' => $self->domsvc } )
- or die "svc_acct.domsvc ". $self->domsvc." not found in svc_domain.svcnum";
- $svc_domain->domain;
+ if ( $self->domsvc ) {
+ my $svc_domain = qsearchs( 'svc_domain', { 'svcnum' => $self->domsvc } )
+ or die "no svc_domain.svcnum for svc_acct.domsvc ". $self->domsvc;
+ $svc_domain->domain;
+ } else {
+ $mydomain or die "svc_acct.domsvc is null and no legacy domain config file";
+ }
}
=item email
=head1 VERSION
-$Id: svc_acct.pm,v 1.27 2001-08-21 00:39:07 ivan Exp $
+$Id: svc_acct.pm,v 1.32 2001-09-07 20:17:49 ivan Exp $
=head1 BUGS