RBCA权限管理笔记(具体实现一)

views.py
目的: 主要实现将用户所有的权限,按照级别关系显示到菜单上

from django.shortcuts import HttpResponse
from . import models


def login_test(request):
    # 步骤一: 获取用户名
    # 1.通过用户名获取该用户的所有角色
    username = request.GET.get('u')  # 获取用户名

    # 步骤二 通过用户名获取所有角色列表
    # 方式2.跨表操作: 跨两张表直接根据获取的用户名获取到该用户名下的所有角色  获取到角色列表
    # <QuerySet [<Role: CEO>, <Role: 搬砖者>, <Role: 部门经理>]>
    role_list = models.Role.objects.filter(user2role__u__username=username)

    # 用户登录获取的两个值:第一个所有权限在 session 中放置
    # 步骤三 根据角色列表,获取到用户所有的去重后的权限,放置在session中;
    # 我们可以通过表关联以及反向关联,直接换获取到当前用户对应角色的所有的权限
    # 通过该用户的角色列表,间接获取到该用户对应角色的所有权限
    permission2action = models.Permission2Action.objects.\
        filter(permission2action2role__r__in=role_list).\
        values('p__url', 'a__code').distinct()

    print(permission2action)  # 这个 permission2action 暂时没用

    # 用户登录获取的两个值:第二个 在菜单
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值