为什么:/creator-center 菜单同时给了超管和创作者,但接口只认"绑定了 creator.admin_user_id 的账号", 而 creator 表为空 —— 超管点进去每个接口都 403,页面全白。这是设计缺口:需要一条"超管代看"的合法路径, 且必须既能让运营排查问题,又不能变成越权入口。 - requireCurrentCreator 改三级解析:① 绑定优先(创作者角色永远走这条)② 未绑定 + creator-center:impersonate + 请求头 X-Creator-Id → 只读代看 ③ 其余给可识别错误码(200004 未绑定 / 200005 未选目标) - 目标走独立请求头而不是查询参数:creator-center 接口继续"不接收 creatorId"; 且只有具备 impersonate 权限的账号这个头才生效 —— 创作者自己带也不影响"只看自己的" - 只读硬边界:代看态下作品编辑、分集增删改/排序、上传会话与产物挂载、提交/撤回、收费配置一律 200006 (写路径统一走 requireWritableDrama/requireWritable;上传会话在 MediaController 里用 ImpersonationGuard 拦) - 代看进入写 audit_log(AuditLog 实体 + AuditLogService,同人同目标 10 分钟去重),表本来就有、之前无代码引用 - 新增 GET /admin/creator-center/impersonation/targets(仅 impersonate)供顶部下拉取数 - 权限点 creator-center:impersonate 只授予 super_admin(content_operator 第一阶段不给) - 修掉菜单 26 的路由名冲突:它和 17 号菜单(创作者管理)都叫 CreatorCenter,Vue Router 同名路由互相覆盖, 导致超管整个 /creator-center 子树注册不上(点进去 404)。改名 CreatorWorkspace,并核对全表无重名 实测:创作者带 X-Creator-Id 仍只看自己的、仍能编辑自己的作品;代看下 9 个写操作全 403; audit_log 有且仅有一条代看记录(12 次代看请求去重成 1 条)。
42 lines
1.6 KiB
XML
42 lines
1.6 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
|
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
|
|
<modelVersion>4.0.0</modelVersion>
|
|
|
|
<parent>
|
|
<groupId>com.fruitshorts</groupId>
|
|
<artifactId>fruitshorts</artifactId>
|
|
<version>1.0.0-SNAPSHOT</version>
|
|
</parent>
|
|
|
|
<artifactId>fruitshorts-module-creator</artifactId>
|
|
<name>fruitshorts-module-creator</name>
|
|
<description>创作者域:入驻资质审核、内容提交审核流转</description>
|
|
|
|
<dependencies>
|
|
<dependency>
|
|
<groupId>com.fruitshorts</groupId>
|
|
<artifactId>fruitshorts-framework</artifactId>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>com.fruitshorts</groupId>
|
|
<artifactId>fruitshorts-module-content</artifactId>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>com.fruitshorts</groupId>
|
|
<artifactId>fruitshorts-module-user</artifactId>
|
|
</dependency>
|
|
<!-- 创作者把上传产物挂到自己的分集,要读媒资库;media 只依赖 framework,方向不会成环 -->
|
|
<dependency>
|
|
<groupId>com.fruitshorts</groupId>
|
|
<artifactId>fruitshorts-module-media</artifactId>
|
|
</dependency>
|
|
<!-- 代看创作者要写 audit_log(审计表在系统域) -->
|
|
<dependency>
|
|
<groupId>com.fruitshorts</groupId>
|
|
<artifactId>fruitshorts-module-system</artifactId>
|
|
</dependency>
|
|
</dependencies>
|
|
</project>
|