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>login</title>
<link rel="stylesheet" href="/static/bootstrap/css/bootstrap.css">
</head>
<body>
<h3>CRM系统登录</h3>
<div class="container">
<div class="row">
<div class="col-md-9">
<form action="" method="post">
{% csrf_token %}
<p>用户名: <input class="form-control" type="text" name="user"></p>
<p>密码:<input class="form-control" type="password" name="pwd"></p>
<p><input class="btn btn-primary" type="submit"></p>
</form> </div>
</div>
</div>
</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>
 

CRM系统(第四部分)的更多相关文章

  1. 面向企业客户的制造业CRM系统的不成熟思考

    CRM就是客户关系管理(Customer Relationship Management),一直一知半解,最近有涉及这方面的需求,所以稍作研究,并思考一些相关问题. CRM是什么? CRM具体如何定义 ...

  2. CRM系统新思维

    客户关系管理系统(CRM系统)是管理公司当前以及未来潜在客户的系统,其主要目的是通过优化客户关系实现公司销售业绩的长期增长,它是企业信息系统的核心之一.目前,移动互联网.大数据以及人工智能技术发展日新 ...

  3. 企业选择CRM系统的要点

    经过十数年的发展,CRM客户管理系统在企业当中开始家喻户晓,它的普及性也越来越高.管理者们也纷纷意识到CRM系统--这种企业管理工具带来的巨大好处.既然CRM给企业带来这么大的好处,那么企业该怎么选择 ...

  4. 在线CRM系统对企业的好处有哪些

    随着信息技术的飞速发展,每个企业都希望通过互联网技术来让自身发展壮大.由于强大的管理能力和技术手段,在线CRM系统成为了企业用来管理自身获得发展的最佳选择.那么在线CRM系统对企业来说有哪些好处呢?本 ...

  5. CRM系统什么时候需要使用

    CRM客户关系管理系统,相信每个人都会有所了解.现如今随着企业的发展需求,CRM软件已经成为了企业管理的刚需.无论是何种行业和规模的企业,客户都是最重要的资源,提高客户满意度也是企业的首要任务.如果您 ...

  6. CRM系统为什么达不到预期效果?

    随着信息技术的发展,企业对于信息化转型的需求越发强烈,而CRM客户关系管理系统成为了企业信息化转型的首选.尽管CRM系统对于企业有着很重要的作用,但有不少企业在选型和实施时遇到了问题,导致CRM系统没 ...

  7. 如何在CRM系统中集成ActiveReports最终报表设计器

    有时候,将ActiveReports设计器集成到业务系统中,为用户提供一些自定义的数据表,用户不需要了解如何底层的逻辑关系和后台代码,只需要选择几张关联的数据表,我们会根据用户的选择生成可供用户直接使 ...

  8. CRM系统简析

    寄语: 简单阐述一下对CRM系统应用的理解,此内容参考网上资料所整理. CRM是Customer Relationship Management的缩写,简称客户关系管理. CRM系统可以从三个方面来分 ...

  9. IOS 系统API---NSJSONSerialization四个枚举什么意思

    IOS 系统API---NSJSONSerialization四个枚举什么意思 NSJSONReadingMutableContainers:返回可变容器,NSMutableDictionary或NS ...

随机推荐

  1. jdk8新特性表达式1

    Jdk8中有好多新的特性,比如引入Lambda,简化代码的书写等等 我们先看一个关于Lambda的使用 /*** 输出list */@Testpublic void test() { String[] ...

  2. [Hive_10] Hive 的分析函数

    0. 说明 Hive 的分析函数 窗口函数  | 排名函数 | 最大值 | 分层次 | lead && lag 统计活跃用户 | cume_dist 1. 窗口函数(开窗函数) ove ...

  3. CentOS7安装redis数据库及php-redis扩展

    redis 首先把redis安装到服务器中 1.wget http://download.redis.io/redis-stable.tar.gz 下载redis源码 2. tar xvzf redi ...

  4. nodejs websocket

    <script src="https://cdn.socket.io/socket.io-1.4.5.js"></script> <script ty ...

  5. js开发打印证书功能

    最近突然被加了要打印证书的功能的需求.其实打印功能很简单,直接调用window.print()就可以打印,只是这是最基本的打印,会打印当前页面的所有元素,而我们要的是局部打印,实现方法: 1.设置好开 ...

  6. BZOJ 4820 [SDOI2017] 硬币游戏

    Description 周末同学们非常无聊,有人提议,咱们扔硬币玩吧,谁扔的硬币正面次数多谁胜利.大家纷纷觉得这个游戏非常符合同学们的特色,但只是扔硬币实在是太单调了.同学们觉得要加强趣味性,所以要找 ...

  7. docker-machine on azure

    1.准备Azure的虚拟机,安装docker-machine 由于azure虚拟机的管理员账号不是root,所以这里我们使用自己创建的管理员yy 1.base=https://github.com/d ...

  8. java8中的接口与时间操作

    java8中接口可以有默认方法(用default修饰,可以有多个)和静态方法了. public interface Tran { default public String getName() { r ...

  9. maven-resources-plugin插件关于占位符不生效问题

    插件版本: <plugin> <artifactId>maven-resources-plugin</artifactId> <version>3.0. ...

  10. RS-485总线通信协议

    https://blog.csdn.net/ouyangxin95/article/details/78174145 RS-485总线技术只是规定了接口的电气标准,并没有规定RS-485接口的电缆,插 ...