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