Merge branch 'master' of git.freeside.biz:/home/git/freeside
[freeside.git] / bin / passwd.import
index d8fc013..8ab9e2a 100755 (executable)
@@ -1,5 +1,4 @@
 #!/usr/bin/perl -Tw
-# $Id: passwd.import,v 1.4 2002-06-21 09:15:59 ivan Exp $
 
 use strict;
 use vars qw(%part_svc);
@@ -14,7 +13,7 @@ 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;
 
@@ -76,6 +75,8 @@ while (<SHADOW>) {
   my($username,$password)=split(/:/);
   #$password =~ s/^\!$/\*/;
   #$password =~ s/\!+/\*SUSPENDED\* /;
+  $password =~ s/^NP$/\*/;
+  $password =~ s/^\*LK\*$/\*/;
   $password{$username}=$password;
 }
 
@@ -86,10 +87,10 @@ while (<PASSWD>) {
 
   my $svcpart = $shell_svcpart;
 
-  if ( qsearchs('svc_acct', { 'username' => $username } ) ) {
-    warn "warning: $username already exists; skipping\n";
-    next;
-  }
+  #if ( qsearchs('svc_acct', { 'username' => $username } ) ) {
+  #  warn "warning: $username already exists; skipping\n";
+  #  next;
+  #}
 
   my($svc_acct) = new FS::svc_acct ({
     'svcpart'   => $svcpart,
@@ -104,7 +105,13 @@ while (<PASSWD>) {
   });
   my($error);
   $error=$svc_acct->insert;
-  die $error if $error;
+  if ( $error ) {
+    if ( $error =~ /duplicate/i ) {
+      warn "$username: $error";
+    } else {
+      die "$username: $error";
+    }
+  }
 
 }