RBAC基于角色的访问控制

一 什么是RBAC

概念

RBAC  是基于角色的访问控制(Role-Based Access Control )在 RBAC  中,权限与角色相关联,用户通过成为适当角色的成员而得到这些角色的权限。这就极大地简化了权限的管理。这样管理都是层级相互依赖的,权限赋予给角色,而把角色又赋予用户,这样的权限设计很清楚,管理起来很方便。

应用

# RBAC - Role-Based Access Control
# Django的 Auth组件 采用的认证规则就是RBAC# 1)像专门做人员权限管理的系统(CRM系统)都是公司内部使用,所以数据量都在10w一下,一般效率要求也不是很高
# 2)用户量极大的常规项目,会分两种用户:前台用户(三大认证) 和 后台用户(BRAC来管理)
# 结论:没有特殊要求的Django项目可以直接采用Auth组件的权限六表,不需要自定义六个表,也不需要断开表关系,单可能需要自定义User表

前后台权限控制

# 1)后台用户对各表操作,是后台项目完成的,我们可以直接借助admin后台项目(Django自带的)
# 2)后期也可以用xadmin框架来做后台用户权限管理# 3)前台用户的权限管理如何处理
#   定义了一堆数据接口的视图类,不同的登录用户是否能访问这些视图类,能就代表有权限,不能就代表无权限
#   前台用户权限用drf框架的 三大认证

二 Django的内置RBAC(六表)

权限三表

image

权限六表

image

三 实操

models.py

from django.db import modelsfrom django.contrib.auth.models import AbstractUser
class User(AbstractUser):mobile = models.CharField(max_length=11, unique=True)def __str__(self):return self.usernameclass Book(models.Model):name = models.CharField(max_length=64)def __str__(self):return self.nameclass Car(models.Model):name = models.CharField(max_length=64)def __str__(self):return self.name

admin.py

from . import modelsfrom django.contrib.auth.admin import UserAdmin as DjangoUserAdmin# 自定义User表后,admin界面管理User类
class UserAdmin(DjangoUserAdmin):# 添加用户课操作字段add_fieldsets = ((None, {'classes': ('wide',),'fields': ('username', 'password1', 'password2', 'is_staff', 'mobile', 'groups', 'user_permissions'),}),)# 展示用户呈现的字段list_display = ('username', 'mobile', 'is_staff', 'is_active', 'is_superuser')admin.site.register(models.User, UserAdmin)
admin.site.register(models.Book)
admin.site.register(models.Car)

这样就可以登陆到admin后台进行操作了

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/598695.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python 设置文件资源锁定

功能背景 使用线程操作或者多个程序同时对同一个excel文件进行读写操作,不可避免的会操作冲突的问题,有没有一种方法就是可以不冲突,而是等待上一个程序使用完成后再对文件进行操作,就是等待一个完成再接着下一个? 实现…

SD杂症:TemporalKit的key关键帧无图片问题

本地安装好temporalkit后,进行Ebsynth预处理后,居然发现key文件夹里,没有一张图片 搜遍百度,搜到了原因,也搜到了解决方案 但是。。。。这个解决方案我觉得很不cool,像个打补丁的老师傅,缝缝补补…

深度掌握GitHub Copilot:提高编码效率的终极指南

引言: GitHub Copilot,作为一款由OpenAI和GitHub合作打造的智能代码助手,正在迅速改变开发者的编码体验。本文将深入研究GitHub Copilot,从安装和基础用法到高级应用和实用技巧,助您充分发挥这一工具在提高编码效率和…

Linux第16步_安装NFS服务

NFS(Network File System)是一种在网络上实现的分布式文件系统,它允许不同的操作系统和设备之间共享文件和资源。 在创建的linux目录下,再创建一个“nfs“文件夹,用来供nfs服务器使用,便于”我们的开发板“…

GeoServe本地部署结合内网穿透实现远程访问Web管理界面

文章目录 前言1.安装GeoServer2. windows 安装 cpolar3. 创建公网访问地址4. 公网访问Geo Servcer服务5. 固定公网HTTP地址 前言 GeoServer是OGC Web服务器规范的J2EE实现,利用GeoServer可以方便地发布地图数据,允许用户对要素数据进行更新、删除、插入…

springboot中使用mongodb进行简单的查询

文章目录 引言依赖配置文件代码编写1、实体类2、使用repository查询3、使用MongoTemplate查询 引言 应用程序中,通常会使用两种数据库,一种是关系型数据库如mysql等,另一种则是非关系型数据库例如mongodb,今天我们就来讲一讲如何…

PPT插件-大珩助手-文字整理功能介绍

删空白行 删除文本中的所有空白行 清理编号 删除文本中的段落编号 清理格式 删除文本中的换行、空格符号 清理艺术 删除文本的艺术字效果 清理边距 删除文本框与文字之间的间隙 软件介绍 PPT大珩助手是一款全新设计的Office PPT插件,它是一款功能强大且实…

