planet telecom rate import, RT#83146
[freeside.git] / bin / passwd.import
index 8b5826b..8ab9e2a 100755 (executable)
@@ -1,5 +1,4 @@
 #!/usr/bin/perl -Tw
-# $Id: passwd.import,v 1.1 2002-04-20 11:57:35 ivan Exp $
 
 use strict;
 use vars qw(%part_svc);
@@ -7,19 +6,19 @@ use Date::Parse;
 use Term::Query qw(query);
 use Net::SCP qw(iscp);
 use FS::UID qw(adminsuidsetup datasrc);
-use FS::Record qw(qsearch);
+use FS::Record qw(qsearch qsearchs);
 use FS::svc_acct;
 use FS::part_svc;
 
 my $user = shift or die &usage;
 adminsuidsetup $user;
 
-push @FS::svc_acct::shells, qw(/bin/sync /sbin/shuddown /bin/halt); #others?
+push @FS::svc_acct::shells, qw(/bin/sync /sbin/shutdown /bin/halt /sbin/halt); #others?
 
 my($spooldir)="/usr/local/etc/freeside/export.". datasrc;
 
 #$FS::svc_acct::nossh_hack = 1;
-$FS::svc_acct::noexport_hack = 1;
+$FS::svc_Common::noexport_hack = 1;
 
 ###
 
@@ -76,15 +75,22 @@ while (<SHADOW>) {
   my($username,$password)=split(/:/);
   #$password =~ s/^\!$/\*/;
   #$password =~ s/\!+/\*SUSPENDED\* /;
+  $password =~ s/^NP$/\*/;
+  $password =~ s/^\*LK\*$/\*/;
   $password{$username}=$password;
 }
 
 while (<PASSWD>) {
   chop;
-  my($username,$x,$uid,$gid,$finger,$dir,$shell)=split(/:/);
-  my($password)=$upassword{$username} || $password{$username};
+  my($username,$x,$uid,$gid,$finger,$dir,$shell) = split(/:/);
+  my $password = $password{$username};
 
-  $svcpart = $shell_svcpart;
+  my $svcpart = $shell_svcpart;
+
+  #if ( qsearchs('svc_acct', { 'username' => $username } ) ) {
+  #  warn "warning: $username already exists; skipping\n";
+  #  next;
+  #}
 
   my($svc_acct) = new FS::svc_acct ({
     'svcpart'   => $svcpart,
@@ -95,13 +101,18 @@ while (<PASSWD>) {
     'finger'    => $finger,
     'dir'       => $dir,
     'shell'     => $shell,
-    %{$allparam{$username}},
+    #%{$allparam{$username}},
   });
   my($error);
   $error=$svc_acct->insert;
-  die $error if $error;
+  if ( $error ) {
+    if ( $error =~ /duplicate/i ) {
+      warn "$username: $error";
+    } else {
+      die "$username: $error";
+    }
+  }
 
-  delete $upassword{$username};
 }
 
 sub usage {