You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

63 lines
1.6 KiB

6 years ago
  1. #!/usr/bin/python2
  2. # coding=utf-8
  3. import MySQLdb
  4. dbconn = {'host': '10.1.11.26',
  5. 'user': 'LDAP2018',
  6. 'pass': 'Pr4t7UEZITwW1AYG',
  7. 'base': 'sitemanager0'}
  8. sql = 'select * from LDAP'
  9. ad_groups = ['vpn-users', 'gogs']
  10. def mysql_reader(dbconn, sql):
  11. try:
  12. conn = MySQLdb.connect(host=dbconn['host'], user=dbconn['user'],
  13. passwd=dbconn['pass'], db=dbconn['base'], charset="utf8")
  14. cur = conn.cursor(MySQLdb.cursors.DictCursor)
  15. cur.execute(sql)
  16. data = cur.fetchall()
  17. cur.close()
  18. except MySQLdb.Error as err:
  19. print("Connection error: {}".format(err))
  20. conn.close()
  21. else:
  22. conn.close()
  23. return data
  24. def users_make_zayavka(users, memberOf):
  25. res = {}
  26. for i in users:
  27. usrName = str(i['LoginEmail']).split('@')[0]
  28. enabled = False
  29. pwChange = False
  30. toRemove = False
  31. if i['Activ'] == 'Y':
  32. enabled = True
  33. if i['Changes'] == 'Y':
  34. pwChange = True
  35. if i['Delete'] == 'Y':
  36. toRemove = True
  37. res[usrName] = {'samAccountName': usrName,
  38. 'memberOf': memberOf,
  39. 'usrPass': str(i['Pass']),
  40. 'groupSet': str(i['Otdel']),
  41. 'enabled': enabled,
  42. 'pwChange': pwChange,
  43. 'toRemove': toRemove
  44. }
  45. return res
  46. def main():
  47. users = users_make_zayavka(mysql_reader(dbconn, sql), ad_groups)
  48. for user in users:
  49. print user, users[user]
  50. if __name__ == '__main__':
  51. main()

Powered by TurnKey Linux.