Merge from alioth
authorPeter Palfrader <peter@palfrader.org>
Thu, 10 Jan 2008 13:10:58 +0000 (14:10 +0100)
committerPeter Palfrader <peter@palfrader.org>
Thu, 10 Jan 2008 13:10:58 +0000 (14:10 +0100)
merge r356 from alioth's userdir-ldap-common, and cherry pick that fix onto that:
  committer: Mark Hymers <mhy@debian.org>
  branch nick: userdir-ldap-common
  timestamp: Thu 2008-01-10 12:58:39 +0000
  message:
    Fix mistake in ud-userimport add logic spotted by Peter Palfrader.

1  2 
debian/changelog
ud-userimport

@@@ -10,18 -11,13 +11,23 @@@ userdir-ldap (0.3.15+xxx) XXunstable; u
    * Change the build dependency on python-support to be versioned >= 0.3.
    * ud-roleadd: Do not try to make role accounts of objectClass
      inetOrgPerson, that doesn't work.
 +  * ud-fingerserv: implement daemonize() for non-inetd mode [sgran].
 +  * ud-useradd: support usergroups [HE].
 +  * ud-host/userdir-ldap.schema: Add 'purpose', 'physicalHost' to
 +    debianServer schema and teach ud-host about [HE].
 +  * ud-host: cleanup: Replace local copy HBaseDn of the centrally
 +    configured HostBaseDn [HE].
 +  * Add myself to uploaders.
 +  * ud-generate: Set shadow expiry to 1 for locked accounts [mhy].
 +  * update doc/slapd-config.txt: labeledURL was removed from the schema but
 +    not the slapd.conf example.  Do that now [mhy].
  
-  -- Peter Palfrader <weasel@debian.org>  Wed, 26 Dec 2007 16:46:27 +0100
+   [ Mark Hymers ]
+   * ud-userimport, ud-groupadd, ud-roleadd, ud-useradd, userdir_ldap.py:
+     Update ud-userimport to use the same objectClasses as
+     ud-{user,group,role}add and abstract them out into userdir_ldap.py
+  -- Mark Hymers <mhy@debian.org>  Wed, 26 Dec 2007 17:56:28 +0000
  
  userdir-ldap (0.3.15) unstable; urgency=low
  
diff --cc ud-userimport
@@@ -90,29 -90,32 +90,32 @@@ def DoPasswd(l,Passwd)
        (Split[4],cn,mn,sn) = ParseGecos(Split[4]);
        CheckNumber(Split[2]);
        CheckNumber(Split[3]);
-       Rec = [(ldap.MOD_REPLACE,"uid",Split[0]),
-              (ldap.MOD_REPLACE,"uidNumber",Split[2]),
-              (ldap.MOD_REPLACE,"gidNumber",Split[3]),
-              (ldap.MOD_REPLACE,"gecos",Split[4]),
-              (ldap.MOD_REPLACE,"homeDirectory",Split[5]),
-              (ldap.MOD_REPLACE,"loginShell",Split[6]),
-            (ldap.MOD_REPLACE,"cn",cn),
-            (ldap.MOD_REPLACE,"mn",mn),
-            (ldap.MOD_REPLACE,"sn",sn)];
+       Rec = [("uid",Split[0]),
+              ("uidNumber",Split[2]),
+              ("gidNumber",Split[3]),
+              ("gecos",Split[4]),
+              ("homeDirectory",Split[5]),
+              ("loginShell",Split[6]),
+              ("cn",cn),
+              ("sn",sn)];
+       # Avoid schema check complaints when mn is empty
+       if (mn):
+           Rec.append(("mn",mn))
  
        Dn = "uid=" + Split[0] + "," + BaseDn;
-       print "Importing",Dn,
+       print "Importing", Dn
        sys.stdout.flush();
  
-       # Unfortunately add_s does not take the same args as modify :|
+       DoModify = True
        if (DoAdd == 1):
           try:
-             l.add_s(Dn,[("uid",Split[0]),
-                         ("objectClass","top"),
-                         ("objectClass","account"),
-                         ("objectClass","posixAccount"),
-                         ("objectClass","shadowAccount"),
-                         ("objectClass","debiandeveloper")]);
 -            AddRec = Rec
 -            Rec.append(("objectClass", UserObjectClasses))
++            AddRec = Rec[:]
++            AddRec.append(("objectClass", UserObjectClasses))
+             l.add_s(Dn,AddRec)
+             DoModify = False
           except ldap.ALREADY_EXISTS:
              print "exists",;