X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=FS%2FFS%2Fsvc_acct.pm;h=a4ce3f7c96d1b64c5248a16b068e22ac421648ae;hp=85b4888b27c1588f877f9d1b01f64fa18d02e965;hb=57d69d5c1f98f778a0df82795ce21ee7bd21042a;hpb=a9ec5a5c02a137cadd9f2a522fba904d945ddbe3 diff --git a/FS/FS/svc_acct.pm b/FS/FS/svc_acct.pm index 85b4888b2..a4ce3f7c9 100644 --- a/FS/FS/svc_acct.pm +++ b/FS/FS/svc_acct.pm @@ -3,11 +3,11 @@ package FS::svc_acct; 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::Record qw( qsearch qsearchs fields ); +use FS::Record qw( qsearch qsearchs fields dbh ); use FS::svc_Common; use Net::SSH qw(ssh); use FS::part_svc; @@ -50,6 +50,7 @@ $FS::UID::callback{'FS::svc_acct'} = sub { } $username_letter = $conf->exists('username-letter'); $username_letterfirst = $conf->exists('username-letterfirst'); + $mydomain = $conf->config('domain'); }; @saltset = ( 'a'..'z' , 'A'..'Z' , '0'..'9' , '.' , '/' ); @@ -184,7 +185,7 @@ sub insert { 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$/ ; @@ -455,7 +456,7 @@ sub check { ! $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; @@ -505,7 +506,7 @@ sub check { 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; @@ -604,13 +605,17 @@ sub radius_check { 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 @@ -628,7 +633,7 @@ sub email { =head1 VERSION -$Id: svc_acct.pm,v 1.26 2001-08-20 11:04:38 ivan Exp $ +$Id: svc_acct.pm,v 1.30 2001-09-06 20:41:59 ivan Exp $ =head1 BUGS