合并 origin/master:保留 3D 契约与 provider checkpoint,旧玩法表随主线退役
- server-rs/crates/shared-contracts/src/lib.rs:采用主线的模块裁剪(删掉 cfg(any()) 遗留模块、补上 agc_analytics 与 game_distribution),同时保留本分支的 editor_canvas、model3d 模块与 EDITOR_GENERATION_OPERATION_KINDS 导出 - server-rs/crates/spacetime-module/src/migration.rs:主线删除的 410 行旧玩法表 normalize 段保持删除,保留本分支的 provider_kind / provider_task_id 兼容段与对应用例 - docs/【开发运维】本地开发验证与生产运维-2026-05-15.md:校验清单同时保留 Tripo 3D 生成任务与 editor_background_music_generation / model3d_text_to_model / model3d_image_to_model - .gitignore:补回本分支新增的 3D 模型文件忽略规则(*.glb / *.gltf 等 12 行),压测数据段随主线一并删除 - 共享记忆:本分支的 3D 决策与踩坑条目保留在主线重排后的 decision-log.md 与 pitfalls.md 中
This commit is contained in:
@@ -2269,6 +2269,7 @@ fn admin_permission_requirement(_method: &Method, path: &str) -> AdminPermission
|
||||
"/admin/api/external-api-keys" => AnyTab(&["tables"]),
|
||||
"/admin/api/debug/http" => AnyTab(&["debug"]),
|
||||
"/admin/api/tracking/events" => AnyTab(&["tracking"]),
|
||||
"/admin/api/agc/tracking-events" => AnyTab(&["agc-tracking"]),
|
||||
"/admin/api/tracking/event-keys" => AnyTab(&["tracking", "tasks"]),
|
||||
"/admin/api/error-reports" => AnyTab(&["error-reports"]),
|
||||
"/admin/api/project-snapshots" => AnyTab(&["project-snapshots"]),
|
||||
@@ -2279,6 +2280,7 @@ fn admin_permission_requirement(_method: &Method, path: &str) -> AdminPermission
|
||||
"/admin/api/editor-assets" => AnyTab(&["editor-assets"]),
|
||||
"/admin/api/assets/read-url" => AnyTab(&["editor-assets", "editor-showcase"]),
|
||||
path if path.starts_with("/admin/api/editor-showcase/") => AnyTab(&["editor-showcase"]),
|
||||
path if path.starts_with("/admin/api/game-distribution/") => AnyTab(&["editor-showcase"]),
|
||||
"/admin/api/profile/redeem-codes" | "/admin/api/profile/redeem-codes/disable" => {
|
||||
AnyTab(&["redeem"])
|
||||
}
|
||||
@@ -2295,6 +2297,7 @@ fn admin_permission_requirement(_method: &Method, path: &str) -> AdminPermission
|
||||
"/admin/api/profile/users/detail" => AnyTab(&[
|
||||
"tables",
|
||||
"tracking",
|
||||
"agc-tracking",
|
||||
"recharge-orders",
|
||||
"editor-showcase",
|
||||
"editor-assets",
|
||||
@@ -6956,6 +6959,26 @@ mod tests {
|
||||
|
||||
#[test]
|
||||
fn admin_tab_permissions_cover_shared_and_sensitive_routes() {
|
||||
assert!(
|
||||
enforce_admin_request_permission(
|
||||
"member",
|
||||
&["agc-tracking".into()],
|
||||
&[],
|
||||
&Method::GET,
|
||||
"/admin/api/profile/users/detail"
|
||||
)
|
||||
.is_ok()
|
||||
);
|
||||
assert!(
|
||||
enforce_admin_request_permission(
|
||||
"member",
|
||||
&["tracking".into()],
|
||||
&[],
|
||||
&Method::GET,
|
||||
"/admin/api/agc/tracking-events"
|
||||
)
|
||||
.is_err()
|
||||
);
|
||||
assert!(
|
||||
enforce_admin_request_permission(
|
||||
"member",
|
||||
@@ -6986,6 +7009,11 @@ mod tests {
|
||||
("tables", Method::GET, "/admin/api/database/tables"),
|
||||
("debug", Method::POST, "/admin/api/debug/http"),
|
||||
("tracking", Method::GET, "/admin/api/tracking/events"),
|
||||
(
|
||||
"agc-tracking",
|
||||
Method::GET,
|
||||
"/admin/api/agc/tracking-events",
|
||||
),
|
||||
("error-reports", Method::GET, "/admin/api/error-reports"),
|
||||
(
|
||||
"project-snapshots",
|
||||
|
||||
Reference in New Issue
Block a user