#!/usr/bin/perl -Tw
#
-# $Id: svc_acct.import,v 1.5 1999-03-25 08:42:19 ivan Exp $
+# $Id: svc_acct.import,v 1.15 2001-07-30 06:07:47 ivan Exp $
#
# ivan@sisd.com 98-mar-9
#
# don't import /var/spool/freeside/conf/shells! ivan@sisd.com 98-aug-13
#
# $Log: svc_acct.import,v $
-# Revision 1.5 1999-03-25 08:42:19 ivan
+# Revision 1.15 2001-07-30 06:07:47 ivan
+# allow !! for locked accounts instead of changing to *SUSPENDED*
+#
+# Revision 1.14 2001/05/07 15:24:15 ivan
+# s/!/*/
+#
+# Revision 1.13 2001/05/05 08:51:16 ivan
+# http://www.sisd.com/freeside/list-archive/msg01915.html
+#
+# Revision 1.12 2001/04/22 01:56:15 ivan
+# get rid of FS::SSH.pm (became Net::SSH and Net::SCP on CPAN)
+#
+# Revision 1.11 2000/06/29 12:27:01 ivan
+# s/password/_password/ for PostgreSQL wasn't done in the import.
+#
+# Revision 1.10 2000/06/28 12:32:30 ivan
+# allow RADIUS lines with "Auth-Type = Local" too
+#
+# Revision 1.8 2000/02/03 05:16:52 ivan
+# beginning of DNS and Apache support
+#
+# Revision 1.7 1999/07/08 02:32:26 ivan
+# import fix, noticed by Ben Leibig and Joel Griffiths
+#
+# Revision 1.6 1999/07/08 01:49:00 ivan
+# updates to avoid -w warnings from Joel Griffiths <griff@aver-computer.com>
+#
+# Revision 1.5 1999/03/25 08:42:19 ivan
# import stuff uses Term::Query and spits out (some kinds of) nonsensical input
#
# Revision 1.4 1999/03/24 00:43:38 ivan
use vars qw(%part_svc);
use Date::Parse;
use Term::Query qw(query);
-use FS::SSH qw(iscp);
+use Net::SCP qw(iscp);
use FS::UID qw(adminsuidsetup datasrc);
use FS::Record qw(qsearch);
use FS::svc_acct;
}
sub getpart {
$^W=0; # Term::Query isn't -w-safe
- query "Enter part number:", 'irk', [ keys %part_svc ];
+ my $return = query "Enter part number:", 'irk', [ keys %part_svc ];
$^W=1;
+ $return;
}
sub getvalue {
my $prompt = shift;
$^W=0; # Term::Query isn't -w-safe
- query $prompt, '';
+ my $return = query $prompt, '';
$^W=1;
+ $return;
}
print "\n\n";
my(%param,$username);
while (<USERS>) {
chop;
- next if /^$/;
+ next if /^\s*$/;
+ next if /^\s*#/;
if ( /^\S/ ) {
- /^(\w+)\s+Password\s+=\s+"([^"]+)"(,\s+Expiration\s+=\s+"([^"]*")\s*)?$/
+ /^(\w+)\s+(Auth-Type\s+=\s+Local,\s+)Password\s+=\s+"([^"]+)"(,\s+Expiration\s+=\s+"([^"]*")\s*)?$/
or die "1Unexpected line in users.import: $_";
my($password,$expiration);
- ($username,$password,$expiration)=(lc($1),$2,$4);
+ ($username,$password,$expiration)=(lc($1),$3,$5);
$password = '' if $password eq 'UNIX';
$upassword{$username}=$password;
undef %param;
while (<USERS>) {
chop;
if ( /^\s*$/ ) {
- $ip{$username}=$param{'radius_Framed_IP_Address'}||'0e0';
- delete $param{'radius_Framed_IP_Address'};
+ if ( defined $param{'radius_Framed_IP_Address'} ) {
+ $ip{$username} = $param{'radius_Framed_IP_Address'};
+ delete $param{'radius_Framed_IP_Address'};
+ } else {
+ $ip{$username} = '0e0';
+ }
$allparam{$username}={ %param };
last;
} elsif ( /^\s+([\w\-]+)\s=\s"?([\w\.\-\s]+)"?,?\s*$/ ) {
}
}
#? incase there isn't a terminating blank line ?
-$ip{$username}=$param{'radius_Framed_IP_Address'}||'0e0';
-delete $param{'radius_Framed_IP_Address'};
+if ( defined $param{'radius_Framed_IP_Address'} ) {
+ $ip{$username} = $param{'radius_Framed_IP_Address'};
+ delete $param{'radius_Framed_IP_Address'};
+} else {
+ $ip{$username} = '0e0';
+}
$allparam{$username}={ %param };
my(%password);
while (<SHADOW>) {
chop;
my($username,$password)=split(/:/);
+ #$password =~ s/^\!$/\*/;
+ #$password =~ s/\!+/\*SUSPENDED\* /;
$password{$username}=$password;
}
}
my($svc_acct) = new FS::svc_acct ({
- 'svcpart' => $svcpart,
- 'username' => $username,
- 'password' => $password,
- 'uid' => $uid,
- 'gid' => $gid,
- 'finger' => $finger,
- 'dir' => $dir,
- 'shell' => $shell,
- 'slipip' => $ip{$username},
+ 'svcpart' => $svcpart,
+ 'username' => $username,
+ '_password' => $password,
+ 'uid' => $uid,
+ 'gid' => $gid,
+ 'finger' => $finger,
+ 'dir' => $dir,
+ 'shell' => $shell,
+ 'slipip' => $ip{$username},
%{$allparam{$username}},
});
my($error);
}
my($svc_acct) = new FS::svc_acct ({
- 'svcpart' => $svcpart,
- 'username' => $username,
- 'password' => $password,
- 'slipip' => $ip{$username},
+ 'svcpart' => $svcpart,
+ 'username' => $username,
+ '_password' => $password,
+ 'slipip' => $ip{$username},
%{$allparam{$username}},
});
my($error);
#
sub usage {
- die "Usage:\n\n svc_acct.export user\n";
+ die "Usage:\n\n svc_acct.import user\n";
}