- 范围:全仓除已完成的 game-cloud/game-admin(及排除区);91 文件 - cn.iocoder.yudao→com.wanxiang.huijing / cn.wanxiang.game→com.wanxiang.huijing.game / cn.iocoder.cloud→com.wanxiang / Yudao*→Huijing* / bare yudao→huijing - 含 contracts/api-schemas(apiInterface FQCN)、docs/architecture+agent-specs(含中文名,git ls-files -z 修复)、AGENTS.md/CLAUDE.md 等根文档 - 保留不动:上游归属 URL(gitee/github yudaocode·YunaiV,改则断链+违反署名)、game-cloud Flyway 迁移注释(保 checksum)、lockfile(装包重生) - 纯文档/字符串,零构建影响(game-cloud/game-admin 字节码未动) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
44 lines
2.7 KiB
SQL
44 lines
2.7 KiB
SQL
-- =============================================================================
|
||
-- aigc:dify:callback 权限补丁(HJ-AGENT-LOOP-EXEC-001 §8.6,staging 专用)
|
||
--
|
||
-- 【执行前提(探活优先、不盲改库)】仅当 §12.3-① 权限探针返回 403/无权限时才执行本脚本;
|
||
-- 探针返回 1-101-000-000(任务不存在)= 权限已通(huijing 超管租户角色对 @ss.hasPermission 全放行),无需执行。
|
||
-- 【执行方式(utf8mb4 纪律,含中文必须显式字符集)】
|
||
-- ssh mini-desktop 后:
|
||
-- cd ~/game-staging/infra && set -a && . ./.env && set +a
|
||
-- docker exec -i game-staging-mysql mysql -uroot -p"$MYSQL_ROOT_PASSWORD" \
|
||
-- --default-character-set=utf8mb4 ruoyi-vue-pro < permission-fixture.sql
|
||
-- 【回滚】按 permission='aigc:dify:callback' 反查 menu id,删除 system_role_menu 关联行与 system_menu 行即可。
|
||
-- =============================================================================
|
||
|
||
-- 第一步:建按钮型权限菜单(type=3 按钮;parent_id=0 顶层挂靠,仅作权限位,不在前端菜单树展示)
|
||
INSERT INTO system_menu (name, permission, type, sort, parent_id, path, icon, component, component_name,
|
||
status, visible, keep_alive, always_show, creator, updater, deleted)
|
||
SELECT 'Dify回调', 'aigc:dify:callback', 3, 99, 0, '', '', '', NULL,
|
||
0, b'1', b'1', b'1', 'agent-loop', 'agent-loop', b'0'
|
||
WHERE NOT EXISTS (
|
||
-- 幂等:已存在同 permission 菜单则不重复插入
|
||
SELECT 1 FROM system_menu WHERE permission = 'aigc:dify:callback' AND deleted = b'0'
|
||
);
|
||
|
||
-- 第二步:把该权限绑到测试 admin 所属角色
|
||
-- role_id 取值说明:B1 验证用的 staging 测试 admin(Bearer test1 对应账号)所属角色——
|
||
-- 先用下行查询确认 role_id 再替换(通常 huijing 种子库超管 role_id=1):
|
||
-- SELECT ur.role_id FROM system_user_role ur
|
||
-- JOIN system_users u ON u.id = ur.user_id WHERE u.username = 'admin' AND ur.deleted = b'0';
|
||
INSERT INTO system_role_menu (role_id, menu_id, creator, updater, deleted, tenant_id)
|
||
SELECT 1, m.id, 'agent-loop', 'agent-loop', b'0', 1
|
||
FROM system_menu m
|
||
WHERE m.permission = 'aigc:dify:callback' AND m.deleted = b'0'
|
||
AND NOT EXISTS (
|
||
-- 幂等:该角色已绑此菜单则不重复插入
|
||
SELECT 1 FROM system_role_menu rm
|
||
WHERE rm.role_id = 1 AND rm.menu_id = m.id AND rm.deleted = b'0'
|
||
);
|
||
|
||
-- 验证:两行应各返回 1 条
|
||
SELECT id, name, permission, type FROM system_menu WHERE permission = 'aigc:dify:callback' AND deleted = b'0';
|
||
SELECT rm.id, rm.role_id, rm.menu_id FROM system_role_menu rm
|
||
JOIN system_menu m ON m.id = rm.menu_id
|
||
WHERE m.permission = 'aigc:dify:callback' AND rm.deleted = b'0';
|