From e9bbc9f4f4673e9b7b48f51ce8166262705d957d Mon Sep 17 00:00:00 2001 From: smail Date: Mon, 31 Aug 2026 02:35:12 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A1=A5=E9=BD=90=E7=AE=A1=E7=90=86=E5=91=98?= =?UTF-8?q?=E9=87=8D=E7=BD=AE=E5=8D=8F=E8=AE=AE=E5=87=AD=E6=8D=AE=E6=B5=8B?= =?UTF-8?q?=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- server/services/adminreset/reset_test.go | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/server/services/adminreset/reset_test.go b/server/services/adminreset/reset_test.go index ec82713..10929dd 100644 --- a/server/services/adminreset/reset_test.go +++ b/server/services/adminreset/reset_test.go @@ -19,7 +19,7 @@ func TestResetSuperAdminOnlyRevokesTargetSessionsAndCredentials(t *testing.T) { t.Fatal(err) } defer engine.Close() - for _, table := range []any{&models.User{}, &models.Sessions{}, &models.SecurityQuestion{}, &models.RecoveryCode{}, &models.WebAuthnCredential{}} { + for _, table := range []any{&models.User{}, &models.Sessions{}, &models.SecurityQuestion{}, &models.RecoveryCode{}, &models.WebAuthnCredential{}, &models.ProtocolCredential{}} { if err := engine.Sync2(table); err != nil { t.Fatal(err) } @@ -42,6 +42,8 @@ func TestResetSuperAdminOnlyRevokesTargetSessionsAndCredentials(t *testing.T) { &models.SecurityQuestion{UserID: ordinaryUser.ID, Question: "问题", AnswerHash: "hash", Version: 1}, &models.RecoveryCode{UserID: superAdmin.ID, CodeHash: "hash", CodeVersion: 1}, &models.RecoveryCode{UserID: ordinaryUser.ID, CodeHash: "hash", CodeVersion: 1}, + &models.ProtocolCredential{UserID: superAdmin.ID, Protocol: "smtp", Enabled: true, CodeHash: "hash", CodeVersion: 1}, + &models.ProtocolCredential{UserID: ordinaryUser.ID, Protocol: "smtp", Enabled: true, CodeHash: "hash", CodeVersion: 1}, &models.WebAuthnCredential{UserID: superAdmin.ID, CredentialID: "super-key", CredentialData: "encrypted", DisplayName: "管理密钥", CreatedAt: time.Now()}, &models.WebAuthnCredential{UserID: ordinaryUser.ID, CredentialID: "user-key", CredentialData: "encrypted", DisplayName: "用户密钥", CreatedAt: time.Now()}, ); err != nil { @@ -86,6 +88,9 @@ func TestResetSuperAdminOnlyRevokesTargetSessionsAndCredentials(t *testing.T) { if count, err := engine.Where("user_id = ? AND revoked_at IS NULL", superAdmin.ID).Count(&models.WebAuthnCredential{}); err != nil || count != 0 { t.Fatalf("super administrator active WebAuthn count = %d, err = %v", count, err) } + if count, err := engine.Where("user_id = ? AND revoked_at IS NULL", superAdmin.ID).Count(&models.ProtocolCredential{}); err != nil || count != 0 { + t.Fatalf("super administrator active protocol credential count = %d, err = %v", count, err) + } if count, err := engine.Where("user_id = ?", ordinaryUser.ID).Count(&models.SecurityQuestion{}); err != nil || count != 1 { t.Fatalf("ordinary user security question count = %d, err = %v", count, err) } @@ -95,6 +100,9 @@ func TestResetSuperAdminOnlyRevokesTargetSessionsAndCredentials(t *testing.T) { if count, err := engine.Where("user_id = ? AND revoked_at IS NULL", ordinaryUser.ID).Count(&models.WebAuthnCredential{}); err != nil || count != 1 { t.Fatalf("ordinary user active WebAuthn count = %d, err = %v", count, err) } + if count, err := engine.Where("user_id = ? AND revoked_at IS NULL", ordinaryUser.ID).Count(&models.ProtocolCredential{}); err != nil || count != 1 { + t.Fatalf("ordinary user active protocol credential count = %d, err = %v", count, err) + } } func TestResetSuperAdminRollsBackWhenCredentialRevocationFails(t *testing.T) {