PurestAdmin 是什么?
- PurestAdmin 是一款前后端分离的基于"RBAC"权限管理的后台管理系统。旨在打造一款适合大、中、小型项目快速二次开发的模板,本项目不做任何业务型的功能,尽量做到下载即用,方便广大的开发者进行快速业务开发,无需再为搭建项目框架而烦恼!
- 本项目打破传统RBAC构思,不再使用后端配置前端的各种菜单路径,真正做到 前后端分离 (详见下文“设计思路”),重新设计了token的刷新机制,实现 单token无感刷新
项目结构
- Api 后端接口项目,使用.Net8开发,在abp框架的设计上进行了精简和改良,只保留了核心功能,重写了部分abp的功能。使用SqlSugar替代了传统的EFCore,效率更高,使用更方便
- client-vue vue客户端项目,采用了高质量前端项目vue-pure-admin的精简版pure-admin-thin。并额外使用了功能非常强大的vxe-table及其内置的其他组件
- client-wpf wfp客户端项目,使用wpf界mvvm模式下用户基数非常庞大的框架prism,引入Rubyer-WPF主题和控件包,让界面显示更友好。http请求方面,重新封装了restful格式的Flurl,让请求更方便
- relationship-model 关系模型,数据库关系模型图,基于Powerdesigner设计的Pdm图形,以及对应的表结构初始化SQL
- screenshot 项目截图
设计思路
- 服务端 不再关心前端的任何实现,只针对功能,开放接口,同时通过“功能管理”,控制用户调用接口的的权限
- 客户端 无需再和服务端约定路由等相关内容,直接根据接口,获取功能编码,通过唯一的“功能编码”挂载路由以及控制界面功能
权限设计
- 客户端开发者,通过系统管理-功能管理,维护界面的功能,以及对应功能所使用的接口
- 客户端通过auth/functions接口返回的编码集合,判断用户客户端的界面展示的功能权限
- 服务端通过比对当前用户调用的接口和当前用户所拥有的接口,进行权限控制
IMPORTANT
权限编码(permissions)是在登录后随之调用接口缓存在本地的,所以,如果您在平台修改了某个角色的功能后。对应的用户需要重新登陆才能正确生效
开发环境
开发工具
- Visual Studio 2022
- Vs Code
数据库
项目默认使用mysql8.0,并提供初始化脚本,同时在api项目里,有一个PurestAdmin.Zero控制台,可以初始化种子数据,同时提供了基于powerdesigner的pdm模型,有其他数据库需求的话可以自行转换