aboutsummaryrefslogtreecommitdiff
path: root/roomserver/internal/alias.go
diff options
context:
space:
mode:
authordevonh <devon.dmytro@gmail.com>2023-06-06 20:55:18 +0000
committerGitHub <noreply@github.com>2023-06-06 20:55:18 +0000
commit7a1fd7f512ce06a472a2051ee63eae4a270eb71a (patch)
tree20128b0d3f7c69dd776aa7b2b9bc3194dda7dd75 /roomserver/internal/alias.go
parent725ff5567d2a3bc9992b065e72ccabefb595ec1c (diff)
PDU Sender split (#3100)
Initial cut of splitting PDU Sender into SenderID & looking up UserID where required.
Diffstat (limited to 'roomserver/internal/alias.go')
-rw-r--r--roomserver/internal/alias.go21
1 files changed, 11 insertions, 10 deletions
diff --git a/roomserver/internal/alias.go b/roomserver/internal/alias.go
index 52b90cf4..dcfb26b8 100644
--- a/roomserver/internal/alias.go
+++ b/roomserver/internal/alias.go
@@ -119,11 +119,6 @@ func (r *RoomserverInternalAPI) RemoveRoomAlias(
request *api.RemoveRoomAliasRequest,
response *api.RemoveRoomAliasResponse,
) error {
- _, virtualHost, err := r.Cfg.Global.SplitLocalID('@', request.UserID)
- if err != nil {
- return err
- }
-
roomID, err := r.DB.GetRoomIDForAlias(ctx, request.Alias)
if err != nil {
return fmt.Errorf("r.DB.GetRoomIDForAlias: %w", err)
@@ -134,13 +129,19 @@ func (r *RoomserverInternalAPI) RemoveRoomAlias(
return nil
}
+ sender, err := r.QueryUserIDForSender(ctx, roomID, request.SenderID)
+ if err != nil {
+ return fmt.Errorf("r.QueryUserIDForSender: %w", err)
+ }
+ virtualHost := sender.Domain()
+
response.Found = true
creatorID, err := r.DB.GetCreatorIDForAlias(ctx, request.Alias)
if err != nil {
return fmt.Errorf("r.DB.GetCreatorIDForAlias: %w", err)
}
- if creatorID != request.UserID {
+ if creatorID != request.SenderID {
var plEvent *types.HeaderedEvent
var pls *gomatrixserverlib.PowerLevelContent
@@ -154,7 +155,7 @@ func (r *RoomserverInternalAPI) RemoveRoomAlias(
return fmt.Errorf("plEvent.PowerLevels: %w", err)
}
- if pls.UserLevel(request.UserID) < pls.EventLevel(spec.MRoomCanonicalAlias, true) {
+ if pls.UserLevel(request.SenderID) < pls.EventLevel(spec.MRoomCanonicalAlias, true) {
response.Removed = false
return nil
}
@@ -172,9 +173,9 @@ func (r *RoomserverInternalAPI) RemoveRoomAlias(
return err
}
- sender := request.UserID
- if request.UserID != ev.Sender() {
- sender = ev.Sender()
+ sender := request.SenderID
+ if request.SenderID != ev.SenderID() {
+ sender = ev.SenderID()
}
_, senderDomain, err := r.Cfg.Global.SplitLocalID('@', sender)