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

2 数据库迁移

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

  2 修改用户表

class User(models.Model):
"""
用户表
"""
# name = models.CharField(max_length=, verbose_name='用户名')
# pwd = models.CharField(max_length=, verbose_name='密码')
roles = models.ManyToManyField(Role, blank=True) # 关联用类 class Meta:
abstract = True # 执行数据库迁移命令时不会生成具体的表,这张表做基类
在新项目中用户表要继承User表 之后执行数据迁移命令

在根的 urlconf 中添加 rbac 的路由

url(r'rbac/', 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 组件的应用的更多相关文章

  1. rbac组件

    创建新项目 新建一个项目untitled,注意django 版本为1.11 修改models.py,增加2个表 from django.db import models class Classes(m ...

  2. python 全栈开发,Day108(客户管理之权限控制,客户管理之动态"一级"菜单,其他应用使用rbac组件,django static文件的引入方式)

    一.客户管理之权限控制 昨天的作业,有很多不完善的地方 下载代码,基本实现权限验证 https://github.com/987334176/luffy_permission/archive/v1.2 ...

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

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

  4. rbac组件权限按钮,菜单,可拔插

      1.通用模板 overflow: auto; //在a和b模板中进行切换 a 模板 :左侧菜单跟随滚动条 b模板  左侧以及上不动 **** <!DOCTYPE html> <h ...

  5. rbac组件引用

    一. 批量操作思路 # 待新增 路由系统中有,但是数据库中还没有 路由系统的集合 - 数据库中权限集合 # 待更新 路由系统中有,数据库中也有, 只是更改了一些信息 路由系统的集合 & 数据库 ...

  6. day72 关于rbac组件的小部分面试题

    rbac的权限组件   基于角色的权限控制 1.什么是权限? url代表的就是一个权限 2.如何实现权限的控制? 表结构  以我们讲的课的内容为例 菜单表: - title 标题 - icon 图标 ...

  7. 2、rbac组件 后台布局模板,权限按钮,菜单,可拔插,路径重定向

    1.后台布局管理 https://www.cnblogs.com/venicid/p/7772742.html#_label0 1.通用模板 overflow: auto; //在a和b模板中进行切换 ...

  8. rbac组件之菜单操作(三)

    菜单包括菜单列表,菜单列表不仅将菜单列出来,而且将每个菜单下的权限也列出来.菜单的添加.删除.修改. urls.py ... re_path(r'^menus/list/$', MenuView.as ...

  9. rbac组件之数据库设计(一)

    rbac是基于角色的权限设计,一共包含六张表,具体的表设计如下: from django.db import models class Menu(models.Model): "" ...

随机推荐

  1. Uncontrolled memory mapping in camera driver (CVE-2013-2595)

    版权声明:本文为博主原创文章.未经博主同意不得转载. https://blog.csdn.net/hu3167343/article/details/34434235 /* 本文章由 莫灰灰 编写,转 ...

  2. $ sudo python -m pip install pylint 出错解决方法

    问题:在unbuntu执行$ sudo python -m pip install pylint出错解决方法支行以下命令sudo pip install pylint==1.9.3这样roboware ...

  3. what's the 二叉树

    what's the 树 在了解二叉树之前,首先我们得有树的概念. 树是一种数据结构又可称为树状图,如文档的目录.HTML的文档树都是树结构,它是由n(n>=1)个有限节点组成一个具有层次关系的 ...

  4. vue中自定义软键盘

    https://segmentfault.com/a/1190000012568480

  5. [转]如何快速转载CSDN中的博客

    原文:https://blog.csdn.net/bolu1234/article/details/51867099 前言   对于喜欢逛CSDN的人来说,看别人的博客确实能够对自己有不小的提高,有时 ...

  6. Java创建文件夹

    import java.io.File; public class Mkdirs { public static void main(String[] args) { /** *创建文件夹,如果路径不 ...

  7. GRU门控制循环单元【转载】

    转自:https://www.infoq.cn/article/sliced-recurrent-neural-networks 1.门控循环单元 GRU GRU 由 reset gate r 和 u ...

  8. 【LeetCode每天一题】Substring with Concatenation of All Words(具备列表中所有单词的字串)

    You are given a string, s, and a list of words, words, that are all of the same length. Find all sta ...

  9. 把文本数据转化为json

    awk '{for (i=1 ;i<=NF;i++){ printf "\"" $i; if ( i==NF) {printf "\",&quo ...

  10. cocos2d JS-(JavaScript) 类型检测与判断

    //检测类型 var str = "Hello World"; if (typeof str=="string") {//使用typeof来判断对象类型的一个例 ...