From d167c1fa71d696953296c30a6f7d627e45263a55 Mon Sep 17 00:00:00 2001 From: kdletters Date: Wed, 1 Jul 2026 16:03:23 +0800 Subject: [PATCH] =?UTF-8?q?=E5=85=81=E8=AE=B8=E5=BC=95=E5=AF=BC=E5=AF=86?= =?UTF-8?q?=E9=92=A5=E8=A1=A5=E6=8E=88=E6=9D=83=E8=BF=81=E7=A7=BB=E6=93=8D?= =?UTF-8?q?=E4=BD=9C=E5=91=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 正确 bootstrap secret 可补充数据库迁移 operator。 保留无 bootstrap 时必须由现有 operator 授权的约束。 --- server-rs/crates/spacetime-module/src/migration.rs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/server-rs/crates/spacetime-module/src/migration.rs b/server-rs/crates/spacetime-module/src/migration.rs index e467903cb..3cd2f1cc6 100644 --- a/server-rs/crates/spacetime-module/src/migration.rs +++ b/server-rs/crates/spacetime-module/src/migration.rs @@ -2419,9 +2419,10 @@ fn authorize_database_migration_operator_tx( note: String, ) -> Result<(), String> { let has_operator = ctx.db.database_migration_operator().iter().next().is_some(); - if has_operator { + let has_valid_bootstrap_secret = require_migration_bootstrap_secret(bootstrap_secret).is_ok(); + if has_operator && !has_valid_bootstrap_secret { require_migration_operator(ctx, caller)?; - } else { + } else if !has_operator { require_migration_bootstrap_secret(bootstrap_secret)?; }