[Da-tools-commits] ./debian/userdir-ldap r363: Merge from alioth
Peter Palfrader
peter at palfrader.org
Thu Jan 10 13:10:58 UTC 2008
------------------------------------------------------------
revno: 363
committer: Peter Palfrader <peter at palfrader.org>
branch nick: userdir-ldap
timestamp: Thu 2008-01-10 14:10:58 +0100
message:
Merge from alioth
merge r356 from alioth's userdir-ldap-common, and cherry pick that fix onto that:
committer: Mark Hymers <mhy at 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.
modified:
debian/changelog
ud-groupadd
ud-roleadd
ud-useradd
ud-userimport
userdir_ldap.py
------------------------------------------------------------
revno: 349.1.7
committer: Mark Hymers <mark at hymers.org.uk>
branch nick: userdir-ldap-common
timestamp: Wed 2007-12-26 17:57:58 +0000
message:
* 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
modified:
debian/changelog
ud-groupadd
ud-roleadd
ud-useradd
ud-userimport
userdir_ldap.py
-------------- next part --------------
=== modified file 'debian/changelog'
--- a/debian/changelog 2007-12-26 15:46:31 +0000
+++ b/debian/changelog 2008-01-10 13:10:58 +0000
@@ -1,5 +1,6 @@
userdir-ldap (0.3.15+xxx) XXunstable; urgency=low
+ [ Peter Palfrader ]
* Ship userdir-ldap.schema with the package, add a note that it is
now version-controlled in bzr on top of the file.
* Get rid of debian/conffiles, wich only listed files in /etc anyway.
@@ -21,7 +22,12 @@
* update doc/slapd-config.txt: labeledURL was removed from the schema but
not the slapd.conf example. Do that now [mhy].
- -- Peter Palfrader <weasel at 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 at debian.org> Wed, 26 Dec 2007 17:56:28 +0000
userdir-ldap (0.3.15) unstable; urgency=low
=== modified file 'ud-groupadd'
--- a/ud-groupadd 2004-11-21 10:35:00 +0000
+++ b/ud-groupadd 2007-12-26 17:57:58 +0000
@@ -74,4 +74,4 @@
sys.stdout.flush();
l.add_s(Dn,[("gid",Group),
("gidNumber",str(Id)),
- ("objectClass",("top", "debianGroup"))]);
+ ("objectClass", GroupObjectClasses)])
=== modified file 'ud-roleadd'
--- a/ud-roleadd 2007-12-25 12:09:22 +0000
+++ b/ud-roleadd 2007-12-26 17:57:58 +0000
@@ -95,8 +95,7 @@
sys.stdout.flush()
Details = [("uid",account),
- ("objectClass",
- ("top","debianAccount","shadowAccount","debianRoleAccount")),
+ ("objectClass", RoleObjectClasses),
("uidNumber",str(uidNumber)),
("gidNumber",str(gidNumber)),
("gecos",cn+",,,,"),
=== modified file 'ud-useradd'
--- a/ud-useradd 2007-12-25 22:33:52 +0000
+++ b/ud-useradd 2007-12-26 17:57:58 +0000
@@ -248,8 +248,7 @@
if Update == 0:
# New account
Details = [("uid",account),
- ("objectClass",
- ("top","inetOrgPerson","debianAccount","shadowAccount","debianDeveloper")),
+ ("objectClass", UserObjectClasses),
("uidNumber",str(uidNumber)),
("gidNumber",str(gidNumber)),
("gecos",FullName+",,,,"),
@@ -271,7 +270,7 @@
#Add user group if needed, then the actual user:
if UserGroup == 1:
Dn = "gid=" + account + "," + BaseDn;
- l.add_s(Dn,[("gid",account), ("gidNumber",str(gidNumber)), ("objectClass",("top", "debianGroup"))]);
+ l.add_s(Dn,[("gid",account), ("gidNumber",str(gidNumber)), ("objectClass", GroupObjectClasses)])
l.add_s(Dn,Details);
else:
=== modified file 'ud-userimport'
--- a/ud-userimport 2004-11-21 10:44:59 +0000
+++ b/ud-userimport 2008-01-10 13:10:58 +0000
@@ -90,37 +90,43 @@
(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[:]
+ AddRec.append(("objectClass", UserObjectClasses))
+ l.add_s(Dn,AddRec)
+ DoModify = False
+
except ldap.ALREADY_EXISTS:
print "exists",;
- # Send the modify request
- l.modify(Dn,Rec);
- Outstanding = Outstanding + 1;
- Outstanding = FlushOutstanding(l,Outstanding,1);
- print "done";
+ if (DoModify):
+ # Send the modify request
+ ModRec = [(ldap.MOD_REPLACE, k[0], k[1]) for k in Rec]
+ l.modify(Dn,ModRec);
+ Outstanding = Outstanding + 1;
+ Outstanding = FlushOutstanding(l,Outstanding,1);
+ print "done";
+
FlushOutstanding(l,Outstanding);
# Read the shadow file into the database
@@ -147,9 +153,15 @@
Rec = [(ldap.MOD_REPLACE,"shadowLastChange",Split[2]),
(ldap.MOD_REPLACE,"shadowMin",Split[3]),
(ldap.MOD_REPLACE,"shadowMax",Split[4]),
- (ldap.MOD_REPLACE,"shadowWarning",Split[5]),
- (ldap.MOD_REPLACE,"shadowInactive",Split[6]),
- (ldap.MOD_REPLACE,"shadowExpire",Split[7])];
+ (ldap.MOD_REPLACE,"shadowWarning",Split[5])]
+
+ # Avoid schema violations
+ if (Split[6]):
+ Rec.append((ldap.MOD_REPLACE,"shadowInactive",Split[6]))
+
+ if (Split[7]):
+ Rec.append((ldap.MOD_REPLACE,"shadowExpire",Split[7]))
+
if (WritePasses == 1):
Rec.append((ldap.MOD_REPLACE,"userPassword","{crypt}"+Split[1]));
@@ -210,8 +222,7 @@
if (DoAdd == 1):
try:
l.add_s(Dn,[("gid",Split[0]),
- ("objectClass","top"),
- ("objectClass","posixGroup")]);
+ ("objectClass", GroupObjectClasses)])
except ldap.ALREADY_EXISTS:
print "exists",;
=== modified file 'userdir_ldap.py'
--- a/userdir_ldap.py 2007-08-11 13:38:29 +0000
+++ b/userdir_ldap.py 2007-12-26 17:57:58 +0000
@@ -54,6 +54,11 @@
"nogroup": 65534
}
+# ObjectClasses for different object types
+UserObjectClasses = ("top", "inetOrgPerson", "debianAccount", "shadowAccount", "debianDeveloper")
+RoleObjectClasses = ("top", "debianAccount", "shadowAccount", "debianRoleAccount")
+GroupObjectClasses = ("top", "debianGroup")
+
# SSH Key splitting. The result is:
# (options,size,modulous,exponent,comment)
SSHAuthSplit = re.compile('^(.* )?(\d+) (\d+) (\d+) ?(.+)$');
More information about the Da-tools-commits
mailing list