diff --git a/clientapi/admin_test.go b/clientapi/admin_test.go index 2d6cc108..ca97b2f4 100644 --- a/clientapi/admin_test.go +++ b/clientapi/admin_test.go @@ -2021,16 +2021,10 @@ func TestAdminAllowCrossSigningReplacementWithoutUIA(t *testing.T) { t.Errorf("failed to create account: %s", err) } _ = userAPI.KeyDatabase.StoreCrossSigningKeysForUser(ctx, alice.ID, types.CrossSigningKeyMap{ - fclient.CrossSigningKeyPurposeMaster: types.CrossSigningKey{ - KeyData: spec.Base64Bytes("Og7D7+RQS030dOsWEtS/juJLTOVojXk1DoNKadyXWyk"), - }, - fclient.CrossSigningKeyPurposeSelfSigning: types.CrossSigningKey{ - KeyData: spec.Base64Bytes("Og7D7+RQS030dOsWEtS/juJLTOVojXk1DoNKadyXWyk"), - }, - fclient.CrossSigningKeyPurposeUserSigning: types.CrossSigningKey{ - KeyData: spec.Base64Bytes("Og7D7+RQS030dOsWEtS/juJLTOVojXk1DoNKadyXWyk"), - }, - }, nil) + fclient.CrossSigningKeyPurposeMaster: spec.Base64Bytes("Og7D7+RQS030dOsWEtS/juJLTOVojXk1DoNKadyXWyk"), + fclient.CrossSigningKeyPurposeSelfSigning: spec.Base64Bytes("Og7D7+RQS030dOsWEtS/juJLTOVojXk1DoNKadyXWyk"), + fclient.CrossSigningKeyPurposeUserSigning: spec.Base64Bytes("Og7D7+RQS030dOsWEtS/juJLTOVojXk1DoNKadyXWyk"), + }) } diff --git a/clientapi/routing/admin.go b/clientapi/routing/admin.go index 799ece77..a34a5765 100644 --- a/clientapi/routing/admin.go +++ b/clientapi/routing/admin.go @@ -801,6 +801,23 @@ func AdminAllowCrossSigningReplacementWithoutUIA( } } + var rs api.QueryAccountByLocalpartResponse + err = userAPI.QueryAccountByLocalpart(req.Context(), &api.QueryAccountByLocalpartRequest{ + Localpart: userID.Local(), + ServerName: userID.Domain(), + }, &rs) + if err != nil && !errors.Is(err, sql.ErrNoRows) { + util.GetLogger(req.Context()).WithError(err).Error("userAPI.QueryAccountByLocalpart") + return util.JSONResponse{ + Code: http.StatusInternalServerError, + JSON: spec.Unknown(err.Error()), + } + } else if errors.Is(err, sql.ErrNoRows) { + return util.JSONResponse{ + Code: http.StatusNotFound, + JSON: spec.NotFound("User not found."), + } + } switch req.Method { case http.MethodPost: ts := sessions.allowCrossSigningKeysReplacement(userID.String())