#!/usr/bin/python2 # coding=utf-8 import MySQLdb dbconn = {'host': '10.1.11.26', 'user': 'LDAP2018', 'pass': 'Pr4t7UEZITwW1AYG', 'base': 'sitemanager0'} sql = 'select * from LDAP' ad_groups_users = ['vpn-users', 'gogs'] ad_groups_bitrix = ['vpn-web-vpn', 'gogs'] ad_groups_1c = ['vpn-1c', 'Domain Users'] def mysql_reader(dbconn, sql): data = tuple err = False try: conn = MySQLdb.connect(host=dbconn['host'], user=dbconn['user'], passwd=dbconn['pass'], db=dbconn['base'], charset="utf8") cur = conn.cursor(MySQLdb.cursors.DictCursor) cur.execute(sql) data = cur.fetchall() cur.close() except MySQLdb.Error as exc: print("Connection error: {}".format(err)) conn.close() err = exc else: conn.commit() conn.close() return data, err def users_make_zayavka(users): res = {} for i in users: usrname = str(i['LoginEmail']).split('@')[0] enabled = False pwchange = False toremove = False # преобразуем флаги в удобную форму if i['Activ'] == 'Y': enabled = True if i['Changes'] == 'Y': pwchange = True if i['Delete'] == 'Y': toremove = True # размечаем группы, в которых должен быть пользователь if str(i['Otdel']) == 'Users': memberof = ad_groups_users elif str(i['Otdel']) == '1C': memberof = ad_groups_1c elif str(i['Otdel']) == 'Bitrix': memberof = ad_groups_bitrix # собственно добавляем в мапу res[usrname] = {'id': str(i['ID']), 'samAccountName': usrname, 'memberOf': memberof, 'usrPass': str(i['Pass']), 'groupSet': str(i['Otdel']), 'enabled': enabled, 'pwChange': pwchange, 'toRemove': toremove } return res def main(): data, err = mysql_reader(dbconn, sql) if not err: users = users_make_zayavka(data) for user in users: if '1' in users[user]['groupSet']: print user, users[user] else: print err if __name__ == '__main__': main()