def get(self, uid="*"): ldap = Ldap() if uid not in [u"*", "*", None]: dn, user = ldap.search(uid, attrlist="*").first() return self.succ([user]) def cmp(a, b): if a["employeeNumber"] > b["employeeNumber"]: return 1 elif a["employeeNumber"] == b["employeeNumber"]: return 0 return -1 return self.succ( sorted([user for dn, user in ldap.search(attrlist="*").all()], cmp))
def get(self, uid="*"): ldap = Ldap() if uid not in [u"*", "*", None]: dn, user = ldap.search(uid, attrlist="*").first() return self.succ([user]) def cmp(a, b): if a["employeeNumber"] > b["employeeNumber"]: return 1 elif a["employeeNumber"] == b["employeeNumber"]: return 0 return -1 return self.succ(sorted( [user for dn, user in ldap.search(attrlist="*").all()], cmp ))
def get(self, uid, pwd): if session.__contains__(USER_SESSION): User.add(session[USER_SESSION]) return self.fail("已登录") if not session.__contains__(KEY_SESSION): raise ExceptionEx("未申请密钥") uid = crypt.desc(uid) pwd = crypt.desc(pwd) ldap = Ldap() if not ldap.auth(uid, pwd): return self.fail("用户名或密码错误") dn, _user = ldap.search(uid).first() User.add(_user) session[USER_SESSION] = _user return self.succ(session[USER_SESSION])
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