###############    表结构分析     ################

"""

表结构设计:
1,四张表
用户表,userinfo,这个表本身不会被创建,而是用来被真正的用户表做继承,
角色表,role,
菜单表,menu,
权限表,permission, 2,关联关系
用户表和角色表多对多关联,
角色表和权限表多对多关联,
权限表和菜单表一对多关联, """

###############    提供的操作     ################

"""

提供的操作
1,角色添加,只是菜单添加, 2,菜单添加,
添加一级菜单,这是在菜单表中保存的
添加二级菜单,如果权限表关联了菜单表,就是菜单,没有关联就不是菜单,
添加菜单权限,对于非二级菜单的需要关联是二级菜单的id,用来展开权限,这个设计可以把权限控制到按钮级别,
这种是在建立菜单和权限的关系, 3,分配权限,可以为客户分配角色,为角色分配权限,
这种其实就是建立员工和角色,角色和菜单之间的关联关系,都是多对多的,
这个分配的角色就是角色页面建立的,
这个分配权限就是菜单页面创建的,
另外用户可以绑定角色, """

###############    权限初始化     ################

"""

权限初始化
1,在登陆的时候,把菜单和权限拿出来,然后放入session里面去, 2,这一步涉及到了django session的操作,
原理就是客户端保存cookie 格式是 sessionid :sessionkey
sessionkey是自动生成的
sessionkkey会保持在服务器端,然后对应的有sessiondata,
这种数据在服务端,会比较安全, """

###############    权限组件     ################

"""

权限校验
1,使用中间件来校验权限,这样每一个进来的url都会经过中间件 2,逻辑就是获取当前访问的url,然后取出初始化中保存到session中的url,看看是否匹配到,匹配到就是有权限的, 3,settings.VALID_URL_LIST,
白名单中的URL无需权限验证即可访问 4,settings.NO_PERMISSION_LIST
需要登录,但无需权限校验, """

###############    权限组件     ################

"""
权限初始化 在登陆的时候做权限初始化,这个权限初始化做了什么?
需要传递两个参数,user和request,user是当前用户,request是请求相关的所有信息
user是一个对象,user = models.UserInfo.objects.filter(name=user, password=pwd).first()
做了两个事情:
1,根据这个用户获取到他所有的权限,并且放入session,settings.PERMISSION_SESSION_KEY
2,把菜单和权限,放入session,settings.MENU_SESSION_KEY """

###############    权限组件     ################

###############    权限组件     ################

如果redis的k4有一千万条数据,请打印所有的数据?复制代码# 方式一:    #result =conn.hgetall('k4')    #print(result)    # 不可取 从redis取到数据之后,服务器内存无法承受,爆栈        #ret=conn.hscan_iter('k4',count=100)    #一次取100个数据,循环完了后再去取    # ret 是一个生成器    #for item in ret:        #print(item)

crm项目-权限组件的更多相关文章

  1. python 全栈开发,Day107(CRM初始,权限组件之权限控制,权限系统表设计)

    一.CRM初始 CRM,客户关系管理系统(Customer Relationship Management).企业用CRM技术来管理与客户之间的关系,以求提升企业成功的管理方式,其目的是协助企业管理销 ...

  2. day28 CRM万能权限组件开发 && 主机管理-堡垒机

    1,CRM项目实战-万能权限组件开发参考博客:http://www.cnblogs.com/alex3714/articles/6661911.html 参考代码:https://github.com ...

  3. crm项目-stark组件分析

    ###############    stark组件     ################ """ 这个stark组件是非常神奇的 1,独立的一个组件 2,没有mod ...

  4. day 71 crm(8) 权限组件的设置,以及权限组件的应用

    ---恢复内容开始--- 前情提要: strak 组件是增删改查组件 , 生活中,需求权限组件,  不足: 1,前后端不分离,   2, 空url也会刷新界面,造成资源浪费   3,如果角色忘记设置权 ...

  5. crm项目-stark组件

    ###############  admin基本认识和常用的定制功能    ############### stark组件 对admin的基本认识 1,就是一个app,嵌入到了django里面,你可以 ...

  6. CRM项目之RBAC权限组件-day26

    写在前面 上课第26天,打卡: 世间安得双全法 不负如来不负卿 s17day26 CRM项目 项目概要:XX公司CRM - 权限管理,公共组件,app ***** - 熟悉增删改查,Low *** - ...

  7. Django - 权限分配、权限组件与CRM整合

    一.权限分配 需求:为用户分配角色,为角色分配权限,如下图效果: 1.视图代码: from django.shortcuts import render from django.http import ...

  8. CRM第一篇:权限组件之权限控制

    一.权限组件(1):一级菜单 二.权限组件(2):二级菜单 三.权限组件(3):默认选中非菜单(二级菜单) 四.权限组件(4):给动态菜单增加面包屑导航 五.权限组件(5):权限粒度控制到按钮 六.权 ...

  9. rbac权限组件整合到实际项目的全过程详述

    rbac简介 项目的GitHub地址 欢迎Download&Fork&Star:https://github.com/Wanghongw/CombineRbac 另外,本文只简单介绍一 ...

随机推荐

  1. HDU 3018 欧拉回路

    HDU - 3018 Ant Country consist of N towns.There are M roads connecting the towns. Ant Tony,together ...

  2. 常用的tensorflow函数

    在mask_rcnn常用的函数 1  tf.cast():    https://blog.csdn.net/dss875914213/article/details/86558407 2 tf.ga ...

  3. MySQL--通过.frm和.ibd对mysql数据恢复

    转载:http://bbs.csdn.net/topics/392114182 例如说 现在要恢复user表1.先建立和之前user表一样的表结构.就是执行create table user .... ...

  4. 用Emoji和照片挑战大众点评,YOBO玩转新点评方式能引领潮流吗?

    对于一家企业来说,要想获得长久生命力的必备元素是什么?是技术底蕴和海量资金?但诺基亚.摩托罗拉和黑莓等巨头的崩塌,已经证明再稳固的基础都有可能只是沙子做的.是让人工智能.云计算.大数据等前沿技术赋能于 ...

  5. Linux安装已编译好的FFmpeg,基于centos7

    1.访问https://johnvansickle.com/ffmpeg/ 2.下载地址:https://johnvansickle.com/ffmpeg/releases/ffmpeg-releas ...

  6. atan2&sin

    //弧度转化角度:弧度*180/PI //角度转化弧度:角度*PI/180 #include <math.h> #include <stdio.h> const double ...

  7. python爬虫--cookie反爬处理

    Cookies的处理 作用 保存客户端的相关状态 在爬虫中如果遇到了cookie的反爬如何处理? 手动处理 在抓包工具中捕获cookie,将其封装在headers中 应用场景:cookie没有有效时长 ...

  8. 标准库模块——shutil模块

    shutil.rmtee 删除目录及以内的所有文件. import shutil shutil.rmtree(r'D:\python\222') #包括222在内的所有文件全部删除.

  9. shift+回车,换行。断点。

    在Idea中,shift+回车可以在一行的任意一地方换行. 断点的小知识. debug启动程序后左下角会出现断点的功能选项. 一个竖列 一个横行,没有请求时是灰的. 这里主要讲竖列. 这个是沉默全部断 ...

  10. 添加头文件的报错failed to emit precompiled header 的解决办法

    在buildsetting中的以下两个路径中添加对应的设置,重现编译即可解决,stackoverflow地址:点击 Solution:1 I added $(inherited) non-recurs ...