def user_del(): ids = json_to_pyseq(request.argget.all('ids', [])) permanent = request.argget.all('permanent', 0) try: permanent = int(permanent) except BaseException: pass noper = 0 temp_ids = ids[:] ids = [] for tid in temp_ids: # 检查是否有权限 current_user_role = mdbs["user"].db.role.find_one({"_id": ObjectId(current_user.role_id)}) rm_user = get_one_user(user_id=str(tid)) rm_user_role = mdbs["user"].db.role.find_one({"_id": ObjectId(rm_user["role_id"])}) if get_num_digits(current_user_role["permissions"]) <= get_num_digits(rm_user_role["permissions"]): # 没有权限删除 continue ids.append(ObjectId(tid)) if not permanent: update_data = { 'is_delete': 1 } r = mdbs["user"].db.user.update_many( {"_id": {"$in": ids}}, {"$set": update_data}) if r.modified_count: for uid in ids: clean_get_one_user_cache(user_id=uid) data = { 'msg': gettext("Has recovered {} users, {} users can not operate").format( r.modified_count, noper), 'msg_type': "s", "custom_status": 201} else: data = { 'msg': gettext("Recycle user failed.May not have permission"), 'msg_type': "w", "custom_status": 401} else: # 永久删除 r = mdbs["user"].db.user.delete_many( {"_id": {"$in": ids}, "is_delete": {"$in": [1, True]}}) if r.deleted_count: data = { 'msg': gettext( "{} users have been deleted and {} users can not be deleted".format( r.deleted_count, noper)), 'msg_type': "s", "custom_status": 204} else: data = { 'msg': gettext("Failed to delete.May not have permission"), 'msg_type': "w", "custom_status": 401} return data
def user_activation(): active = int(request.argget.all('active', 0)) ids = json_to_pyseq(request.argget.all('ids', [])) noper = 0 ac_ids = [] for uid in ids: # 检查是否有权限 current_user_role = mdbs["user"].db.role.find_one( {"_id": ObjectId(current_user.role_id)}) re_user = get_one_user(user_id=str(uid)) re_user_role = mdbs["user"].db.role.find_one( {"_id": ObjectId(re_user["role_id"])}) if get_num_digits(current_user_role["permissions"]) <= get_num_digits( re_user_role["permissions"]): # 没有权限恢复 noper += 1 continue ac_ids.append(ObjectId(uid)) update_data = {'active': active} r = mdbs["user"].db.user.update_many({"_id": { "$in": ac_ids }}, {"$set": update_data}) if r.modified_count: for uid in ac_ids: clean_get_one_user_cache(user_id=uid) data = { 'msg': gettext( "{} user activation is successful, {} no permission to operate" .format(r.modified_count, noper)), 'msg_type': "s", "custom_status": 201 } else: data = { 'msg': gettext("Activation failed.May not have permission"), 'msg_type': "w", "custom_status": 401 } return data
def user_restore(): ids = json_to_pyseq(request.argget.all('ids', [])) noper = 0 re_ids = [] for uid in ids: # 检查是否有权限 current_user_role = mdbs["user"].db.role.find_one( {"_id": ObjectId(current_user.role_id)}) re_user = get_one_user(user_id=str(uid)) re_user_role = mdbs["user"].db.role.find_one( {"_id": ObjectId(re_user["role_id"])}) if get_num_digits(current_user_role["permissions"]) <= get_num_digits( re_user_role["permissions"]): # 没有权限恢复 noper += 1 continue re_ids.append(ObjectId(uid)) update_data = {'is_delete': 0} r = mdbs["user"].db.user.update_many({"_id": { "$in": re_ids }}, {"$set": update_data}) if r.modified_count: for uid in re_ids: clean_get_one_user_cache(user_id=uid) data = { 'msg': gettext( "Restore the {} users,The other {} users have no power control" .format(r.modified_count, noper)), 'msg_type': "s", "custom_status": 201 } else: data = { 'msg': gettext("Restore the failure.May not have permission"), 'msg_type': "w", "custom_status": 401 } return data