Exemplo n.º 1
0
def change_role_info(request):
    """
    修改角色信息
    :param request:
    :return:
    """
    try:
        request_data = common.print_header_data(request)

        role_id = common.check_request_int_field(request_data, 'role_id')
        if isinstance(role_id, Response):
            return role_id

        role_name = request_data.get('rolename')
        if role_name is not None:
            if not Group.objects.filter(id=role_id).exists():
                return common.ui_message_response(400, '该角色不存在', "该角色不存在")
            query_data = Group.objects.filter(name=role_name)
            if query_data.exists():
                return common.ui_message_response(400, '角色名已经被占用', "角色名已经被占用")
            else:
                Group.objects.filter(id=role_id).update(name=role_name)
                return common.ui_message_response(200, '角色信息修改成功', '角色信息修改成功',
                                                  status.HTTP_200_OK)
        return common.ui_message_response(400, '请求中没有rolename参数',
                                          '请求中没有rolename参数')
    except Exception:
        traceback.print_exc()
        return common.ui_message_response(
            500, '角色信息修改失败', '角色信息修改失败', status.HTTP_500_INTERNAL_SERVER_ERROR)
Exemplo n.º 2
0
def role_add_permission(request):
    """
    角色增加权限
    :param request:
    :return:
    """
    try:
        request_data = common.print_header_data(request)

        role_id = common.check_request_int_field(request_data, 'role_id')
        if isinstance(role_id, Response):
            return role_id
        permission_id_list = common.check_request_list_or_dict_field(
            request_data, 'permission_id_list')
        if isinstance(permission_id_list, Response):
            return permission_id_list

        role_select = Group.objects.filter(id=role_id)
        if role_select.exists():
            if role_select[0].permissions.all():
                role_select[0].permissions.clear()
            for permission_id in permission_id_list:
                role_select[0].permissions.add(permission_id)
            return common.ui_message_response(200, '角色添加权限成功', 'success',
                                              status.HTTP_200_OK)
        else:
            return common.ui_message_response(400, '角色不存在', '角色不存在')
    except Exception:
        traceback.print_exc()
        return common.ui_message_response(
            500, '服务器内部错误', '服务器内部错误', status.HTTP_500_INTERNAL_SERVER_ERROR)
Exemplo n.º 3
0
def change_user_info(request):
    """
    修改用户信息
    :param request:
    :return:
    """
    try:
        request_data = common.print_header_data(request)
        user_id = common.check_request_int_field(request_data, 'user_id')
        if isinstance(request_data, Response):
            return user_id
        username = request_data.get('username')
        role_id = common.check_request_list_or_dict_field(
            request_data, 'role_id')
        if isinstance(role_id, Response):
            return role_id
        if username:
            User.objects.filter(id=user_id).update(username=username)
        user_query = User.objects.filter(id=user_id)
        if user_query.exists():
            if user_query[0].groups.all():
                user_query[0].groups.clear()
            group_select = Group.objects.filter(id__in=role_id)
            for group in group_select:
                user_query[0].groups.add(group)
        else:
            return common.ui_message_response(400, '用户不存在', '用户不存在')
        return common.ui_message_response(200, '用户信息修改成功', '用户信息修改成功',
                                          status.HTTP_200_OK)
    except Exception:
        traceback.print_exc()
        return common.ui_message_response(
            500, '服务器内部错误', '服务器内部错误', status.HTTP_500_INTERNAL_SERVER_ERROR)
Exemplo n.º 4
0
def group_query_permission(request):
    """
    角色查询权限
    :param request:
    :return:
    """
    try:
        request_data = common.print_header_data(request)

        role_id = common.check_request_int_field(request_data, 'role_id')
        if isinstance(role_id, Response):
            return role_id

        result_list = []
        role_select = Group.objects.filter(id=role_id)
        for group in role_select:
            query_result = group.permissions.all()
            for permission in query_result:
                if len(permission.codename.split('|')) > 1:
                    result_list.append(permission.id)
            return common.ui_message_response(
                200, '查询成功', {'permission_id_list': result_list},
                status.HTTP_200_OK)
    except Exception:
        traceback.print_exc()
        return common.ui_message_response(
            500, '服务器内部错误', '服务器内部错误', status.HTTP_500_INTERNAL_SERVER_ERROR)