Compare commits
2 Commits
757264c33a
...
4f954c97d7
Author | SHA1 | Date | |
---|---|---|---|
4f954c97d7 | |||
cd9592c7cb |
35
lgit.py
35
lgit.py
@ -93,6 +93,13 @@ l dc values from base
|
||||
|
||||
return response
|
||||
|
||||
def isempty(self)->bool:
|
||||
self.conn.search(search_base=self.base,search_filter='(objectClass=person)', attributes=['uid'])
|
||||
response = self.conn.response
|
||||
if response == []:
|
||||
return True
|
||||
return False
|
||||
|
||||
def gettotal(self, base: str = '')->int:
|
||||
if base == '':
|
||||
base = self.logbase
|
||||
@ -303,6 +310,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