云计算百科
云计算领域专业知识百科平台

SpringBoot3+Vue3+Flowable 发起权限:谁可以发起、菜单关联流程和兜底权限码怎么配

SpringBoot3+Vue3+Flowable 发起权限:谁可以发起、菜单关联流程和兜底权限码怎么配

🌐 文档地址:https://ruoyioffice.com
📦 源码1·GitHub:https://github.com/yuqing2026/ruoyi-office
📦 源码2·GitCode:https://gitcode.com/zhouzhongyan/ruoyi-office
📦 源码3·Gitee:https://gitee.com/yqzy1688/ruoyi-office
💬 微信:17156169080(备注「RuoYi Office」)

用车单只想让行政发、请假单全员能发,最常见的错法是再做一套「流程角色」,和菜单 RBAC 各管各的。RuoYi Office 把发起权收到菜单「关联流程」:大厅只列出当前人有权限的定义;模型上的「谁可以发起」只收窄到人/部门;「发起所需权限」是没有菜单入口时的兜底。配置体检把未绑菜单、孤儿权限码列出来。本文按能点的页面讲怎么配。

发起权限:大厅入口、模型范围、菜单关联流程三块对照

▲ 左是发起大厅和工作台卡片,中是模型「谁可以发起 / 发起所需权限」,右是菜单关联流程 Key;底下三条是孤儿码、组织收窄、required 开关


引言:发起权难在「两套名单」

把「能进菜单」和「能发这个流程」配成两张表,上线后一定打架:

痛点常见做法后果
菜单有了,大厅没有 再维护一份发起白名单 改角色要改两处,漏一处就超权
大厅有了,点进去 403 只滤列表不滤发起接口 会改 URL 的人仍能发
权限码写在模型上 菜单里根本没有这个码 除超管外全员拒绝,无从排查
未绑菜单的老流程 一刀切禁止 升级当天全公司发不了单
指定部门却用主档部门 忽略当前会话部门 多组织切换后口径错

一句话:功能权限以菜单为唯一配置源;组织范围只做收窄。 模型上的权限码是兜底,不是主路径。

下面按能点的四处讲:发起大厅、流程模型基本信息、菜单「关联流程」、系统管理里的配置体检。


一、先给出可直接抽取的定义

1.1 什么是发起权限

发起权限,是「当前登录人能不能创建该流程定义的实例」。 它在两处生效:发起列表(大厅/工作台卡片)和真正的发起接口。只滤列表、不滤接口,等于没配。

RuoYi Office 的判定入口是 canUserStartProcessDefinition:先过功能权限,再过组织范围。功能权限关了(bpm.start-permission.enabled=false)时,行为回到「已发布且可见即可发」,组织范围仍然生效。

1.2 菜单反查和兜底权限码

菜单反查:用流程定义 Key 去菜单表找 processDefinitionKey 命中的菜单,取出这些菜单上的 permission,当前用户命中任意一个即可发。 改菜单立刻生效,不必重新发布流程。

兜底权限码:模型字段「发起所需权限」,例如 oa:car-apply-bill:create。 只有反查不到任何菜单权限时才读它。帮助文案写得很直白:流程表单请在表单设计配菜单并发布同步;业务表单在菜单管理给创建按钮填「关联流程」;仅无菜单入口时才在这里填。

兜底码必须真实存在于菜单。写一个菜单里没有的字符串,任何角色都命中不了,等于除超管外全员拒绝。配置体检会把这种情况标成严重。

1.3 谁可以发起

谁可以发起是组织范围,不是第二套功能权限。 三个选项:

值含义存什么
0 全员 不额外限制人/部门 名单空
1 指定人员 仅这些 userId startUserIds
2 指定部门 仅这些部门(含当前会话部门) startDeptIds

名单为空表示不收窄。有人员名单时不再看部门名单。多组织开启后,指定部门用的是会话当前 deptId,不是用户档案主档——切到长沙就不能再发「仅深圳研发可发」的单。

