项目介绍原创
# 项目介绍
# 概要
snapper权限系统是一套完善的权限管理系统,同时也是一套完善的微服务框架,不依赖于业务,方便集成,开箱即用。权限包括资源权限管理和数据权限管理, 资源权限管理包括菜单和按钮,数据权限管理包含功能数据权限、业务数据权限、列数据权限。
- 资源权限 是基于角色的控制管理(RBAC),每个资源都对应唯一的URL + 请求方法,同时每个功能又会对应唯一的”动作(Action)“,该动作与数据权限进行关联,即”数据权限针对的是每个功能(动作)的数据权限”
- 功能数据权限 是根据功能进行定制化过滤,意为”谁能看到我的数据,和我都能看到谁的数据”,也称之为“委托”,是针对条件的过滤
- 业务数据权限 是功能数据权限的进一步延伸,意为”谁能看到当前查询表中的那些列(条件)中的那些数据”,是针对条件的过滤,是表列条件的自定义扩展
- 列数据权限 是针对所选列的扩展,意为”我不应该看到当前查询中的那些字段(列)”,因此此功能只针对SELECT查询
# 功能列表
- 用户管理 管理系统用户,激活、启用、停用、重置密码、设置标签等功能
- 角色管理 管理系统的资源权限,分配用户,资源授权等功能
- 用户组 管理多个用户为一组,集中进行角色分配及数据权限分配
- 组织架构 管理系统组织架构,分配人员,职位,角色等功能
- 职位管理 管理组织中的职位,分配职位对应的角色和数据权限等功能
- 授权管理 从用户和用户组维度,对功能进行功能数据权限、业务数据权限、列数据权限的分配
- 菜单管理 管理系统中的菜单资源和按钮资源,对每个功能进行业务动作关联
- 数据列 管理业务表中数据列,业务数据权限分配时按照指定列分配
- 字典管理 管理系统中字典数据,比如用户业务标记,用来与数据权限关联
- 参数管理 管理系统中的关键参数,比如网站LOGO等
- 业务日志 管理系统中的日志,包含操作人、操作模块、请求信息、异常信息、浏览器信息等
- 接入用户 管理第三方接入系统的用户,设置IP段、生效时间段、分配APPID、APPKEY等
- 接入日志 管理第三方接入系统的日志,包含请求IP、来源系统、浏览器、请求信息、错误信息等
- 限流管理 针对IP、账号、授权协议等维度的流量限制,控制总流量及单位流量功能等
# 项目体系
提示
前端都是基于React开发的,Vue构建权限组件也很简单,具体参考snbm项目中的Permit组件
- snam-boot (opens new window)基于Spring Boot,是权限功能的后台服务端,为集成权限的后台示例
- snapper-cloud 是权限功能的依赖库
- snam (opens new window) 基于React、Antd,是权限功能的UI端,开箱即用
- snbm (opens new window) 基于React、Antd,是权限功能业务UI(权限生效)示例
# 框架体系
# 业务架构
注意
中间件中,FastDFS文件服务为可选的,其他中间件为项目运行所必须的!