操作指南

星火赋能平台权限与多租户配置指南:组织、角色、菜单按钮与数据权限

初版内容

本文正在按正式版本补充截图与参数,界面名称与数值以实际软件为准。

要点速览

星火赋能平台的权限按“机构 → 职位 → 用户 → 角色(绑定菜单、按钮与数据范围)”配置:角色决定能看到哪些菜单和按钮,数据权限范围决定能看到哪些数据。多租户隔离靠实体继承平台的租户基类自动加过滤条件。超级管理员不受接口权限限制,只用于初始化与运维。

这篇面向负责系统初始化的实施工程师和需要在业务模块里正确使用权限的开发人员。读完后你能按正确顺序搭好组织与角色,配置菜单、按钮和数据权限,并了解多租户隔离在代码层面是怎么生效的。前置条件:已用超级管理员账号登录管理后台(见快速入门)。

权限模型概览 #

星火赋能平台的权限由几个内置模块共同组成:

模块作用
机构管理维护公司组织架构,支持多层级树形结构
职位管理维护用户职务,职务可作为用户的一个标签
用户管理维护用户,可绑定职务、机构、角色、数据权限
菜单管理配置目录、菜单、按钮三类节点及其权限标识
角色管理角色绑定菜单与按钮,限制该角色人员的功能范围;也可以绑定数据授权范围
字典管理维护较为固定的数据,供表单下拉等使用

一句话概括:菜单和按钮决定“能做什么”,数据权限范围决定“能看哪些数据”,二者都挂在角色上,再分配给用户。

推荐配置顺序 #

按下面的顺序初始化,可以避免“建了用户却挂不上机构”“角色缺菜单”之类的返工。

  1. 机构:先在“机构管理”中按实际组织建好树形结构。数据权限范围通常以机构为边界,结构要贴近真实管理关系。
  2. 职位:在“职位管理”中维护岗位。
  3. 菜单:确认业务菜单已存在(代码生成器会自动写入,见代码生成器使用指南),检查按钮的权限标识是否完整。
  4. 角色:在“角色管理”中新建角色,勾选菜单与按钮,再设置数据授权范围。
  5. 用户:在“用户管理”中新建用户,选择所属机构、职位和角色。

配置完成后,用对应的测试账号登录,确认菜单、按钮和数据范围符合预期。平台种子数据里预置了普通员工测试账号,可直接用来对比不同权限的效果。

菜单与按钮级权限 #

菜单管理中的节点分三类:

类型说明
目录左侧导航的分组,不对应具体页面
菜单对应一个页面路由
按钮页面内的操作,如新增、编辑、删除、导出,用权限标识控制

注意事项:

  • 按钮权限要前后端同时生效:前端按标识隐藏按钮只是体验,后端接口也必须按同一标识校验,否则绕过页面直接调接口仍能操作;
  • 权限标识被角色引用后再修改,要同步检查所有引用它的角色;
  • 超级管理员不受接口权限限制,看到的一切不代表普通用户能看到,验收时一定用普通角色账号测试。

数据权限范围 #

角色除了绑定菜单,还可以绑定数据授权范围,用于控制同一个菜单下不同人看到的数据行。常见的范围划分方式是按机构:全部数据、本机构及下级、仅本机构、仅本人、自定义机构等(具体可选项以你所用版本的角色管理界面为准)。

开发时要注意:

  • 数据权限依赖业务数据上记录了所属机构或创建人,新建业务表时要保留这些字段;
  • 报表、统计、导出等接口同样要套用数据权限,最容易漏掉的就是这几类“非列表”接口。

多租户 #

平台内置多租户能力,适合同一套部署服务多个相互隔离的单位。

隔离是怎么生效的 #

业务实体继承平台的租户实体基类后,SqlSugar 会对该实体的查询自动加上租户过滤条件,同一租户下的用户只能读写本租户数据。没有继承租户基类的实体则是全局共享数据。

因此建表前要先想清楚每张表属于哪一类:

数据类型建议
各单位独立的业务数据继承租户实体基类
全局共享的基础数据(如通用字典)不继承租户基类
跨租户汇总统计单独设计接口,明确忽略租户过滤,并严格限制可调用的角色

常见误区 #

  • “登录后看不到数据”:先确认当前账号所属租户与数据所属租户是否一致,再查角色与数据权限;
  • 后台定时任务、事件处理等没有登录上下文的代码,读取租户数据时要显式指定租户,否则可能读不到或读错。

种子数据与上线前检查 #

平台每次启动都会增量补齐种子数据:缺表建表、缺记录插入;带 [IncreSeed] 标记的种子按 Id 更新;带 [IgnoreUpdateSeed] 标记的实体(如用户表)只补不覆盖,已存在的用户不会被种子改写。

上线前务必完成:

  • 修改所有预置管理员与测试账号的密码,不再使用的测试账号停用;
  • 修改系统配置中的默认密码参数,避免新建用户使用公开的默认密码;
  • 收紧后端跨域配置,只允许正式域名访问管理后台接口;
  • 管理后台只部署在内网或加访问白名单,不对公网开放。

更多部署与环境问题见星火赋能平台常见问题。