From c0be935e59e9a70f0fe2ec95822245d5dacdf5e4 Mon Sep 17 00:00:00 2001 From: Devon Hudson Date: Tue, 6 Jun 2023 11:33:10 -0600 Subject: [PATCH] Use userID for room alias handling --- clientapi/routing/directory.go | 21 +++---------------- roomserver/api/alias.go | 2 +- roomserver/internal/alias.go | 2 +- .../internal/perform/perform_create_room.go | 6 +++--- .../internal/perform/perform_upgrade.go | 2 +- roomserver/roomserver_test.go | 2 +- 6 files changed, 10 insertions(+), 25 deletions(-) diff --git a/clientapi/routing/directory.go b/clientapi/routing/directory.go index c702b136d..0c842e6a5 100644 --- a/clientapi/routing/directory.go +++ b/clientapi/routing/directory.go @@ -181,25 +181,10 @@ func SetLocalAlias( return *resErr } - userID, err := spec.NewUserID(device.UserID, true) - if err != nil { - return util.JSONResponse{ - Code: http.StatusInternalServerError, - JSON: spec.InternalServerError{Err: "UserID for device is invalid"}, - } - } - - deviceSenderID, err := rsAPI.QuerySenderIDForUser(req.Context(), r.RoomID, *userID) - if err != nil { - return util.JSONResponse{ - Code: http.StatusInternalServerError, - JSON: spec.InternalServerError{Err: "Could not find SenderID for this device"}, - } - } queryReq := roomserverAPI.SetRoomAliasRequest{ - SenderID: deviceSenderID, - RoomID: r.RoomID, - Alias: alias, + UserID: device.UserID, + RoomID: r.RoomID, + Alias: alias, } var queryRes roomserverAPI.SetRoomAliasResponse if err := rsAPI.SetRoomAlias(req.Context(), &queryReq, &queryRes); err != nil { diff --git a/roomserver/api/alias.go b/roomserver/api/alias.go index 0404c1cdd..1b9475404 100644 --- a/roomserver/api/alias.go +++ b/roomserver/api/alias.go @@ -19,7 +19,7 @@ import "regexp" // SetRoomAliasRequest is a request to SetRoomAlias type SetRoomAliasRequest struct { // ID of the user setting the alias - SenderID string `json:"user_id"` + UserID string `json:"user_id"` // New alias for the room Alias string `json:"alias"` // The room ID the alias is referring to diff --git a/roomserver/internal/alias.go b/roomserver/internal/alias.go index da275725d..6d1f45186 100644 --- a/roomserver/internal/alias.go +++ b/roomserver/internal/alias.go @@ -51,7 +51,7 @@ func (r *RoomserverInternalAPI) SetRoomAlias( response.AliasExists = false // Save the new alias - if err := r.DB.SetRoomAlias(ctx, request.Alias, request.RoomID, request.SenderID); err != nil { + if err := r.DB.SetRoomAlias(ctx, request.Alias, request.RoomID, request.UserID); err != nil { return err } diff --git a/roomserver/internal/perform/perform_create_room.go b/roomserver/internal/perform/perform_create_room.go index bfa1f631e..897bd3a0e 100644 --- a/roomserver/internal/perform/perform_create_room.go +++ b/roomserver/internal/perform/perform_create_room.go @@ -352,9 +352,9 @@ func (c *Creator) PerformCreateRoom(ctx context.Context, userID spec.UserID, roo // been taken. if roomAlias != "" { aliasReq := api.SetRoomAliasRequest{ - Alias: roomAlias, - RoomID: roomID.String(), - SenderID: userID.String(), + Alias: roomAlias, + RoomID: roomID.String(), + UserID: userID.String(), } var aliasResp api.SetRoomAliasResponse diff --git a/roomserver/internal/perform/perform_upgrade.go b/roomserver/internal/perform/perform_upgrade.go index 7513aab46..8c0df1c46 100644 --- a/roomserver/internal/perform/perform_upgrade.go +++ b/roomserver/internal/perform/perform_upgrade.go @@ -182,7 +182,7 @@ func moveLocalAliases(ctx context.Context, return fmt.Errorf("Failed to remove old room alias: %w", err) } - setAliasReq := api.SetRoomAliasRequest{SenderID: userID, Alias: alias, RoomID: newRoomID} + setAliasReq := api.SetRoomAliasRequest{UserID: userID, Alias: alias, RoomID: newRoomID} setAliasRes := api.SetRoomAliasResponse{} if err = URSAPI.SetRoomAlias(ctx, &setAliasReq, &setAliasRes); err != nil { return fmt.Errorf("Failed to set new room alias: %w", err) diff --git a/roomserver/roomserver_test.go b/roomserver/roomserver_test.go index 274b4f693..11a0f5817 100644 --- a/roomserver/roomserver_test.go +++ b/roomserver/roomserver_test.go @@ -267,7 +267,7 @@ func TestPurgeRoom(t *testing.T) { } aliasResp := &api.SetRoomAliasResponse{} - if err = rsAPI.SetRoomAlias(ctx, &api.SetRoomAliasRequest{RoomID: room.ID, Alias: "myalias", SenderID: alice.ID}, aliasResp); err != nil { + if err = rsAPI.SetRoomAlias(ctx, &api.SetRoomAliasRequest{RoomID: room.ID, Alias: "myalias", UserID: alice.ID}, aliasResp); err != nil { t.Fatal(err) } // check the alias is actually there