group updates and request method logging
This commit is contained in:
@@ -17,8 +17,9 @@ def request(resource, seafileURL, seafileToken, method='GET', data=None):
|
|||||||
else:
|
else:
|
||||||
data = json.dumps(data)
|
data = json.dumps(data)
|
||||||
url = '{0}/api/v2.1/{1}'.format(seafileURL, resource)
|
url = '{0}/api/v2.1/{1}'.format(seafileURL, resource)
|
||||||
logger.debug('Request URL: {}'.format(url))
|
logger.debug('Request URL: {0}'.format(url))
|
||||||
logger.debug('Request Data: {}'.format(data))
|
logger.debug('Request Method: {0}'.format(method))
|
||||||
|
logger.debug('Request Data: {0}'.format(data))
|
||||||
r = requests.request(
|
r = requests.request(
|
||||||
method,
|
method,
|
||||||
url,
|
url,
|
||||||
@@ -243,20 +244,25 @@ for group in ldap.entries:
|
|||||||
continue
|
continue
|
||||||
seafileGroups = request('admin/groups/', seafileURL, seafileToken)['response']['groups']
|
seafileGroups = request('admin/groups/', seafileURL, seafileToken)['response']['groups']
|
||||||
for ldapGroup in ldapGroups:
|
for ldapGroup in ldapGroups:
|
||||||
searchSeafileGroup = request('admin/search-group/?query={0}'.format(ldapGroup.name), seafileURL, seafileToken)['response']['group_list']
|
|
||||||
# loop through the results and make sure we match on the group name
|
# loop through the results and make sure we match on the group name
|
||||||
|
searchSeafileGroup = request('admin/search-group/?query={0}'.format(ldapGroup.name), seafileURL, seafileToken)['response']['group_list']
|
||||||
for seafileGroup in searchSeafileGroup:
|
for seafileGroup in searchSeafileGroup:
|
||||||
if seafileGroup['name'] == ldapGroup.name:
|
if seafileGroup['name'] == ldapGroup.name:
|
||||||
seafileGroupMembers = request('admin/groups/{0}/members/'.format(seafileGroup['id']), seafileURL, seafileToken)['response']['members']
|
seafileGroupMembers = request('admin/groups/{0}/members/'.format(seafileGroup['id']), seafileURL, seafileToken)['response']['members']
|
||||||
for ldapGroupMember in ldapGroup.member:
|
for ldapGroupMember in ldapGroup.member:
|
||||||
logger.debug("Searching for LDAP user {0}".format(ldapGroupMember))
|
logger.debug("Searching for LDAP user {0}".format(ldapGroupMember))
|
||||||
ldap.search(ldapBase, '(&(distinguishedName={0})(!(userAccountControl:1.2.840.113556.1.4.803:=2))({1}))'.format(ldapGroupMember, ldapFilter), attributes=['mail'])
|
ldap.search(ldapBase, '(&(distinguishedName={0})(mail=*)(!(userAccountControl:1.2.840.113556.1.4.803:=2))({1}))'.format(ldapGroupMember, ldapFilter), attributes=['mail'])
|
||||||
count = len(ldap.entries)
|
count = len(ldap.entries)
|
||||||
logger.debug("Found {0} LDAP user.".format(count))
|
logger.debug("Found {0} LDAP user.".format(count))
|
||||||
if count == 1 and [item for item in seafileGroupMembers if ldap.entries[0]['mail'] in item ]:
|
if count == 1:
|
||||||
continue
|
if [item for item in seafileGroupMembers if ldap.entries[0]['mail'] == item['email']]:
|
||||||
|
logger.debug("User {0} is already member of Seafile Group {1}".format(ldap.entries[0]['mail'], seafileGroup['name']))
|
||||||
|
continue
|
||||||
|
else:
|
||||||
|
logger.info("User {0} is not a member of Seafile Group {1}".format(ldap.entries[0]['mail'], seafileGroup['name']))
|
||||||
|
addMembertoSeafileGroup = request('admin/groups/{0}/members/'.format(seafileGroup['id']), seafileURL, seafileToken, "POST", {"email": "{0}".format(ldap.entries[0]['mail'])})['response']
|
||||||
else:
|
else:
|
||||||
print("User {0} is not in Seafile Group {1}".format(ldap.entries[0]['mail'], ldapGroup.name))
|
logger.debug("User {0} is not enabled, have no email, or not in the Seafile Group".format(ldap.entries[0]['mail']))
|
||||||
else:
|
else:
|
||||||
continue
|
continue
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user