mirror of
https://github.com/matrix-org/dendrite.git
synced 2026-01-11 16:13:10 -06:00
Refine SenderID/UserID usage
This commit is contained in:
parent
0c902f49b6
commit
00e719f7e7
|
|
@ -189,7 +189,7 @@ func SetLocalAlias(
|
|||
}
|
||||
}
|
||||
|
||||
deviceSenderID, err := rsAPI.QuerySenderIDForRoom(req.Context(), alias, *userID)
|
||||
deviceSenderID, err := rsAPI.QuerySenderIDForUser(req.Context(), alias, *userID)
|
||||
if err != nil {
|
||||
return util.JSONResponse{
|
||||
Code: http.StatusInternalServerError,
|
||||
|
|
@ -238,7 +238,7 @@ func RemoveLocalAlias(
|
|||
}
|
||||
}
|
||||
|
||||
deviceSenderID, err := rsAPI.QuerySenderIDForRoom(req.Context(), alias, *userID)
|
||||
deviceSenderID, err := rsAPI.QuerySenderIDForUser(req.Context(), alias, *userID)
|
||||
if err != nil {
|
||||
return util.JSONResponse{
|
||||
Code: http.StatusInternalServerError,
|
||||
|
|
|
|||
|
|
@ -67,7 +67,7 @@ type InputRoomEventsAPI interface {
|
|||
|
||||
type QuerySenderIDAPI interface {
|
||||
// Accepts either roomID or alias
|
||||
QuerySenderIDForRoom(ctx context.Context, roomAliasOrID string, userID spec.UserID) (string, error)
|
||||
QuerySenderIDForUser(ctx context.Context, roomAliasOrID string, userID spec.UserID) (string, error)
|
||||
}
|
||||
|
||||
// Query the latest events and state for a room from the room server.
|
||||
|
|
|
|||
|
|
@ -128,7 +128,7 @@ func (r *Inputer) processRoomEvent(
|
|||
if roomInfo == nil && !isCreateEvent {
|
||||
return fmt.Errorf("room %s does not exist for event %s", event.RoomID(), event.EventID())
|
||||
}
|
||||
_, senderDomain, err := gomatrixserverlib.SplitID('@', event.SenderID())
|
||||
sender, err := event.UserID()
|
||||
if err != nil {
|
||||
return fmt.Errorf("event has invalid sender %q", event.SenderID())
|
||||
}
|
||||
|
|
@ -193,9 +193,9 @@ func (r *Inputer) processRoomEvent(
|
|||
serverRes.ServerNames = append(serverRes.ServerNames, input.Origin)
|
||||
delete(servers, input.Origin)
|
||||
}
|
||||
if senderDomain != input.Origin && senderDomain != r.Cfg.Matrix.ServerName {
|
||||
serverRes.ServerNames = append(serverRes.ServerNames, senderDomain)
|
||||
delete(servers, senderDomain)
|
||||
if sender.Domain() != input.Origin && sender.Domain() != r.Cfg.Matrix.ServerName {
|
||||
serverRes.ServerNames = append(serverRes.ServerNames, sender.Domain())
|
||||
delete(servers, sender.Domain())
|
||||
}
|
||||
for server := range servers {
|
||||
serverRes.ServerNames = append(serverRes.ServerNames, server)
|
||||
|
|
@ -451,7 +451,7 @@ func (r *Inputer) processRoomEvent(
|
|||
}
|
||||
|
||||
// Handle remote room upgrades, e.g. remove published room
|
||||
if event.Type() == "m.room.tombstone" && event.StateKeyEquals("") && !r.Cfg.Matrix.IsLocalServerName(senderDomain) {
|
||||
if event.Type() == "m.room.tombstone" && event.StateKeyEquals("") && !r.Cfg.Matrix.IsLocalServerName(sender.Domain()) {
|
||||
if err = r.handleRemoteRoomUpgrade(ctx, event); err != nil {
|
||||
return fmt.Errorf("failed to handle remote room upgrade: %w", err)
|
||||
}
|
||||
|
|
@ -828,11 +828,13 @@ func (r *Inputer) kickGuests(ctx context.Context, event gomatrixserverlib.PDU, r
|
|||
continue
|
||||
}
|
||||
|
||||
// TODO: pseudoIDs: get userID for room using state key (which is now senderID)
|
||||
localpart, senderDomain, err := gomatrixserverlib.SplitID('@', *memberEvent.StateKey())
|
||||
if err != nil {
|
||||
continue
|
||||
}
|
||||
|
||||
// TODO: pseudoIDs: query account by state key (which is now senderID)
|
||||
accountRes := &userAPI.QueryAccountByLocalpartResponse{}
|
||||
if err = r.UserAPI.QueryAccountByLocalpart(ctx, &userAPI.QueryAccountByLocalpartRequest{
|
||||
Localpart: localpart,
|
||||
|
|
|
|||
|
|
@ -484,8 +484,8 @@ FindSuccessor:
|
|||
// Store the server names in a temporary map to avoid duplicates.
|
||||
serverSet := make(map[spec.ServerName]bool)
|
||||
for _, event := range memberEvents {
|
||||
if _, senderDomain, err := gomatrixserverlib.SplitID('@', event.SenderID()); err == nil {
|
||||
serverSet[senderDomain] = true
|
||||
if sender, err := event.UserID(); err == nil {
|
||||
serverSet[sender.Domain()] = true
|
||||
}
|
||||
}
|
||||
var servers []spec.ServerName
|
||||
|
|
|
|||
|
|
@ -125,9 +125,9 @@ func (r *Inviter) PerformInvite(
|
|||
) error {
|
||||
event := req.Event
|
||||
|
||||
sender, err := spec.NewUserID(event.SenderID(), true)
|
||||
sender, err := event.UserID()
|
||||
if err != nil {
|
||||
return spec.InvalidParam("The user ID is invalid")
|
||||
return spec.InvalidParam("The sender user ID is invalid")
|
||||
}
|
||||
if !r.Cfg.Matrix.IsLocalServerName(sender.Domain()) {
|
||||
return api.ErrInvalidID{Err: fmt.Errorf("the invite must be from a local user")}
|
||||
|
|
|
|||
Loading…
Reference in a new issue