【Python案例实战】水质安全分析及建模预测

一、引言 1.水资源的重要性 水是生命之源,是人类生存和发展的基础。它是生态系统中不可或缺的组成部分,对于维系地球上的生命、农业、工业、城市发展等方面都具有至关重要的作用。 2.水质安全与人类健康的关系 水质安全直接关系到人类的健康和生存。水中的污染物和有害物…

苹果Mac电脑PDF优化压缩推荐 Recompress中文 for Mac

Recompress采用了先进的压缩技术,能够智能地分析PDF文件并确定哪些内容可以进一步压缩以节省存储空间。中文界面:Recompress Mac版提供了符合国人浏览习惯的中文界面,使得用户在使用时更加方便。批量压缩:Recompress支持批量压缩P…

Linux三剑客 grep、sed和awk浅析

grep、sed和awk是文本处理中最强大的三个命令行工具。它们在Linux中广泛用于文本搜索、替换、格式化和报告,下面我将详细介绍相关语法和使用案例。 grep (Global Regular Expression Print) grep是一个模式搜索工具,它使用正则表达式来搜索文本&#x…

海外直邮革命:跨境电商的全球化销售策略

在数字化时代,跨境电商正经历着一场革命,而海外直邮成为这场变革的引领者。全球范围内,越来越多的企业通过直邮方式销售商品,打破了地域限制,实现了商品的全球化流通。本文将深入探讨海外直邮的崛起,以及跨…

Spring Cloud Config相关问题及答案(2024)

1、什么是 Spring Cloud Config,它解决了哪些问题? Spring Cloud Config 是一个为微服务架构提供集中化外部配置支持的项目。它是构建在 Spring Cloud 生态系统之上,利用 Spring Boot 的开发便利性,简化了分布式系统中的配置管理…

文件管理方法和技巧,清除文件名中的大写字母

如何将多个文件名称中的大写字母都清除掉,有没有批量操作的方法?这个还真的有,今天小编就给各位朋友介绍一款很好用的软件——文件批量改名高手,助大伙一键清除多个文件名称中的所有大写字母。 所需工具: 一个【文件…

激情与创造的三重旋律:数学、编程与诗歌翻译的人生奏章

回顾过去的28载,我对生命中那些塑造我成长轨迹的经历充满感恩。自南京大学数学系求学起步,1995年毕业后携带着深厚的数学根基走入社会。从教学数学到转战编程领域,在泸州职业技术学院的教学生涯中逐渐过渡,这一过程仿佛顺理成章&a…

Mysql 中的常用命令

在数字化世界中,数据库已经成为数据存储和处理的核心。而MySQL,作为最受欢迎的关系型数据库管理系统之一,其强大的功能和易用性使它成为开发者和企业的首选。掌握MySQL中的常用命令,是每一位数据库管理员和开发者的基本要求。本篇…

RocketMQ5-01云原生和AI演变下的架构重构

2022年9月22日,迎来 RocketMQ5 的发版,距离 2017 发布的 4.X 时代,RocketMQ 迎来 5.X 时代。 RocketMQ 4.X 时代已经使众多开发者和项目受益,但是随着关注度、使用量逐步上升以及云原生时代的到来,也对其自身架构带来…

无法开机报 不可恢复的错误:securityagent无法创建所要求的机制Teamviewerauthplugin:start

无法开机报 不可恢复的错误:securityagent无法创建所要求的机制Teamviewerauthplugin:start 初步判断很有可能是TeamViewer的某个启动项或者签名书没有, 导致在预加载的时候无法加载TeamViewer。 然后出现这个情况有一个前提,那就是你用了第三…

神经网络框架的基本设计

一、神经网络框架设计的基本流程 确定网络结构、激活函数、损失函数、优化算法,模型的训练与验证,模型的评估和优化,模型的部署。 二、网络结构与激活函数 1、网络架构 这里我们使用的是多层感知机模型MLP(multilayer prrceptron)&#x…

如何委婉地告诉老板,BI连接金蝶ERP,对决策更有利?

网友:新入职一家企业,发现这家企业依旧是从金蝶ERP中导出数据做分析,这样数据量一大、科目变动多就很难保证数据分析的及时性、灵活性,说真的这对决策来说并不是什么好事。但老板似乎并不觉得这有什么不对。我该如何委婉地告诉老板…

Java 新手如何使用Spring MVC 中的查询字符串和查询参数

目录 前言 什么是查询字符串和查询参数? Spring MVC中的查询参数 处理可选参数 处理多个值 处理查询参数的默认值 处理查询字符串 示例:创建一个RESTful服务 总结 作者简介: 懒大王敲代码,计算机专业应届生 今天给大家…