Beispiel #1
0
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
Beispiel #2
0
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
Beispiel #3
0
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