EasyPermission

适用于由Django开发的网站的通用权限框架,只要设置好配置文件就快速做好权限管理,而且还支持各种条件的自定制扩展。

功能:

1、权限验证 -- 支持添加临时权限

支持临时分配权限

简单权限筛选:一个url对应一个url(可以是具体的字符串或者是一个正则表达式)

稍微复杂的筛选:url可以参数

究极筛选:可以定义钩子函数传入的是request对象,只需返回一个布尔值就能确定是否通过能权限(注:需要自己扩展)

2、可以检验是否登录

没有登录时会跳转到登录页面

3、生成菜单

根据权限信息生成的菜单,生成的菜单的可以有GET参数,视权限而定,还能生成由正则表达式构成的菜单(注:需要自己扩展)

注:生成的菜单放入到request对象的_menu_str属性里,使用时只需request._menu_str取值即可

使用:

1、下载easyPermission.py文件和 models.py文件,EasyPermission文件是主文件,models文件用于建立存放权限数据的数据库。

2、根据models建立数据库,注:要提供用户表,作为其他表的关联

3、用过Django的admin等方式为用户添加权限,具体是什么权限,那就要根据业务逻辑了

4、在项目的views中导入easyPermission,实例化easyPermission.EasyPermission,此时要传入配置文件(怎么配置参看 settings_doc.py文件)

5、使用对象的check_permission作为装饰器装饰函数(FBV、CBV)

6、完成使用

modeles.py的表说明

由于定义表的时候没有命名好,所以只能口述一波了

注:这个权限的基本原理是角色分配权限和用户分配权限

一个角色可以理解成一个组

Role --角色表 :分配权限的单位,一个角色拥有某些特定的权限

Role2User --用户分配角色表:用于用户表和角色表相关联

Action --提交方式表:记录提交方式的。如GET,POST

Permission -- url表:记录没有参数的绝对地址的url

Detail --详细操作表:定义url的GET参数

Hooks --钩子函数表:钩子函数的函数名,验证时会根据配置文件和函数名来找到对应的钩子函数

Action2Permission --权限表:对URL和提交方式进行绑定,这是一个最简单的权限

Action2Permission2Detail --权限分配详细操作表:为权限绑定GET参数

Action2Permission2Hooks --权限分配钩子表:为权限绑定钩子函数

Role2Action2Permission --角色分配权限:正式为角色绑定权限

User2Action2Permission --用户分配权限表:也可以直接为某些用户分配特殊的权限

Menu --菜单表:用于生成菜单,用于给URL(Permission表)绑定

python设置文件权限_python通用权限框架相关推荐

  1. python设置文件编码_python批量修改文件编码格式的方法

    本文实例为大家分享了python批量修改文件编码格式的具体代码,供大家参考,具体内容如下 使用说明: 1.使用工具:Python2.7.6+chardet2.3.0,chardet2.3.0下载地址: ...

  2. python设置文件编码_python修改文件编码为utf-8格式

    原博文 2019-12-02 17:11 − 简单实现.h,.c文件修改编码为utf-8格式. import os; import chardet; file_path = "." ...

  3. 使用 Shiro 设计基于用户、角色、权限的通用权限管理系统

    一.前言 在大型的信息管理系统中,经常涉及到权限管理系统 下面来个 demo,很多复杂的系统的设计都来自它 代码已经放到github上了,地址:https://github.com/larger5/s ...

  4. python设置文件权限_Python os.chmod() 方法

    Python os.chmod() 方法 概述 os.chmod() 方法用于更改文件或目录的权限. 语法 chmod()方法语法格式如下: os.chmod(path, mode) 参数 path ...

  5. linux设置文件为不可访问权限,Centos给文件设置了777权限仍不能访问解决方案

    Centos给文件设置了777权限仍不能访问: 开启了SELinux导致 1.查看SELinux状态: /usr/sbin/sestatus -v ##如果SELinux status参数为enabl ...

  6. python编写文件管理系统_python用户管理系统实例详解

    实例讲解python用户管理系统 本文主要为大家分享一篇python用户管理系统的实例讲解,具有很好的参考价值,希望对大家有所帮助.一起跟随小编过来看看吧,希望能帮助到大家. 自定义函数+装饰器,每一 ...

  7. 如何用python整理文件夹_python按照文件创建日期整理文件至文件夹

    # -*- coding: utf-8 -*- # @Time : 2019-02-15 13:31 # @Author : cxa # @File : sortbydate.py # @Softwa ...

  8. python遍历文件对象_Python文件常见操作实例分析【读写、遍历】

    本文实例讲述了Python文件常见操作.分享给大家供大家参考,具体如下: 1.文件是什么? 文件是存储在外部介质上的数据或信息集合,程序中源程序.数据中保存的数据.图像中的像素数据等等: 文件是有序的 ...

  9. python 打开文件夹_python打开目录

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! python dirtree.py e:programmingpythonapp ...

最新文章

  1. 原生javascript实现放大镜效果
  2. 5.什么是二叉查找树?原理
  3. python获取列表的最后一个元素
  4. orbeon form 的架构简介 - 如何访问用户通过 form 存储的数据
  5. mysql注册slave_创建slave库?spm=a2c4e.11155472的搜索结果-阿里云开发者社区
  6. 国内做 3D 渲染和游戏引擎的码农们都在哪里获取技术信息?
  7. exe文件注册服务的方法
  8. C# ToString()格式笔记
  9. 点击控件动态创建新页面
  10. 不用邀请照样申请Gmail免费邮箱
  11. AI-语音处理理论和应用-语音识别、语音合成
  12. python中stop_thread_Python threading.Thread只能用私有方法self来停止.__ Thread_stop()
  13. GIS应用类有哪些最新发表的毕业论文呢?
  14. 杨洋江疏影封面照合体,《全职》诠释衣品即人品
  15. 李宏毅机器学习01机器学习介绍
  16. python用matplotlib作图时,x轴为时间轴,如何让x轴每隔几个点显示一次?
  17. 排序算法的时间与空间复杂度分析
  18. arm linux源更新,[Linux] - Manjaro ARM 系统配置(更新镜像源,安装 Docker 和 Dotnet Core)...
  19. 汇编与接口技术期末复习笔记(1)—— 汇编部分
  20. 百度竞价推广超全代码

热门文章

  1. Java爬取中国天气网实况天气数据
  2. TP-Link ER系列路由器下挂路由器设置VLAN方法
  3. 浪涌保护器,SPD浪涌保护器的分类和选型标准
  4. Esp8266 进阶之路36【外设篇】乐鑫esp8266芯片SDK编程驱动时间芯片 ds1302,同步网络时间到本地,再也不怕掉电断网也可以同步时间了!(附带Demo)
  5. scala学习复习笔记超详细(变量)
  6. 网络协议 一 MAC地址、IP地址、子网掩码
  7. 破解不加微信看朋友圈
  8. 《财务自由之路III》阅读笔记2021-03-18
  9. 电脑控制手机教你实现多个手机同时自动安装卸载软件
  10. python在冒号处显示语法错误_python冒号错误语法无效