4 CRM-权限管理rbac、github代码
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代码的更多相关文章
- CRM权限管理
CRM权限管理 一.概念 权限管理就是管理用户对于资源的操作.本 CRM 系统的权限(也称作资源)是基于角色操作权限来实现的,即RBAC(Role-Based Access Control,基于角色的 ...
- devops-jenkins基于角色的权限管理RBAC
一. devops-jenkins基于角色的权限管理RBAC 1 安装角色的rbac角色管理 1.1) 点击系统管理 1.2) 选择插件管理 1.3) 选择可选插件,输入role搜索 1.4) 选择 ...
- php人员权限管理(RBAC)
在说权限管理前,应该先知道权限管理要有哪些功能: (1).用户只能访问,指定的控制器,指定的方法 (2).用户可以存在于多个用户组里 (3).用户组可以选择,指定的控制器,指定的方法 (4).可以添 ...
- 详解权限管理(RBAC)的实现方法
在说权限管理前,应该先知道权限管理要有哪些功能: ().用户只能访问,指定的控制器,指定的方法 ().用户可以存在于多个用户组里 ().用户组可以选择,指定的控制器,指定的方法 ().可以添加控制器和 ...
- thinkphp权限管理Rbac实例
首先,先建立Rbac那五张表(用户表,角色表,节点表,权限表,角色-用户表),后面四张可以在thinkphp中Rbac类里直接复制. 第二步,根据需求往那五张表里插入数据,注意:节点表里的节点名称一定 ...
- 权限管理RBAC模型概述
一.什么是RBAC模型 RBAC模型(Role-Based Access Control:基于角色的访问控制)模型是比较早期提出的权限实现模型,在多用户计算机时期该思想即被提出,其中以美国George ...
- Django_用户权限管理rbac
组成部分 1.初始化权限:login视图initial_permission,把权限信息放入session.initial_permission函数生成权限列表.菜单列表 2.中间件验证权限:在第一次 ...
- php 人员权限管理(RBAC)
一.想好这个权限是什么? 就做一个就像是vip的功能,普通用户和vip用户的功能是不一样的,先来考虑一下数据库怎么设计 肯定要有用户表.还有用户所用的角色.然后就是权限功能表:可是在这里面有关联也就 ...
- day25 crm 权限管理 通用的增删改查框架
代码: https://github.com/liyongsan/git_class/tree/master/day25/LuffyCRM
- 权限管理-RBAC
(一)RBAC 通过用户与角色关联,角色与操作的关联实现用户与操作的关联 (二)权限细分 (三)数据库设计 (四)程序设计 (五)权限与应用程序 (1)应用URL实现程序权限控制 (2)应用code实 ...
随机推荐
- [源码] YoCelsius
YoCelsius 视频查看地址 苹果商店免费下载 最美应用介绍 源码地址 未完成的功能 [说明] 1. 本人写了几乎所有的显示控件与动画效果 2. 希望有人能喜欢,下载软件后给个好评 3. ...
- Redis学习---基础学习[all]
什么是NoSQL型数据库 NoSQL数据库---NoSQL数据库的分类 Redis学习---NoSQL和SQL的区别及使用场景 Redis学习---负载均衡的原理.分类.实现架构,以及使用场景 什么是 ...
- ZT 人生真的是一场马拉松吗?
中国合伙人:孟晓俊:生活应该是什么样的?自己提出的问题应该由自己来回答,别人的回答是别人的答案,是别人的生活,而你应该过自己的生活,不是别人的生活. 人生真的是一场马拉松吗? 投递人 itwr ...
- BZOJ 2763 飞行路线 BFS分层
题目链接: https://www.lydsy.com/JudgeOnline/problem.php?id=2763 题目大意: Alice和Bob现在要乘飞机旅行,他们选择了一家相对便宜的航空公司 ...
- Hive学习之路 (十二)Hive SQL练习之影评案例
案例说明 现有如此三份数据:1.users.dat 数据格式为: 2::M::56::16::70072, 共有6040条数据对应字段为:UserID BigInt, Gender String, A ...
- POJ 2774 Long Long Message [ 最长公共子串 后缀数组]
题目:http://poj.org/problem?id=2774 Long Long Message Time Limit: 4000MS Memory Limit: 131072K Total ...
- python file的3中读法
f.read() 整个文件读入到内存,全部放入到一个string中 f.readlines() 文件全部内容解析成行列表,自带\n,需要print i, f.readline()一行一行,返回字符串 ...
- C++:引用的简单理解
前言:引用是C++一个很重要的特性,最近看了很多有关引用的资料和博客,故在此对引用的相关知识进行总结 一.什么是引用 引用,顾名思义是某一个变量或对象的别名,对引用的操作与对其所绑定的变量或对象的操作 ...
- servlet使用
一.使用IDEAL创建项目 1) 2) 3) 4) 5) 6) 7) 8) 9) 二.路径介绍: 配置文件: servlet配置文件: package ser_Test; import javax.s ...
- git +maven+java+jenkins自动化代码持续集成
1.安装JDK JDK下载: http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 新 ...