码迷,mamicode.com
首页 > 其他好文 > 详细

CRM rbac 组件的应用

时间:2019-03-02 00:46:53      阅读:190      评论:0      收藏:0      [点我收藏+]

标签:div   ref   项目   需要   OLE   执行   rbo   函数   新项目   

1 拷贝 rbac 组件到项目中,注册这个app

2 数据库迁移

  1 删除rbac下migrations里除了init外的文件

  2 修改用户表

class User(models.Model):
    """
    用户表
    """
    # name = models.CharField(max_length=32, verbose_name=用户名)
    # pwd = models.CharField(max_length=32, verbose_name=密码)
    roles = models.ManyToManyField(Role, blank=True)   # 关联用类

    class Meta:
        abstract = True     # 执行数据库迁移命令时不会生成具体的表,这张表做基类
在新项目中用户表要继承User表

之后执行数据迁移命令

在根的 urlconf 中添加 rbac 的路由

url(rrbac/, include(rbac.urls, namespace=rbac))

namespace -- 命名空间

4 角色管理  添加角色

5 菜单管理  给权重(改变菜单显示顺序)

6 权限管理

  录入权限信息

  分配好菜单和父权限

7 分配权限

  给角色分配权限

  给用户分配角色

8 加上权限的控制

  加中间件

  权限的配置放在settings中

# 权限存放在session中的KEY
PERMISSION_SESSION_KEY = permission

# 菜单存放在session中的KEY
MENU_SESSION_KEY = menu

# 白名单 WHITE_LIST
= [ r^/login/$, r^/reg/$, r^/admin/.*, ] # 需要登录但是不要权限的名单 NO_PERMISSION_LIST = [ r^/index/$, ]

  修改登录函数

  校验成功后权限信息的初始化

from rbac.service.permission import init_permission
# 登录成功后
init_permission(request,obj)

9 应用上二级菜单

  母版中使用 menu  inclusion_tag

 {% load rbac %}
   {% menu request %}

  引入 css js 效果

10 路径导航  -- breadcrumb

{% breadcrumb request %}

11 权限控制到按钮

{% load rbac %}
{% if request|has_permission:‘add_customer‘ %}
    <a class="btn btn-sm btn-primary" style="margin-bottom: 5px"
       href="{% reverse_url request ‘add_customer‘ %}">添加</a>

{% endif %}

 

CRM rbac 组件的应用

标签:div   ref   项目   需要   OLE   执行   rbo   函数   新项目   

原文地址:https://www.cnblogs.com/zhangchen-sx/p/10459327.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!