1、引入权限组件rbac

1、settings配置app、中间件

INSTALLED_APPS = [
... ...
'crm.apps.CrmConfig',
"stark.apps.StarkConfig",
'rbac.apps.RbacConfig',
]

中间件

MIDDLEWARE = [
。。。。
'rbac.service.rbac.ValidPermission',
]

2、员工表UserInfo和rbac.User表关联 一对一

  UserInfo中的用户名和密码也可删了,只留rbac.User中的用户名和密码。

添加新的字段

    user= models.OneToOneField(to=User,null=True,on_delete=True)

makemigrations  migrate

3、在rbac组件中添加starkadmin

rbac/stark.py

from stark.service.stark import site,ModelStark

from .models import *

class UserConfig(ModelStark):
list_display = ['name','roles'] site.register(User,UserConfig)
site.register(Role) class PermissionConfig(ModelStark): list_display = ['id','title','url','group','action'] site.register(Permission,PermissionConfig)
site.register(PermissionGroup)

2、分配权限

1、分配权限组

2、分配权限

3、分配角色

4、分配用户

5、rbac用户与crm的用户一一对应

6、登录查看权限

url

from django.conf.urls import url
from django.contrib import admin from crm import views from stark.service.stark import site
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^stark/', site.urls),
url(r'^login/', views.login),
]

crm/view  login的视图

from django.shortcuts import render,HttpResponse

# Create your views here.
from rbac.models import User
from rbac.service.perssions import initial_session def login(request):
if request.method =='POST':
user = request.POST.get('user')
pwd = request.POST.get('pwd') user = User.objects.filter(name=user,pwd=pwd).first()
if user:
request.session['user_id']=user.pk
# 注册权限到session中
initial_session(request,user) return HttpResponse('登录成功') return render(request,'login.html',locals())

login.html

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body> <form action="" method="post">
{% csrf_token %}
用户名: <input type="text" name="user">
密码: <input type="password" name="pwd">
<input type="submit">
</form>
</body>
</html>

3、登录、引入中间件

1、引入中间件

MIDDLEWARE = [
。。。
'rbac.service.rbac.ValidPermission',
]

2、不同的用户具有不同的权限

3、修改rbac显示premission的title

    # 注册菜单权限
# permissions = user.roles.all().values("permissions__url", "permissions__action", "permissions__group__title").distinct()
permissions = user.roles.all().values("permissions__url", "permissions__action", "permissions__title").distinct() # menu_permission_list.append((item["permissions__url"], item["permissions__group__title"])) # 组的名称
menu_permission_list.append((item["permissions__url"], item["permissions__title"]))
# 用自己permission的title

4、模板继承:与rbac的base.html相同

例如:chang_view.html

{% extends 'base.html' %}

{% block content %}

    <h3>编辑页面</h3>

    {% include 'form.html' %}

{% endblock %}

例如base.html

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title> <link rel="stylesheet" href="/static/bootstrap/css/bootstrap.css">
<script src="/static/js/jquery-1.12.4.min.js"></script>
<script src="/static/charts/highcharts.js"></script>
<link rel="stylesheet" href="/static/css/add.css">
<link rel="stylesheet" href="/static/css/list.css">
<link rel="stylesheet" href="/static/css/base.css"> </head>
<body> <div class="header">
<span style="background-color: azure">{{ user.name }}</span> </div> <div class="container"> {% load my_tags %}
<div class="menu left">
{% get_menu request %}
</div> <div class="content right">
{% block content %} {% endblock %}
</div> </div> </body>
</html>

4、github代码

github代码  https://github.com/venicid/CRM_low

