Advertisement
Guest User

Untitled

a guest
Nov 9th, 2016
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.31 KB | None | 0 0
  1. import os
  2. import csv
  3.  
  4. from ldap3 import Server, Connection, Tls
  5.  
  6.  
  7. LDAP_KEY_FILE = os.environ['LDAP_KEY_FILE']
  8. LDAP_CERT_FILE = os.environ['LDAP_CERT_FILE']
  9.  
  10. LDAP_URI = os.environ['LDAP_URI']
  11. LDAP_PORT = int(os.environ['LDAP_PORT'])
  12.  
  13. LDAP_USERNAME = os.environ['LDAP_USERNAME']
  14. LDAP_PASSWORD = os.environ['LDAP_PASSWORD']
  15.  
  16. tls = Tls(
  17. local_private_key_file=LDAP_KEY_FILE,
  18. local_certificate_file=LDAP_CERT_FILE,
  19. )
  20. server = Server(
  21. host=LDAP_URI,
  22. port=LDAP_PORT,
  23. use_ssl=True,
  24. tls=tls
  25. )
  26.  
  27. connection = Connection(
  28. server,
  29. LDAP_USERNAME,
  30. LDAP_PASSWORD,
  31. )
  32.  
  33. connection.search(
  34. "dc=mozilla",
  35. "(objectClass=mozComPerson)",
  36. attributes=["mail", "zimbraAlias"]
  37. )
  38. found = rows = 0
  39.  
  40. with open('ldap-aliases.csv', 'w') as out:
  41. writer = csv.writer(out)
  42. writer.writerow(['ALIAS', 'ACTUAL'])
  43. for x in connection.entries:
  44. aliases = x.zimbraAlias.value
  45. if not aliases:
  46. aliases = []
  47. elif isinstance(aliases, str):
  48. aliases = [aliases]
  49. else:
  50. assert isinstance(aliases, list), type(aliases)
  51. actual = x.mail.value
  52. for alias in aliases:
  53. # print('{} --> {}'.format(alias, actual))
  54. writer.writerow([alias, actual])
  55. rows += 1
  56. found += 1
  57.  
  58. print(found, "FOUND")
  59. print(rows, "ROWS")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement