当前位置: 首页 > news >正文

一个架构师的职业素养:四种常用的权限模型

🧢一个架构师的职业素养:四种常用的权限模型

你好,我是看山。

本文收录在《一个架构师的职业素养》专栏。日拱一卒,功不唐捐。

今天咱们一起聊聊权限系统。

以大家熟知的电商场景举例:

  • 用户可以分为普通用户、VIP用户:我们需要控制不同角色用户的访问范围。比如,京东的PLUS会员,可以进入会员专区,而且能够使用礼金领取优惠券,但是普通会员没有这项功能;
  • 用户还可以范围顾客、商家:顾客可以从APP下单,可以查看自己所有的订单,这些订单属于不同的商家;商家可以从后台看到自己店铺的所有订单,这些订单分属不同的顾客。

对于一个闭环的系统来说,无论是ToC还是ToB,权限系统都是基础组件,用于保障用户在权限范围内操作有权限的数据。

如何控制权限

既然要控制权限,那我首先需要清楚需要控制的因素有哪些?

第一是控制维度,用户可以做什么(Operation),在哪些对象(Object)操作:

  • 比如:对某个数据的查询、编辑、删除。我们可以将之称为功能权限。功能权限又可以细化为,看到菜单、打开页面、页面中有哪些按钮、可以访问哪些请求等。
  • 比如:A可以管理甲乙丙三个店铺;B可以管理丁一个店铺。我们可以称之为数据权限。数据权限可以细化为:单点、级联、递归等。

控制维度

第二是控制粒度,我们的权限可以控制到一组人员,还是控制到一类人员:

  • 区分:按照人员的角色进行划分,比如,A、B、C是同一个部门,具备的权限都是一样的,相同的功能权限、数据权限;
  • 区分:按照用户的特征进行划分,比如,A、B、C是同一个部门,数据权限相同。但是A是正式员工,可以有删除权限;B是正式员工,但是上个月绩效太低,删除权限被收回;C是实习生,只能有查询权限࿰

相关文章:

一个架构师的职业素养:四种常用的权限模型

你好,我是看山。 本文收录在《一个架构师的职业素养》专栏。日拱一卒,功不唐捐。 今天咱们一起聊聊权限系统。 以大家熟知的电商场景举例: 用户可以分为普通用户、VIP用户:我们需要控制不同角色用户的访问范围。比如,京东的PLUS会员,可以进入会员专区,而且能够使用礼金…...

说起来很简单,做起来很复杂:解密Chat GPT背后的原理与技术

你或许已经体验过ChatGPT,它能快速回答各种问题,生成文案、编写代码,甚至陪你聊些有趣的话题。看似简单易用,背后却隐藏着强大的技术支持。 输入几句话,ChatGPT仿佛“理解”了你的问题,立即给出准确的回答…...

tcpdump-arm平台移植

准备工作 下载并解压 972 mkdir tcpdump973 cd tcpdump/974 ls975 wget https://www.tcpdump.org/release/tcpdump-4.99.5.tar.xz976 wget https://www.tcpdump.org/release/libpcap-1.10.5.tar.xz977 tar -xvf libpcap-1.10.5.tar.xz978...

LabVIEW中的非阻塞定时器

在LabVIEW编程中,通常需要在某些任务执行过程中进行非阻塞的延时操作。例如,显示某条信息一段时间,同时继续执行其他任务,并在延时时间结束后停止显示该信息。这类需求通常用于处理优先级不同的信息显示,如错误信息需要…...

MIDIPLUS 50周年丨中国国际乐器展览会首日盛况

10月10日,由中国乐器协会、上海国展展览中心有限公司、法兰克福展览(上海)有限公司共同主办的中国(上海)国际乐器展览会在上海新国际博览中心(上海市浦东新区龙阳路2345号)盛大开幕。 2024上海…...

基于springboot的家政服务管理系统(含源码+sql+视频导入教程+文档+PPT)

👉文末查看项目功能视频演示获取源码sql脚本视频导入教程视频 1 、功能描述 基于springboot的家政服务管理系统1拥有三种角色 管理员:用户管理、服务管理、评价管理、预约管理、分配管理等 用户:登录注册、预约服务、取消服务、评价等 服…...

第十四届单片机嵌入式蓝桥杯

