Source code for ldaptor.protocols.ldap.autofill.sambaAccount

from ldaptor.protocols.ldap.autofill import ObjectMissingObjectClassException


[docs]class Autofill_samba: # TODO baseclass
[docs] def start(self, ldapObject): assert "objectClass" in ldapObject if "sambaAccount" not in ldapObject["objectClass"]: raise ObjectMissingObjectClassException(ldapObject) assert "acctFlags" not in ldapObject ldapObject["acctFlags"] = ["[UX ]"] assert "pwdLastSet" not in ldapObject ldapObject["pwdLastSet"] = ["0"] assert "logonTime" not in ldapObject ldapObject["logonTime"] = ["0"] assert "logoffTime" not in ldapObject ldapObject["logoffTime"] = ["0"] assert "pwdCanChange" not in ldapObject ldapObject["pwdCanChange"] = ["0"] assert "pwdMustChange" not in ldapObject ldapObject["pwdMustChange"] = ["0"]
[docs] def notify(self, ldapObject, attributeType): # rid=2*uid+1000 if attributeType == "uidNumber": assert "uidNumber" in ldapObject assert len(ldapObject["uidNumber"]) == 1 for uidNumber in ldapObject["uidNumber"]: uidNumber = int(uidNumber) rid = uidNumber * 2 + 1000 ldapObject["rid"] = [str(rid)] return # primaryGroupID=2*gid+1001 if attributeType == "gidNumber": assert "gidNumber" in ldapObject assert len(ldapObject["gidNumber"]) == 1 for gidNumber in ldapObject["gidNumber"]: gidNumber = int(gidNumber) primaryGroupID = gidNumber * 2 + 1001 ldapObject["primaryGroupID"] = [str(primaryGroupID)] return