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
00e719f7e7
commit
8a3c01fa19
|
|
@ -68,6 +68,7 @@ type InputRoomEventsAPI interface {
|
|||
type QuerySenderIDAPI interface {
|
||||
// Accepts either roomID or alias
|
||||
QuerySenderIDForUser(ctx context.Context, roomAliasOrID string, userID spec.UserID) (string, error)
|
||||
QueryUserIDForSender(ctx context.Context, roomAliasOrID string, senderID string) (spec.UserID, error)
|
||||
}
|
||||
|
||||
// Query the latest events and state for a room from the room server.
|
||||
|
|
|
|||
|
|
@ -97,11 +97,12 @@ func (r *Inviter) ProcessInviteMembership(
|
|||
) ([]api.OutputEvent, error) {
|
||||
var outputUpdates []api.OutputEvent
|
||||
var updater *shared.MembershipUpdater
|
||||
_, domain, err := gomatrixserverlib.SplitID('@', *inviteEvent.StateKey())
|
||||
|
||||
userID, err := r.RSAPI.QueryUserIDForSender(ctx, inviteEvent.RoomID(), *inviteEvent.StateKey())
|
||||
if err != nil {
|
||||
return nil, api.ErrInvalidID{Err: fmt.Errorf("the user ID %s is invalid", *inviteEvent.StateKey())}
|
||||
}
|
||||
isTargetLocal := r.Cfg.Matrix.IsLocalServerName(domain)
|
||||
isTargetLocal := r.Cfg.Matrix.IsLocalServerName(userID.Domain())
|
||||
if updater, err = r.DB.MembershipUpdater(ctx, inviteEvent.RoomID(), *inviteEvent.StateKey(), isTargetLocal, inviteEvent.Version()); err != nil {
|
||||
return nil, fmt.Errorf("r.DB.MembershipUpdater: %w", err)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1035,7 +1035,16 @@ func (r *Queryer) QueryRestrictedJoinAllowed(ctx context.Context, req *api.Query
|
|||
return nil
|
||||
}
|
||||
|
||||
func (r *Queryer) QuerySenderIDForRoom(ctx context.Context, roomAliasOrID string, userID spec.UserID) (string, error) {
|
||||
func (r *Queryer) QuerySenderIDForUser(ctx context.Context, roomAliasOrID string, userID spec.UserID) (string, error) {
|
||||
// TODO: implement this properly with pseudoIDs
|
||||
return userID.String(), nil
|
||||
}
|
||||
|
||||
func (r *Queryer) QueryUserIDForSender(ctx context.Context, roomAliasOrID string, senderID string) (spec.UserID, error) {
|
||||
// TODO: implement this properly with pseudoIDs
|
||||
userID, err := spec.NewUserID(senderID, true)
|
||||
if err != nil {
|
||||
return spec.UserID{}, err
|
||||
}
|
||||
return *userID, err
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue