add clone function
This commit is contained in:
parent
757264c33a
commit
cd9592c7cb
28
lgit.py
28
lgit.py
@ -303,6 +303,34 @@ l dc values from base
|
||||
|
||||
return pushed
|
||||
|
||||
def clone(self, source)->int:
|
||||
# Delete all users from this server
|
||||
self.conn.search(search_base=source.base,search_filter='(objectClass=person)', attributes=USERATTRIBUTES)
|
||||
response = self.conn.response
|
||||
if response != []:
|
||||
for user in response:
|
||||
uid = user.attributes['uid']
|
||||
if isinstance(uid, list):
|
||||
uid = uid[0]
|
||||
self.conn.delete(f'uid={uid},{self.base}')
|
||||
# Copy all users from source server
|
||||
cloned = 0
|
||||
source.conn.search(search_base=source.base,search_filter='(objectClass=person)', attributes=USERATTRIBUTES)
|
||||
response = source.conn.response
|
||||
if response == []:
|
||||
return 0
|
||||
else:
|
||||
for user in response:
|
||||
attributes = user.attributes
|
||||
# If attribute returned as list, take only first element
|
||||
for key in attributes:
|
||||
if isinstance(attributes[key], list):
|
||||
attributes[key] = attributes[key][0]
|
||||
uid = attributes['uid']
|
||||
self.conn.add(f'uid={uid},{self.base}', OBJECTCLASSES, attributes)
|
||||
cloned += 1
|
||||
return cloned
|
||||
|
||||
def lastpwchangenow(self):
|
||||
'''
|
||||
Return time of last password change for the user set to current time
|
||||
|
Loading…
Reference in New Issue
Block a user