应用rbac组件 动态生成一级菜单


动态生成一级菜单

改表结构 需要知道是否是菜单\icon\名称
权限表 +字段:
is_menu = models.BooleanField(max_length=32,verbose_name='是否是菜单')


rbac组件应用
1.组件放入项目 注册
'rbac.apps.RbacConfig'

2.配置权限相关信息
# ###### 权限相关的配置 ######
PERMISSION_SESSION_KEY = 'permissions'
MENU_SESSION_KEY = 'menus'
WHITE_URL_LIST = [
r'^/login/$',
r'^/logout/$',
r'^/reg/$',
r'^/admin/.*',

3.创建权限相关的表
1 删除原有migrations中的记录
2 执行两条命令


4.用admin录入权限信息
创建超级用户
录入权限/student_list/--角色(给角色分权限)--用户(给用户分角色)


5.从rbac中导入user
from rbac.models import User
登陆成功后 写入权限和菜单信息到session中
初始化权限和菜单信息:
from rbac.server.init_permission import init_permission

6 配置上中间件,进行权限的校验
中间件: 'rbac.middlewares.rbac.PermissionMiddleware',
视图: init_permission(request,user)
模板: <link rel="stylesheet" href="{% static 'css/menu.css' %}">
使用inclusion_tag
<div class="left-menu">
<div class="menu-body">
{% load rbac %}
{% menu request %}
</div>
</div>



posted @ 2018-10-30 19:24  Niuli'blog  阅读(391)  评论(0编辑  收藏  举报