一、CubeMx配置 (1)LED配置 (1)LED灯里面用到了SN74HC573ADWR锁存器,这个锁存器有一个LE引脚,这个是我们芯片的锁存引脚(使能引脚),由PD2这个端口来控制的 (2&#xff…...

Zotero 如何实现数据同步 坚果云

如何在Zotero中设置webdav连接到坚果云? | 坚果云帮助中心...

基于Redis实现的延迟队列

1. 适用场景 日常开发中,我们经常遇到这样的需求,在某个事件发生后,过一段时间做一个额外的动作,比如 拼单,如果2小时未能成单,取消拼单下单,30分钟内未支付,取消订单 之前的我们的…...

LINUX——内核移植、内核编译教程

Linux内核编译是一个将内核源代码转换成可在特定硬件架构上运行的二进制文件的过程。以下是编译Linux内核的一般步骤: 1、准备工作: 确保安装了必要的编译工具,如gcc、make、ncurses库(用于make menuconfig)等。 2、…...

《OpenCV计算机视觉》—— 用于执行图像透视变换的两个关键函数

文章目录 cv2.getPerspectiveTransformcv2.warpPerspective注意事项 cv2.getPerspectiveTransform 和 cv2.warpPerspective 是 OpenCV 库中用于执行透视变换的两个关键函数。下面是对这两个函数的详细解释: cv2.getPerspectiveTransform 功能:计算从源…...

uniapp使用字体图标 ttf svg作为选项图标,还支持变色变图按

在staic目录下有一些ttf文件,如uni.ttf,iconfont.ttf 这些文件中保存这字体svg的源码们,我们也可以在网上找其他的。这些就是我们要显示的突图标的 显示来源。这样不用使用png图标,选中不选中还得用两个图片 我的具体使用如下 &q…...

<Project-6 pdf2tx> Python Flask 应用:图片PDF图书的中文翻译解决方案

重要更新! Modified on 8oct24. P6已经被 P8 替代,后着支持多任务,多翻译机。在速度与资源占用上,都好于这个P6。 新的 P8 文章链接: <Project-8 pdf2tx-MM> Python Flask应用:在…...

10.11Python数学基础-多维随机变量及其分布

多维随机变量及其分布 1.二维随机变量及其分布 假设E是随机试验,Ω是样本空间,X、Y是Ω的两个变量;(X,Y)就叫做二维随机变量或二维随机向量。X、Y来自同一个样本空间。 联合分布函数 F ( x , y ) P ( X ≤ x , Y ≤ y ) F(x,y)P(X≤x,Y≤…...

(四)Mysql 数据库备份恢复全攻略

一、数据库备份 数据库备份目的和数据库故障类型 目的: 当发生故障时,将损失降到最低。保证能够快速从备份数据中恢复,确保数据稳定运行。故障类型: 程序错误:Mysql 服务器端程序故障无法使用。人为误操作:…...

在MySQL 8.0中,如何更好地管理索引以节省空间和提高查询效率?

1. 索引选择与设计 选择合适的列:确保索引覆盖的列是经常用于查询条件、排序或连接操作的列。避免冗余索引:检查并移除重复或不必要的索引。例如,如果已经有一个 INDEX(a, b),那么单独的 INDEX(a) 可能是多余的。使用复合索引&am…...

图形化编程(013)——“面向鼠标指针”积木块

知识回顾 1、舞台和坐标的知识 2、使用坐标控制角色移动 一句俗语:大鱼吃小鱼,小鱼吃虾米,感觉挺有意思的。 这句话说明了自然界中的生存法则,本次分享我与大家共同做一个大鱼吃小鱼的作品。 案例解说: 点击绿旗…...

【Spring】Spring Boot项目创建和目录介绍

文章目录 1 Spring Boot 介绍2 Spring Boot 项目创建注意事项 3. 项目代码和目录介绍pom 文件父工程目录介绍 1 Spring Boot 介绍 Spring 让 Java 程序更加快速、简单和安全,Spring 对于速度、简单性和生产力的关注使其成为世界上最流行的 Java 框架 Spring 官方提…...

第十二章 RabbitMQ之失败消息处理策略

目录 一、引言 二、RepublishMessageRecoverer 实现 2.1. 实现步骤 2.2. 实现代码 2.2.1. 异常交换机队列回收期配置类 2.2.2. 常规交换机队列配置类 2.2.3. 消费者代码 2.2.4. 消费者yml配置 2.2.5. 生产者代码 2.2.6. 生产者yml配置 2.2.7. 运行效果 一、引言 …...

23年408数据结构

第一题: 解析: 第一点,我们要知道顺序存储的特点:优点就是随用随取,就是你想要查询第几个元素可以直接查询出来,时间复杂度就是O(1),缺点就是不适合删除和插入,因为每次删除和插入一…...

【根据当天日期输出明天的日期(需对闰年做判定)。】2022-5-15

缘由根据当天日期输出明天的日期(需对闰年做判定)。日期类型结构体如下: struct data{ int year; int month; int day;};-编程语言-CSDN问答 struct mdata{ int year; int month; int day; }mdata; int 天数(int year, int month) {switch (month){case 1: case 3:…...

Linux相关概念和易错知识点(42)(TCP的连接管理、可靠性、面临复杂网络的处理)

目录 1.TCP的连接管理机制(1)三次握手①握手过程②对握手过程的理解 (2)四次挥手(3)握手和挥手的触发(4)状态切换①挥手过程中状态的切换②握手过程中状态的切换 2.TCP的可靠性&…...

蓝牙 BLE 扫描面试题大全(2):进阶面试题与实战演练

前文覆盖了 BLE 扫描的基础概念与经典问题蓝牙 BLE 扫描面试题大全(1):从基础到实战的深度解析-CSDN博客,但实际面试中,企业更关注候选人对复杂场景的应对能力(如多设备并发扫描、低功耗与高发现率的平衡)和前沿技术的…...

vue3 字体颜色设置的多种方式

在Vue 3中设置字体颜色可以通过多种方式实现&#xff0c;这取决于你是想在组件内部直接设置&#xff0c;还是在CSS/SCSS/LESS等样式文件中定义。以下是几种常见的方法&#xff1a; 1. 内联样式 你可以直接在模板中使用style绑定来设置字体颜色。 <template><div :s…...

现代密码学 | 椭圆曲线密码学—附py代码

Elliptic Curve Cryptography 椭圆曲线密码学&#xff08;ECC&#xff09;是一种基于有限域上椭圆曲线数学特性的公钥加密技术。其核心原理涉及椭圆曲线的代数性质、离散对数问题以及有限域上的运算。 椭圆曲线密码学是多种数字签名算法的基础&#xff0c;例如椭圆曲线数字签…...

Robots.txt 文件

什么是robots.txt&#xff1f; robots.txt 是一个位于网站根目录下的文本文件&#xff08;如&#xff1a;https://example.com/robots.txt&#xff09;&#xff0c;它用于指导网络爬虫&#xff08;如搜索引擎的蜘蛛程序&#xff09;如何抓取该网站的内容。这个文件遵循 Robots…...

Axios请求超时重发机制

Axios 超时重新请求实现方案 在 Axios 中实现超时重新请求可以通过以下几种方式&#xff1a; 1. 使用拦截器实现自动重试 import axios from axios;// 创建axios实例 const instance axios.create();// 设置超时时间 instance.defaults.timeout 5000;// 最大重试次数 cons…...

Android第十三次面试总结(四大 组件基础)

Activity生命周期和四大启动模式详解 一、Activity 生命周期 Activity 的生命周期由一系列回调方法组成&#xff0c;用于管理其创建、可见性、焦点和销毁过程。以下是核心方法及其调用时机&#xff1a; ​onCreate()​​ ​调用时机​&#xff1a;Activity 首次创建时调用。​…...

2025季度云服务器排行榜

在全球云服务器市场&#xff0c;各厂商的排名和地位并非一成不变&#xff0c;而是由其独特的优势、战略布局和市场适应性共同决定的。以下是根据2025年市场趋势&#xff0c;对主要云服务器厂商在排行榜中占据重要位置的原因和优势进行深度分析&#xff1a; 一、全球“三巨头”…...

中医有效性探讨

文章目录 西医是如何发展到以生物化学为药理基础的现代医学&#xff1f;传统医学奠基期&#xff08;远古 - 17 世纪&#xff09;近代医学转型期&#xff08;17 世纪 - 19 世纪末&#xff09;​现代医学成熟期&#xff08;20世纪至今&#xff09; 中医的源远流长和一脉相承远古至…...