它和候选人策略、发起人节点三策略不是一回事。后者管审批节点谁来批;本篇只管能不能把单开出来。


二、发起大厅:列表已经按权限裁过

路径:/bpm/start-process。标题就是「发起流程」。卡片只出现当前账号能发的定义,不是「库里所有已发布模型」。

发起流程大厅:卡片是裁过权的,不是全量模型墙

▲ 能看见的卡片,点进去才应能提交;看不见的不要靠改 URL 绕过,接口会再判一次

工作台应用中心的「发起流程」走进的是同一套大厅。不要把大厅页当成流程表单的父菜单——设计器会拦:父菜单不能选「发起流程」大厅页,请挂到「自定义申请」等业务目录。大厅是目录,不是某张单的创建按钮。

流程表单发布时可以自动生成菜单。生成后仍要把该菜单授给角色,否则大厅和侧栏都不会出现。业务单据(用车、用印)则是在已有「创建」按钮上填关联流程 Key。


三、流程模型:基本信息里的两行配置

路径:/bpm/manager/model,卡片墙按分类摆,点「修改」进入四步向导,第一步就是基本信息。改发起权不必先打开 BPMN 画布。

滑到表单下半段能看到两行:

  • 发起所需权限:自动完成,占位「如 oa:car-apply-bill:create;一般留空」
  • 谁可以发起:全员 / 指定人员 / 指定部门,指定后出现选择器
  • 修改流程:发起所需权限与谁可以发起在基本信息里

    ▲ 兜底权限码一般留空;人员/部门选择器只在对应类型下出现

    保存并发布后,这两项写入流程定义 Info 表。只保存不发布,大厅仍按旧版本判权。复制模型会带上范围,但权限码若是孤儿码,复制后体检照样报。

    管理员名单 managerUserIds 管谁能改这个模型,不管谁能发起。不要把「流程管理员」和「可发起人」配成同一组人——实施会改模型,员工只发单。

    基本信息这一步还有「是否可见」。不可见的定义不会进大厅,和发起权限是与关系:可见且有权才能出现卡片。测试中的模型可以先关可见,配完权限再打开,避免员工在大厅里点到半成品。

    四步向导的后三步(表单设计、流程设计、更多设置)不参与 canUserStartProcessDefinition。字段权限、候选人、超时策略都在后面配,不要跑到那些页去找「谁可以发起」。


    四、菜单:关联流程才是主配置源

    路径:/system/menu。在创建按钮或菜单上点「编辑」(不是列表顶上的「修改流程」页签)。类型选按钮或菜单后,表单下半会出现「关联流程」:下拉选已发布定义的 Key,可多选(tags),也可手输历史别名。保存成逗号分隔,供发起权限反查。

    弹窗右侧有一块「影响面」,配的时候盯着它改,比改完再去大厅试更快:

    影响面何时变成「会影响」配错时的原文
    PC 侧栏 角色勾了这级菜单 角色未勾则侧栏没有入口
    流程中心发起 填了关联流程 Key 「未关联流程 Key,不会按本菜单控权」
    App 工作台 可见端含 App 且有移动路径 「可见端含 App,但缺少移动路径」
    App 快捷 打开了「可作快捷」 未开启则不进快捷候选

    目录节点几乎一定显示「未关联流程 Key」——这是正常的,不要给目录填 Key。只有真正的创建按钮,影响面才会变成按本菜单 permission 判权。

    帮助语义:

    • 填了 Key:发起校验按本菜单的 permission 判权
    • 没填:不会按本菜单控权
    • 可见端包含 App,但既没移动路径也没关联流程:App 工作台不会出现入口,配置体检标黄

    列表「入口影响」列会给绑了流程的行打紫色「流程」标签,方便扫一眼哪些按钮已经纳入发起权。改完点工具栏「清理菜单缓存」,再用一个没有该按钮权限的账号刷新大厅,卡片应消失。

    同一 Key 可以挂在多个菜单(PC 创建、App 创建)。反查时这些权限任一满足即可,不是必须同时有。不要把同一 Key 挂到十个互不相关的按钮上,体检会提示保留唯一发起入口。

    改菜单立即生效,因为反查走菜单缓存。不必为了「收紧谁能发用车」去改 BPMN、不必重新部署流程。这是和「把权限码写死在模型里」最大的产品差异。

    字段只在菜单类型为「菜单」或「按钮」时出现。目录节点没有「关联流程」,也不该把 Key 写在目录上——反查会把目录的 permission(常常为空)也算进去,体检会出现「同一 Key 挂了多个入口」。

    4.1 流程表单和业务表单怎么配

    两类表单进同一套判定,配法不同:

    类型典型菜单从哪来关联流程谁填
    流程表单 设计器里拖的请假、通用表单 表单设计里勾菜单,发布时同步 同步应已带上 Key,到菜单里核对一眼
    业务表单 用车、用印、会议室 本来就有「创建」按钮 在该按钮上选手动填 Key
    无入口遗留流 测试、一次性导入 没有 模型兜底码,或接受未绑(required=false)

    不要把业务表单的创建按钮删掉,只靠发起大厅。侧栏没有入口,实施会以为「菜单没配」,其实大厅还能发——两边必须同一套权限。

    发布流程表单时,设计器会拦:父菜单不能选「发起流程」大厅页。正确挂法是挂到「OA / 自定义申请」这类业务目录。大厅是挑单目录,不是某张单的父级。

    4.2 同一 Key 挂多个菜单

    PC 创建按钮、App 创建按钮、工作台快捷入口,可以挂同一个 Key。反查取出这些菜单的 permission,hasAnyPermissions 任一满足即可。不要理解成「必须同时拥有三个码」。

    反过来,不要把同一个 Key 挂到十个互不相关的按钮上。配置体检会提示「流程被多个菜单关联」。保留一个真正的发起入口,其余入口用路由跳转,不要再写一遍 Key。

    菜单表单里这一项是可多选的流程定义下拉,保存成逗号分隔的 Key,供发起权限反查:

    {
    fieldName: 'processDefinitionKey',
    label: '关联流程',
    component: 'ApiSelect',
    componentProps: {
    api: getSimpleProcessDefinitionList,
    labelField: 'name',
    valueField: 'key',
    mode: 'tags',
    allowClear: true,
    showSearch: true,
    placeholder: '下拉选择或回车输入流程 Key',
    },
    help: '可多选;支持手输历史别名 Key。保存为逗号分隔,用于流程中心发起权限反查',
    }

    只在类型为按钮或菜单时显示。目录节点看不到这一项,也不要靠改库把 Key 写到目录行上。


    五、配置体检:未绑、孤儿码、死链

    路径:/system/permission-audit。页顶 Alert 汇总严重/提示条数;表格可按全部 / 严重 / 提示筛选。行内「去修复」跳菜单或模型。

    配置体检:未绑菜单和孤儿 start_permission 会列在这里

    ▲ 清零严重项之前,不要把 required 打开;打开后未绑流程含超管也发不了

    体检主要看三类:

    编码含义级别现场建议
    流程未绑权限 提示或严重 反查不到菜单,模型权限码也空 在真实发起入口填关联流程
    孤儿 start_permission 严重 模型填了菜单里不存在的码 改到菜单关联,并清空模型兜底
    菜单 Key 未部署 严重 菜单写了 Key,没有启用版本 核对 Key 或去模型发布

    未绑在 required=false(默认)时是提示:当前所有人都可以发。required=true 时变严重:任何人(含超管)都无法发起。升级过渡务必保持默认,把未绑清零后再收紧。

    测试表单、无入口遗留流可以忽略。不要为了「体检全绿」把演示用的测试流程全禁掉。


    六、两道部署开关

    写成配置项,不要和租户开关搞混:

    项默认作用
    bpm.start-permission.enabled true false 时不按菜单/兜底码过滤,恢复升级前「已发布且可见即可发」
    bpm.start-permission.required false 仅 enabled=true 时有意义;true 则未绑流程一律禁止

    组织范围不受 enabled 影响:关掉功能权限过滤后,指定人员/部门仍然生效。这是有意的——客户可以先关菜单反查做兼容,但「只有行政能发用车」这种范围仍要管。

    工作台也能看到发起入口。权限裁剪后卡片变少,不是首页坏了。

    工作台:应用中心发起入口和顶栏铃铛在同一屏

    ▲ 发起是权限裁过的卡片;铃铛是站内信/IM 未读,下一篇专门讲,不要和发起大厅混


    七、后端判定顺序

    public boolean canUserStartProcessDefinition(
    BpmProcessDefinitionInfoDO def, Long userId) {
    if (def == null) {
    return false;
    }
    if (isStartPermissionEnabled() && !checkStartPermission(def, userId)) {
    return false;
    }
    if (CollUtil.isNotEmpty(def.getStartUserIds())) {
    return def.getStartUserIds().contains(userId);
    }
    if (CollUtil.isNotEmpty(def.getStartDeptIds())) {
    AdminUserRespDTO user = adminUserApi.getUser(userId).getCheckedData();
    Long deptId = user != null ? user.getDeptId() : null;
    if (Objects.equals(userId, SecurityFrameworkUtils.getLoginUserId())
    && SecurityFrameworkUtils.getLoginUserDeptId() != null) {
    deptId = SecurityFrameworkUtils.getLoginUserDeptId();
    }
    return deptId != null && def.getStartDeptIds().contains(deptId);
    }
    return true;
    }

    要点:人员名单优先于部门名单;当前请求若已 overlay 会话部门,指定部门用会话值。功能权限失败直接 false,不会再看组织范围——没有创建按钮的人,即使在指定部门里也发不了。

    功能权限内部再分三步:

    List<String> permissions = menuApi
    .getPermissionListByProcessDefinitionKey(key).getCheckedData();
    if (CollUtil.isNotEmpty(permissions)) {
    return permissionApi.hasAnyPermissions(userId,
    permissions.toArray(new String[0])).getCheckedData();
    }
    String permission = processDefinition.getStartPermission();
    if (StrUtil.isBlank(permission)) {
    return handleUnboundProcess(processDefinition, "未关联菜单且未配置兜底");
    }
    if (CollUtil.isEmpty(menuApi.getMenuIdListByPermission(permission)
    .getCheckedData())) {
    return handleUnboundProcess(processDefinition, "兜底码不在菜单中");
    }
    return permissionApi.hasAnyPermissions(userId, permission).getCheckedData();

    handleUnboundProcess 在 required=false 时打 warn 后返回 true,保证存量;required=true 返回 false。孤儿码先按「不在菜单中」走进未管控分支,体检则单独标严重,避免实施以为「码写了就生效」。

    流程 Key 解析优先走引擎 ProcessDefinition.getKey()。历史上有的部署把定义 ID 写成纯 UUID,截取冒号前一段会得到整段 UUID,菜单 FIND_IN_SET 命中失败。不要自己 id.split(":")[0] 当 Key 去配菜单。

    前端基本信息里,权限码是自动完成,选项来自全量菜单的 permission 去重,聚焦输入框才去拉,避免一进页就打菜单列表。占位写得很清楚:一般留空。

    <Form.Item label="发起所需权限" name="startPermission">
    <AutoComplete
    vmodel:value="modelData.startPermission"
    :options="permissionOptions"
    placeholder="如 oa:car-apply-bill:create;一般留空"
    allowclear
    @focus="ensurePermissionOptions"
    />
    </Form.Item>

    「谁可以发起」切到指定人员时出现头像选择器,切到指定部门时出现部门树。切回全员会清空已选名单,保存前看一眼,避免「界面显示全员、库里还留着旧 userId」。

    7.1 大厅为什么已经是裁过的

    发起大厅和工作台「发起流程」卡片,走的不是「查出所有已发布定义再在浏览器里藏」。后端在组装列表时对每条定义调用同一套 canUserStartProcessDefinition。所以:

    • 角色被收回创建权限后,刷新大厅,卡片应立刻消失
    • 指定人员改成别人并发布后,自己的大厅不再出现该卡片
    • 只保存不发布,大厅仍按上一版 Info 判

    可见性 visible=false 的定义不会进大厅,这是另一条过滤,和发起权限是与关系:不可见的流程,有权限也看不到。


    八、数据落在哪

    位置字段谁改
    菜单表 process_definition_key、permission 菜单管理 / 流程表单发布同步
    定义 Info start_permission、start_user_ids、start_dept_ids 模型基本信息发布
    配置 enabled / required 部署文件
    缓存 process_key_permissions:{key} 改菜单后失效

    不要为发起权再新建「流程角色表」。角色已经通过菜单 permission 作用到人。再加一张表,配置体检无法闭环。

    Info 表和菜单表的职责可以记成一张对照:

    要改的行为改哪张表 / 哪一页要不要发布流程
    哪些角色能看见创建按钮 角色管理勾菜单
    这个创建按钮对应哪个流程 菜单「关联流程」
    只有这几个人 / 这几个部门能发 模型「谁可以发起」 是,写进定义 Info
    没有菜单的例外流程 模型「发起所需权限」
    升级兼容还是收紧未绑 bpm.start-permission.* 否,改配置重启
    有没有配错 配置体检

    「要不要发布」这一列最容易漏:改组织范围却只点了保存,大厅还按上一版 Info 放行,实施会以为指定人员没生效。


    九、和相邻能力划界

    能力管什么不要用来
    菜单 RBAC 侧栏/按钮/发起功能权限 指定「只有这三个人」——用谁可以发起
    谁可以发起 人/部门收窄 替代创建按钮权限
    发起人节点策略 第一个审批节点要不要跳过发起人 控制大厅卡片
    节点字段权限 审批时字段四态 控制能不能提交
    数据权限 列表能看哪些已有单据 控制能不能新建

    把「销售不能发用车」配成数据权限「本部门」,是错的:新建时还没有部门行可过滤。应去掉销售角色上的用车创建权限,或把用车发起范围指定到行政部。

    9.1 四类常见错配

    现场根因怎么修
    大厅没有用车,侧栏有创建 创建按钮没填关联流程,大厅按菜单反查不到 在创建按钮填 Key oa_car_apply_bill
    大厅有用车,提交报没权限 列表缓存了旧结果,或打开的是旧页签里的定义 刷新大厅;确认模型已发布
    所有人都发不了,模型明明写了码 码是菜单里不存在的字符串 体检「孤儿码」→ 改到真实 permission 或清空兜底
    切到长沙后还能发「仅深圳」的单 指定部门用了档案主档 开多组织后判定读会话 deptId;切过去再试

    App 工作台还有一条独立规则:菜单声明了 App 可见,但既没填移动路径、也没关联流程,体检标黄,App 不会出现制单入口。PC 大厅不受这条影响。配移动端时三条一起看:可见端、移动路径、关联流程。

    缓存键按流程 Key 存权限列表。改菜单「关联流程」或 permission 后应失效;页面上有「清理菜单缓存」。改完角色授权,用户要重新拉菜单(退出或刷新),否则侧栏还显示旧按钮,大厅已经按新权限裁了,两边看起来不一致。


    十、设计对照

    决策点错法本方案理由
    权限写哪 模型上随便填一个码 菜单关联 Key 反查 改角色立即生效
    无菜单老流程 升级当天全禁 required 默认 false 放行 存量能发
    大厅父菜单 挂在发起大厅下 禁止,挂业务目录 大厅是目录不是按钮
    指定部门 只用档案部门 会话 deptId 优先 多组织口径一致
    接口 只滤大厅 发起接口再判 防改 URL
    体检 出了问题再查日志 未绑/孤儿/死链一张表 实施可修

    十一、技术亮点

    设计要点实现方式价值
    菜单唯一配置源 Key 反查 permission 列表 和侧栏同一套角色
    兜底码校验存在性 按 permission 反查菜单 id 避免幽灵码
    双开关 enabled / required 升级可兼容、可收紧
    组织收窄 startUserIds 优先于 startDeptIds 产品只露出「谁可以发起」
    会话部门 LoginUser deptId overlay 多组织切完立刻生效
    配置体检 /bpm/process-definition/permission-audit 未绑和孤儿码可见
    发布才生效 Info 随定义版本 草稿改范围不影响在途大厅
    任一菜单即可 hasAnyPermissions PC/App 两个创建按钮不互斥

    十二、FAQ

    Q1:模型里填了发起所需权限,菜单也关联了,以谁为准?
    菜单反查优先。只要反查到任意权限码,模型兜底字段被忽略。

    Q2:超管是不是永远能发?
    功能权限上超管通常命中所有 permission。但 required=true 且流程完全未绑时,判定走「未管控禁止」,超管也发不了。先体检清零再开 required。

    Q3:指定部门后,兼职人员切到该部门能不能发?
    能。判定用当前会话部门。没切过去时,即使档案挂过这个部门也不算。

    Q4:大厅看得见,提交报没权限?
    列表和接口应用同一套 canUserStartProcessDefinition。若仍发生,多半是发布后权限变了、或打开的是旧页签里的已选定义。刷新大厅再发。

    Q5:流程表单发布同步的菜单要不要再填关联流程?
    同步时应已带上 Key。到菜单里核对一眼即可,不必在模型兜底再写一遍同一个码。

    Q6:enabled=false 后指定人员还管不管用?
    管。enabled 只关菜单/兜底功能权限,组织范围仍过滤。

    Q7:复制模型会不会把发起范围带过去?
    会带上人员/部门名单和兜底码。若原模型是孤儿码,复制后体检照样报。复制后先清兜底,再给新 Key 配自己的菜单。

    Q8:流程管理员能发单吗?
    managerUserIds 管谁能改这个模型,不管谁能发起。实施账号和员工账号应分开:实施改模型,员工只发单。

    Q9:和「用户多组织」是什么关系?
    指定部门用的是当前会话部门。多组织关掉时,会话部门就是档案主档;打开后,顶栏切到长沙,用车若指定「仅深圳研发」,大厅卡片应消失。不要在发起权限里再存一份「兼职部门名单」。

    Q10:配置体检 300 多条提示要不要当天清零?
    不必。提示里大量是测试表单未绑、App 可见但没移动路径。先滤「严重」:孤儿码、菜单 Key 未发布、required 打开后的未绑。提示可以列入迭代,不要当成发布门禁。


    十三、快速体验

    在线演示:https://ruoyioffice.com/web/(账号 admin / admin123)

    建议路径:

  • 流程中心 → 发起流程,看当前账号有哪些卡片
  • 流程中心 → 流程模型 → 任选一个点修改,看「谁可以发起」「发起所需权限」
  • 系统管理 → 菜单管理,搜业务创建按钮,看「关联流程」
  • 系统管理 → 菜单配置体检,看未绑/孤儿/死链;不要在未清零时打开 required
  • (可选)把某流程改成指定人员为自己以外的人,发布后大厅卡片应消失
  • 工作台应用中心点「发起流程」,确认和大厅是同一套裁剪
  • 常见验收失败(对照上面 1~6):

    • 第 1 步卡片很多、第 3 步创建按钮没 Key:大厅可能靠 required=false 放行,上线一收紧就全没了
    • 第 2 步改了指定人员但第 1 步没变:只点了保存,没发布
    • 第 4 步严重项里有「用车申请单创建」指向未发布 Key:菜单 Key 和模型标识不一致,先对一下 oa_car_apply_bill

    实施清单:

    检查项通过标准
    每个正式流程有且宜少的发起菜单 体检无「未绑」严重项
    模型兜底码为空或能在菜单中搜到 无孤儿码
    谁可以发起与业务一致 全员或指定人/部门,不要和角色重复造名单
    required 仍为 false 除非未绑已清零
    发起接口与大厅一致 改 URL 不能绕过
    工作台发起卡片与大厅一致 同一套裁剪,不是第二份白名单
    App 制单入口 可见端含 App 时同时有移动路径和关联流程

    升级当天建议按这个顺序动刀:先跑配置体检,把「菜单指向的流程未发布」和孤儿码修掉;未绑项先挂上真实创建按钮;组织范围(指定人员/部门)最后收。不要一上来把 bpm.start-permission.required 打开——那会让还没来得及绑菜单的存量流程全员(含超管)发不了。

    SIMPLE 和 BPMN 两种画布共用 Info 表里的这两行配置。换设计器类型不会丢掉「谁可以发起」。可见性、管理员名单、允许撤销是旁边的字段,保存时一起提交,但判定发起时不会读它们。

    源码仓库:GitHub:https://github.com/yuqing2026/ruoyi-office | GitCode:https://gitcode.com/zhouzhongyan/ruoyi-office | Gitee:https://gitee.com/yqzy1688/ruoyi-office


    结语

    发起权不该成为「流程模块自己的 RBAC」。菜单关联流程 Key,角色勾按钮,大厅和接口共用一次判定;谁可以发起只回答「这些人/这些部门」;兜底权限码留给没有菜单的特例,并且必须能在菜单里找到。配置体检把未绑和孤儿码摊在一张表上,升级才敢把 required 打开。

    同一套「菜单为源、范围为收窄」还可以用在移动端制单入口:App 可见 + 移动路径 + 关联流程,缺一不可,体检同样会标黄。

    配置体检页顶的 Alert 会直接写出 start-permission.required 打开后的后果。把它当成上线检查清单,而不是出了 P0 再翻日志。大厅、模型、菜单、体检这四页走完,发起权就不再是「流程模块自己的第二套 RBAC」。

    菜单编辑弹窗右侧有一块「影响面」:会告诉你这条菜单会不会进 PC 侧栏、会不会按本菜单控发起权、App 工作台缺不缺移动路径。目录节点几乎一定显示「未关联流程 Key,不会按本菜单控权」——这是正常的,不要给目录填 Key。只有真正的创建按钮或菜单,影响面才会变成「按本菜单 permission 判权」。配完保存后,到发起大厅用一个没有该按钮权限的账号验证卡片消失,比只看体检绿勾更准。

    实施排期上,把「绑菜单」和「收组织范围」拆成两次发布:第一次只让大厅和侧栏对齐;第二次再指定人员或部门。两次都走配置体检,比一次改三处更容易回滚。


    💡 想要体验 RuoYi Office 的强大功能?

    🌐 在线演示:https://ruoyioffice.com/web/(账号 admin / admin123)

    📦 源码仓库:GitHub:https://github.com/yuqing2026/ruoyi-office | GitCode:https://gitcode.com/zhouzhongyan/ruoyi-office | Gitee:https://gitee.com/yqzy1688/ruoyi-office

    💬 技术咨询:添加微信 17156169080,备注「RuoYi Office」

    ⭐ 如果觉得不错,请给个 Star 支持一下!

    赞(0)
    未经允许不得转载:网硕互联帮助中心 » SpringBoot3+Vue3+Flowable 发起权限:谁可以发起、菜单关联流程和兜底权限码怎么配
    分享到: 更多 (0)

    评论 抢沙发

    评论前必须登录!