python/Django-rest-framework框架/9-drf-权限管理与美化

一RBAC的介绍和使用

  • RBAC 是基于角色的访问控制(Role-Based Access Control )在 RBAC 中,
    -权限与角色相关联,用户通过成为适当角色的成员而得到这些角色的权限。
    这就极大地简化了权限的管理。这样管理都是层级相互依赖的,权限赋予给角色,而把角色又赋予用户,这样的权限设计很清楚,管理起来很方便
  • RBAC权限管理的模式,最适合公司内部的管理系统,不适合对外互联网用户的系统
    -django中自带权限管理 基于auth模块
    -用户:用户表----》auth_user
    -角色(部门):角色表(部门表)----》auth_group
    -权限:权限表 -----》auth_permission
    -角色与权限中间表----》auth_group_permissions 多对多外键关联
    -用户与角色中间表----》auth_user_group 多对多外键关联
    -用户与权限中间表-----》auth_user_user_permissions 多对多关联
    -所有权限都是存在权限表中一条条的记录(发工资,招聘员工,开员工,发布新版本,开董事会)
    -权限是授予角色的(部门的),一个个角色,就是一条条记录(开发角色,hr角色,股东角色)
    -用户:一个个用户是用户表中一条条记录,用户属于某个部门
    -很多公司写后台管理使用dajngo,使用django的admin二次开发,不用写权限了,快速加功能即可
-举例子普通版本没有用户和权限的直接关联:
    用户表:
    id     姓名 
    1      张三
    2      里斯
    角色表
    id    角色名称
    1      hr角色
    2      股东角色
    3      开发角色
    权限表
    id   权限名词
    1     发工资
    2     招人
    3     提交代码
    
    #####张三要有提交代码的权限
    用户和角色中间表:
    id   角色id   用户id
    1     3       1 
    权限和角色的中间表
    id    角色id   权限id
    1       3       3

二ACL、RBAC、ABAC(PBAC,CBAC)权限控制的介绍

  • ACL(Access Control List,访问控制列表)
    将用户或组等使用者直接与对象的权限对接。
    用户表,权限表,中间 给用户授予某些权限即可
  • RBAC(Role-Based Access Control,基于角色的访问控制)
    将用户与角色对接,然后角色与当前角色拥有的权限对接----》老板拥有压榨的权限 绑定老板就拥有该权限了
  • RBAC+ACL django,公司用的比较多啊 用户与权限直接关联ACl 用户与权限通过角色关联RABC
  • ABAC(Attribute-Based Access Control,基于属性的访问控制)
    又称为PBAC(Policy-Based Access Control,基于策略的访问控制)
    CBAC(Claims-Based Access Control,基于声明的访问控制)
传统的ACL、RBAC的架构是
{subject,action,object},
而ABAC的架构是
{subject,action,object,contextual}且为他们添加了parameter(参数)。
"""
subject属性:比如用户的年龄、部门、角色、威望、积分等主题属性。
action属性:比如查看、读取、编辑、删除等行为属性。
object属性:比如银行账户、文章、评论等对象或资源属性。
contextual属性:比如时段、IP位置、天气等环境属性。
"""

三后台管理simplui的介绍和使用

django admin自带了权限控制,但是是前后端混合的,我们可以二次开发,开发出公司内部的自动化运行,自动化测试,人事管理系统,订单系统。。。。样子不好看

对django admin进行美化

-xadmin(不用了,过时了)
-simpleui(正红)

基于drf+vue 自己写前后端分离的权限管理

go-vue-admin

使用simpleui

INSTALLED_APPS = [
'simpleui',
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'app01.apps.App01Config',
'rest_framework'
] 在app中注册即可
表模型在admin.py 中注册即可展示

posted @ 2022-10-14 15:33  懒羊羊A  阅读(268)  评论(0)    收藏  举报