专注于 JetBrains IDEA 全家桶,永久激活,教程
持续更新 PyCharm,IDEA,WebStorm,PhpStorm,DataGrip,RubyMine,CLion,AppCode 永久激活教程

【文】关于用户权限管控的方案设计

39_1.png


关于很多的 WEB 项目都有用户登录作为入口的, 所以在项目中拥有一个完善的用户权限管控的设计方式, 很重要, 特别是在一些安全平台上, 绝不给你越界的权限。
如一般的设计方式:

39_2.png

利用管理员的权限管理所有普通用户, 这种方式虽然可达到到权限管控的目的, 但是管控范围太过广泛, 细化是这次需要讲述到的, 明确每个管理者被分配的权限。

范围管辖式权限管控

不要纠结这个名字, 这个命名我也是灵光一闪命名的, 意思就是 利用划分不同范围, 管理人员可管理范围内的用户, 最终管理者可管理所有范围内的用户, 范围内管理者不可逾越该范围而管理其他用户。 示意图如下:

39_3.png

在分配权限时, 权限受益者是用户, 例如:用户 A 分配的权限是管理员, 用户 A 所在的用户组:group-A, 那么用户 A 将可以管理所有在group-A的用户, 这种方式类似于部门经理管理部门内员工, 总经理管理所有部门一样, 当然你也需要注意, 在授权的时候明确授权者和被授权级别的关系, 如管理员不能授予用户系统管理员的权限。
人员架构图如下:

39_4.png

不同颜色之间相互独立。

分组授权权限管控

不得不说命名才是最困难的, 这个意思是 根据权限表, 你可以自定义权限组, 将用户添加至组内, 用户将会享受组带来的权限支持。示意图如下:

39_5.png

在这种设计方案中, 收益的是用户组, 而最终受益是用户组内的用户, 他们享受组所定义的权限。 那不同的设计就会有不同的方案, 最主要的区别在于你怎么设计和规划你的权限枚举表, 如按照界面来分配, 按照功能块来分配, 或者其他。 我们简单的按照界面来分配, 这种方式就是我给你这个界面的权限, 你就可以使用这个界面上的所有功能, 具体不做详细赘述。
如你定义了一条权限数据, 数据内容是所有的权限都可以使用, 并命名为最终管理员组, 此时你创建了一个用户 B, 并添加到了这个组内, 此时用户 B就是一个带有所有权限的用户, 针对不同工作性质, 不同级别, 你可以指定很多组, 并将指定用户添加进去。

再细化

那么再对上面的细化就是请求方法了, 当然, 我们不叫请求方法, 二十具体功能, 如同一个界面, 有查阅/更新/修改/删除等功能, 你可以根据这类具体的操作(功能), 再来细化你的权限管控, 但是在你设计模型的时候, 很可能会绕在里面出不来, 稍微有点小小的复杂, 后面有可能的话, 作者会实现一套 Django 模型, 也便于以后自己使用, 细化的目的是为了权限具体, 当然也要考虑实际情况, 如一些应用不需要这样复杂的管理方式, 就需要一个用户和管理者即可, 再有就是你对一个请求的用户, 进行权限校验的复杂程度, 也关系到项目的响应快慢, 效率问题, 所以细化不是越细化越好, 而是在需求上达到目的即可。

码字不易, 点个赞吧~
今天你进步了吗?

未经允许不得转载:搜云库技术团队 » 【文】关于用户权限管控的方案设计

JetBrains 全家桶,激活、破解、教程

提供 JetBrains 全家桶激活码、注册码、破解补丁下载及详细激活教程,支持 IntelliJ IDEA、PyCharm、WebStorm 等工具的永久激活。无论是破解教程,还是最新激活码,均可免费获得,帮助开发者解决常见激活问题,确保轻松破解并快速使用 JetBrains 软件。获取免费的破解补丁和激活码,快速解决激活难题,全面覆盖 2024/2025 版本!

联系我们联系我们