# 角色权限后续开发流程 ## 1、数据库设计 ### 1.1 实体设计 + 用户:admin_info + 角色: role_info + 用户角色:user_role + 菜单:permission_info + 角色菜单:role_permission + 功能权限:function_permission ###1.2 ER关系图 ![微信截图_20180820231347](./微信截图_20180820231347.png) ## 2、功能权限配置 ### 2.1 新增API接口,页面跳转请求url配置 当后台新增接口时,需要把新增接口API说明,请求URL,请求方式配置到功能权限表中 正则匹配规则: + 全匹配原则;例如/admin/web/accountinfo/list + 末端变量匹配原则;例如(/admin/web/activity/).*,则匹配的URL为以/admin/web/activity/前缀,后面跟任意的字符。 + 多变量匹配原则;例如(/admin/web/activity/).*(/status),则匹配的URL为以/admin/web/activity/前缀,后面跟任意的字符,以/status结尾。 示例: | id | name | url | method | RESTful url | | ---- | ------------ | --------------------------------- | ------ | ------------------------------- | | 1 | 获取账户信息 | /admin/web/accountinfo/list | GET | /admin/web/accountinfo/list | | 2 | 获取活动详情 | (/admin/web/activity/).* | GET | /admin/web/activity/{id} | | 3 | 活动状态切换 | (/admin/web/activity/).*(/status) | POST | /admin/web/activity/{id}/status | ### 2.2 菜单配置 当后台运营系统功能模块前端调用接口发生改变时,我们需要相应的调整新增或删减该模块对应的功能权限。 配置入口:系统设置 -> 菜单管理,修改对应菜单的功能权限id,功能权限id则为2.1配置表中的id,以英文逗号分隔。 ![微信截图_20180821101530](./微信截图_20180821101530.png) ## 3、开发生产配置保持同步 为保证上线正常访问,在开发阶段,需保证线上配置与开发库保持同步,以便于上线数据的更新。