Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import requests
- import credentials
- import json
- import itertools
- from ldap3 import Server, Connection, ALL, NTLM, SUBTREE
- from tqdm import tqdm
- #LDAP Search
- server = Server('gogo.local', get_info=ALL)
- c = Connection(server, user=credentials.ldap_user,password=credentials.ldap_password, authentication=NTLM,auto_bind=True)
- c.search(search_base='OU=Temp Disabled,OU=Accounts,DC=gogo,DC=local',search_filter='(objectClass=user)',search_scope=SUBTREE,attributes=['*'],size_limit=0)
- entries=c.entries
- slack_users_email_list=[]
- for i in tqdm(range(len(entries))):
- if str(json.loads(entries[11].entry_to_json(include_empty=False))['attributes'].get('mail')) != None:
- slack_users_email_list.append(str(json.loads(entries[i].entry_to_json(include_empty=False))['attributes'].get('mail')))
- else:
- print("None")
- while "None" in slack_users_email_list:
- slack_users_email_list.remove("None")
- c.unbind()
- #We have list of all Slack Users with email addresses
- # Compare the above set with
- # Slack Search Criteria: All Inactive Users who have a gogoair.com email address
- url="https://api.slack.com/scim/v1/Users"
- params={'count':'5000','filter':'emails co "@gogoair.com" '}
- token=credentials.slack_token
- headers={"Accept":"application/x-www-form-urlencoded","Authorization": "Bearer %s" %token}
- r=requests.get(url=url,headers=headers,params=params)
- slack_data=r.json()
- users_list=slack_data['Resources']
- data=[]
- #Append all Inactive Slack Gogo Users to data array
- for index in tqdm(range(len(users_list))):
- data.append(users_list[index]['id'])
- file=open('/Users/CInguva/Documents/Development/InactiveUserList.txt','w')
- file.write('\n'.join(data))
- file.close()
- url='https://slack.com/api/users.info'
- inputfile=open('/Users/CInguva/Documents/Development/InactiveUserList.txt','r')
- slack_mail_list=[]
- #Get email address of each Inactive Slack User who are marked as deactivated but not yet deprovisioned on Slack
- for line in tqdm(inputfile):
- line=line.strip('\n')
- params = (('token', token),('user', line),('pretty', '1'))
- r=requests.get(url=url,headers=headers,params=params)
- #if r.json()['user']['deleted'] != True:
- slack_mail_list.append(r.json()['user']['profile']['email'])
- #Set with Inactive Users who are not de-provisoned
- setSlackList=set(slack_mail_list)
- #print(sorted(setSlackList))
- #Set with Users who are in Temp Disabled.
- setTempDisabledAD=set(slack_users_email_list)
- #Get all users who are in Temp Disabled but not de-provisioned
- deprovisionobjects=sorted(setTempDisabledAD.intersection(setSlackList))
- print(len(deprovisionobjects))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement