最近公司一直强调系统权限控制,精确到页面按钮的管理。那么问题来了,可能大多数人现在做的都是菜单的权限控制,至于页面内按钮控制怎么做呢?其实很简单,模仿呐、参考呐,前人栽树后人乘凉。哈哈~

1.了解RBAC是个什么玩意儿
2.技术选型(前端UI、数据库选择、后端架构搭建)
那么,话不多说,开整。
其中前端页面采用了H+,登录页抄袭了feiyitERP开源项目的登录页。后端采用了.NET Core 2.2,ORM使用自封装的Dapper。数据库使用Mysql
RBAC
在这里简单介绍一下RBAC吧,更多内容可以自己搜索一下相关资料。
RBAC(Role-Based Access Control )基于角色的访问控制。
RBAC 认为权限的过程可以抽象概括为:
判断【Who 是否可以对 What 进行 How 的访问操作(Operator)】
- Who:权限的拥用者或主体
- What:权限针对的对象或资源
- How:具体的权限
- Operator:操作。表明对 What 的 How 操作。也就是 Privilege+Resource
- Role:角色,一定数量的权限的集合。权限分配的单位与载体,目的是隔离User与Privilege的逻辑关系

数据库设计
按照我的设想,不希望一开始就把系统设计的很复杂(其实是能力有限,思考深度不够)。于是 就想着简单实现菜单、角色、角色权限、用户、组织机构这几块内容。最开始的数据库设计看起来是这个样子。