4 CRM-权限管理rbac、github代码的更多相关文章

  1. CRM权限管理

    CRM权限管理 一.概念 权限管理就是管理用户对于资源的操作.本 CRM 系统的权限(也称作资源)是基于角色操作权限来实现的,即RBAC(Role-Based Access Control,基于角色的 ...

  2. devops-jenkins基于角色的权限管理RBAC

    一. devops-jenkins基于角色的权限管理RBAC 1 安装角色的rbac角色管理  1.1) 点击系统管理 1.2) 选择插件管理 1.3) 选择可选插件,输入role搜索 1.4) 选择 ...

  3. php人员权限管理(RBAC)

    在说权限管理前,应该先知道权限管理要有哪些功能: (1).用户只能访问,指定的控制器,指定的方法 (2).用户可以存在于多个用户组里 (3).用户组可以选择,指定的控制器,指定的方法  (4).可以添 ...

  4. 详解权限管理(RBAC)的实现方法

    在说权限管理前,应该先知道权限管理要有哪些功能: ().用户只能访问,指定的控制器,指定的方法 ().用户可以存在于多个用户组里 ().用户组可以选择,指定的控制器,指定的方法 ().可以添加控制器和 ...

  5. thinkphp权限管理Rbac实例

    首先,先建立Rbac那五张表(用户表,角色表,节点表,权限表,角色-用户表),后面四张可以在thinkphp中Rbac类里直接复制. 第二步,根据需求往那五张表里插入数据,注意:节点表里的节点名称一定 ...

  6. 权限管理RBAC模型概述

    一.什么是RBAC模型 RBAC模型(Role-Based Access Control:基于角色的访问控制)模型是比较早期提出的权限实现模型,在多用户计算机时期该思想即被提出,其中以美国George ...

  7. Django_用户权限管理rbac

    组成部分 1.初始化权限:login视图initial_permission,把权限信息放入session.initial_permission函数生成权限列表.菜单列表 2.中间件验证权限:在第一次 ...

  8. php 人员权限管理(RBAC)

    一.想好这个权限是什么? 就做一个就像是vip的功能,普通用户和vip用户的功能是不一样的,先来考虑一下数据库怎么设计 肯定要有用户表.还有用户所用的角色.然后就是权限功能表:可是在这里面有关联也就 ...

  9. day25 crm 权限管理 通用的增删改查框架

    代码: https://github.com/liyongsan/git_class/tree/master/day25/LuffyCRM

  10. 权限管理-RBAC

    (一)RBAC 通过用户与角色关联,角色与操作的关联实现用户与操作的关联 (二)权限细分 (三)数据库设计 (四)程序设计 (五)权限与应用程序 (1)应用URL实现程序权限控制 (2)应用code实 ...

随机推荐

  1. 利用jTessBoxEditor工具进行Tesseract3.02.02样本训练,提高验证码识别率

    1.背景 前文已经简要介绍tesseract ocr引擎的安装及基本使用,其中提到使用-l eng参数来限定语言库,可以提高识别准确率及识别效率. 本文将针对某个网站的验证码进行样本训练,形成自己的语 ...

  2. 心灵鸡汤[all]

    1. [iPhone 有哪些非常有必要下载的 App] 2. 相 信 自 己 3. 英语四级作文模板 4. 比尔盖茨的人生忠告 5. 李嘉诚 <Are you ready> 6. 李嘉诚语 ...

  3. 泛微e-cology和Oracle无法启动的解决方案

    最近公司的泛微OA无法访问,Oracle数据库也无法正常启动,尝试了好多方法,终于解决了,先说说基本情况,希望能给碰到同样问题的朋友带来一点帮助. 服务器操作系统:Window s Server 20 ...

  4. sharepoint 2013 sp1 patch安装后的手工运行

    在安装SP1 后,有时Center admin 会显示 那么必须在以administrator运行sharepoint 2013 powershell. PSConfig.exe -cmd upgra ...

  5. Inter-System Differencing between GPS and BDS for Medium-Baseline RTK Positioning-12-18

    顾及系统间偏差的双系统中长基线RTK定位 主要适用于:严峻地区,比如城市峡谷和被高大树木遮挡. 伪距码系统间偏差可以通过先验标定进行改正或者参数化.已知先验载波系统间偏差,那么两个系统重叠频率的模糊度 ...

  6. 如何检查oracle的归档空间是否满了

    如何检查oracle的归档空间是否满了   关于如何检查归档空间是否慢了,大多数人会去先检查放归档的目录的磁盘空间是否满了,通过该归档目录空余情况来判断归档空间是否满了,但我觉得这个方法不一定代表实际 ...

  7. python的unittest框架中如何删除测试数据,清理环境,可以通过addCleanup函数

    def addCleanup(self, function, *args, **kwargs): """Add a function, with arguments, t ...

  8. rimraf命令 递归删除目录所有文件

    使用webpack build文件项目时每次都会生成一个dist目录,有时需要把dist目录里的所以旧文件全部删掉, 除了可以使用rm -rf /dist/命令删除外,还可以使用rimraf /dis ...

  9. 用python解析word文件(三):style

    太长了,我决定还是拆开三篇写.   (一)段落篇(paragraph) (二)表格篇(table) (三)样式篇(style)(本篇) 选你所需即可.下面开始正文. 在前两篇中,我们已经解析出了par ...

  10. BZOJ4522:[CQOI2016]密钥破解(Pollard-Rho,exgcd)

    Description 一种非对称加密算法的密钥生成过程如下: 1. 任选两个不同的质数 p ,q 2. 计算 N=pq , r=(p-1)(q-1) 3. 选取小于r ,且与 r 互质的整数 e  ...