ud-generate: deal with users without loginShell
[mirror/userdir-ldap.git] / ud-generate
index dacd0d0..db6770d 100755 (executable)
@@ -32,6 +32,7 @@ from dsa_mq.connection import Connection
 from dsa_mq.config import Config
 
 import string, re, time, ldap, optparse, sys, os, pwd, posix, socket, base64, hashlib, shutil, errno, tarfile, grp, fcntl, dbm
+import subprocess
 from userdir_ldap import *
 from userdir_exceptions import *
 import UDLdap
@@ -214,6 +215,8 @@ def GenPasswd(accounts, File, HomePrefix, PwdMarker):
       userlist = {}
       i = 0
       for a in accounts:
+         if 'loginShell' not in a:
+             continue
          # Do not let people try to buffer overflow some busted passwd parser.
          if len(a['gecos']) > 100 or len(a['loginShell']) > 50: continue
 
@@ -1300,8 +1303,8 @@ def generate_host(host, global_dir, all_accounts, all_hosts, ssh_userkeys):
    DoLink(global_dir, OutDir, "mail-rhsbl")
    DoLink(global_dir, OutDir, "mail-whitelist")
    DoLink(global_dir, OutDir, "all-accounts.json")
-   DoLink(global_dir, Outdir, "default-mail-options.cdb")
-   DoLink(global_dir, Outdir, "default-mail-options.db")
+   DoLink(global_dir, OutDir, "default-mail-options.cdb")
+   DoLink(global_dir, OutDir, "default-mail-options.db")
    GenCDB(accounts, OutDir + "user-forward.cdb", 'emailForward')
    GenDBM(accounts, OutDir + "user-forward.db", 'emailForward')
    GenCDB(accounts, OutDir + "batv-tokens.cdb", 'bATVToken')