def update(): _ldap_dict = {} ldap = Ldap() _ldap_users = ldap.search().all() for dn, user in _ldap_users: _ldap_dict[user["uid"].lower()] = user users = User.query.all() user_dict = {} for user in users: user_dict[user.uid.lower()] = user # 删除离职的 for uid in set(user_dict.keys()).difference(_ldap_dict.keys()): user_dict[uid].is_dimiss = True # 修改存在的 for uid in set(user_dict.keys()).intersection(_ldap_dict.keys()): u, ldap = user_dict[uid], _ldap_dict[uid] u.is_dimiss = False for field in ldap.keys(): if field == "x-csf-emp-onboardDate": u.onboardDate = ldap[field] else: setattr(u, field, ldap[field]) # 添加新增的 for uid in set(_ldap_dict.keys()).difference(user_dict.keys()): _user = _ldap_dict[uid] user = User(_user) user.create_time = datetime.now() user.last_time = datetime.now() user.onboardDate = datetime.strptime( _user["x-csf-emp-onboardDate"], "%Y%m%d") user.is_admin = False db.session.add(user) db.session.commit() return True
def update(): _ldap_dict = {} ldap = Ldap() _ldap_users = ldap.search().all() for dn, user in _ldap_users: _ldap_dict[user["uid"].lower()] = user users = User.query.all() user_dict = {} for user in users: user_dict[user.uid.lower()] = user # 删除离职的 for uid in set(user_dict.keys()).difference(_ldap_dict.keys()): user_dict[uid].is_dimiss = True # 修改存在的 for uid in set(user_dict.keys()).intersection(_ldap_dict.keys()): u, ldap = user_dict[uid], _ldap_dict[uid] u.is_dimiss = False for field in ldap.keys(): if field == "x-csf-emp-onboardDate": u.onboardDate = ldap[field] else: setattr(u, field, ldap[field]) # 添加新增的 for uid in set(_ldap_dict.keys()).difference(user_dict.keys()): _user = _ldap_dict[uid] user = User(_user) user.create_time = datetime.now() user.last_time = datetime.now() user.onboardDate = datetime.strptime(_user["x-csf-emp-onboardDate"], "%Y%m%d") user.is_admin = False db.session.add(user) db.session.commit() return True