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