CRM - 权限
一、引入权限组件
引入权限组件 rbac
settings: 'rbac.apps.RbacConfig',
中间件: 'rbac.service.rbac.ValidPermission',
员工表UserInfo和rbac.User表关联 一对一
UserInfo中的用户名和密码也可删了,只留rbac.User中的用户名和密码。
user = models.OneToOneField("rbac.User", null=True)
makemigrations
migrate
二、分配权限
权限组
分配权限
角色分配
用户分配
rbac/stark.py
# -*- coding:utf-8 -*- from stark.service.stark import site,ModelStark from .models import * class UserConfig(ModelStark):
list_display = ["name",'roles'] site.register(User,UserConfig) class RoleConfig(ModelStark):
list_display = ["title","permission"] site.register(Role,RoleConfig) class PermissionConfig(ModelStark):
list_display = ["id","title","url","group","action"] site.register(Permission, PermissionConfig)
site.register(PermissionGroup)
三、登录、引入中间件
不同的用户具有不同的权限
知识点
登录
url(r'^login/', views.login), ------------------------------------- from django.shortcuts import render,HttpResponse # Create your views here.
from rbac.models import User
from rbac.service.permission 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(user,request) return HttpResponse("登录成功") return render(request,'login.html',locals())
引入中间件
'rbac.service.rbac.ValidPermission',
模板继承
例如:
{% extends 'base.html' %} {% block con %}
<h4>我的客户</h4>
<ul>
{% for customer_distrubute in customer_distrubute_list %}
<li>
{{ customer_distrubute.customer }}
-----{{ customer_distrubute.date|date:'Y-m-d' }}
-----{{ customer_distrubute.get_status_display }}
</li>
{% endfor %} </ul> {% endblock %}
四、code
原始版
https://github.com/alice-bj/crm_pro
CRM - 权限的更多相关文章
- CRM权限管理
CRM权限管理 一.概念 权限管理就是管理用户对于资源的操作.本 CRM 系统的权限(也称作资源)是基于角色操作权限来实现的,即RBAC(Role-Based Access Control,基于角色的 ...
- Django项目:CRM(客户关系管理系统)--84--74PerfectCRM实现CRM权限和权限组限制访问URL
#models.py # ————————01PerfectCRM基本配置ADMIN———————— from django.db import models # Create your models ...
- Sage Crm 权限原理分析
文字是11年写的,贴出来共享一下,先来一张表结构图: 一.区域.表名:[territories] 1.我们先来看看区域表的结构. 从图中前面都是不能为空的字段,都是很重要的.来介绍一下这些字段: Te ...
- Dynamics CRM 权限整理二
接上篇http://blog.csdn.net/vic0228/article/details/50510605,继续列举CRM相关权限 prvReadBusinessUnit privilege(I ...
- CRM——权限
一.引入权限组件 1.引入权限组件rbac 拷贝之前写好的rbac应用到CRM_demo项目下. 在settings中注册rbac的app: INSTALLED_APPS = [ 'django.co ...
- CRM 权限与分派不一样问题
问题描述: 1 userA用户 为 区域经理; 2 区域经理(角色) 为 分派给userA的安全角色; 3 区域经理(角色) 设置了对实体 客户 的读权限为 业务部门级; 按正常来说userA 应 ...
- python运维开发(二十四)----crm权限管理系统
内容目录: 数据库设计 easyUI的使用 数据库设计 权限表Perssion 角色表Role 权限和角色关系表RoleToPermission 用户表UserInfo 用户和角色关系表UserInf ...
- crm 权限设计
先在项目中创建 app rbac的models.py from django.db import models class Permission(models.Model): "" ...
- CRM 权限设置
表结构的设计 权限表 url -url地址的正则表达式 ^$ title - 标题 角色表 name - 角色名称 permissions 多对多关联权限表 (权限和角色的关系表) 用户表 name ...
- CRM 权限设置 ss
表结构的设计 权限表 url -url地址的正则表达式 ^$ title - 标题 角色表 name - 角色名称 permissions 多对多关联权限表 (权限和角色的关系表) 用户表 name ...
随机推荐
- js学习之--Bootstrap Modals(模态框)
http://www.runoob.com/bootstrap/bootstrap-v2-modal-plugin.html http://outofmemory.cn/bootstrap/tutor ...
- c++ list sort
1. bool operator < (S & b) { return ID < b.ID; } struct S { std::string firstn ...
- bootstrap中如何使input中的小图标获得点击事件
bootstrap中,放入input中的小图标是不能点击的. 在表单中经常遇见密码旁边的眼睛图标点击后,可使密码可见. 要使小图标获得点击事件,可在小图标上覆盖一个跟小图标一样大的透明层,然后给透明层 ...
- 使用scrapy_redis,实时增量更新东方头条网全站新闻
存储使用mysql,增量更新东方头条全站新闻的标题 新闻简介 发布时间 新闻的每一页的内容 以及新闻内的所有图片.东方头条网没有反爬虫,新闻除了首页,其余板块的都是请求一个js.抓包就可以看到. 项目 ...
- ios开发之--UICollectionView的使用
最近项目中需要实现一种布局,需要用到UICollectionView,特在此整理记录下! 贴上最终实现的效果图: 1,声明 @interface FirstViewController ()<U ...
- .Net WebAPI文档自动化
1.在VS2015中右键选择工程: 2.点击NuGet程序包: 3.输入Swagger在线搜索: 4.安装:Swagger.Net.UI和Swashbuckle包: 5.打开SwaggerNet.cs ...
- 处理unsigned相减错误(BIGINT UNSIGNED value is out of range)
mysql 当两个字段想减时,如果其中一个或两个字段的类型的unsigned无签名类型,如果想减的值小于0则会报错(BIGINT UNSIGNED value is out of range) 测试: ...
- 【RF库Collections测试】Get From Dictionary
Name:Get From DictionarySource:Collections <test library>Arguments:[ dictionary | key ]Returns ...
- Python 入门(九)迭代
什么是迭代 在Python中,如果给定一个list或tuple,我们可以通过for循环来遍历这个list或tuple,这种遍历我们成为迭代(Iteration). 在Python中,迭代是通过 for ...
- AsycnTask
一.异步任务加载网络数据: 在Android中提供了一个异步任务的类AsyncTask,简单来说,这个类中的任务是运行在后台线程中的,并可以将结果放到UI线程中进行处理,它定义了三种泛型,分别是Par ...