From e211836f5aeb090605f5691f7573b223c50de336 Mon Sep 17 00:00:00 2001 From: Neil Alexander Date: Mon, 4 Apr 2022 15:57:07 +0100 Subject: [PATCH] Specify empty state keys, use `EventLevel`, remove unnecessary check on state copy --- .../internal/perform/perform_upgrade.go | 20 ++++++------------- 1 file changed, 6 insertions(+), 14 deletions(-) diff --git a/roomserver/internal/perform/perform_upgrade.go b/roomserver/internal/perform/perform_upgrade.go index 042683755..368dc3216 100644 --- a/roomserver/internal/perform/perform_upgrade.go +++ b/roomserver/internal/perform/perform_upgrade.go @@ -302,11 +302,7 @@ func (r *Upgrader) userIsAuthorized(ctx context.Context, userID, roomID string, } // Check for power level required to send tombstone event (marks the current room as obsolete), // if not found, use the StateDefault power level - plToUpgrade, ok := pl.Events["m.room.tombstone"] - if !ok { - plToUpgrade = pl.StateDefault - } - return pl.UserLevel(userID) >= plToUpgrade + return pl.UserLevel(userID) >= pl.EventLevel("m.room.tombstone", true) } // nolint:gocyclo @@ -380,8 +376,9 @@ func (r *Upgrader) generateInitialEvents(ctx context.Context, userID, roomID, ne RoomID: roomID, } newCreateEvent := fledglingEvent{ - Type: gomatrixserverlib.MRoomCreate, - Content: newCreateContent, + Type: gomatrixserverlib.MRoomCreate, + StateKey: "", + Content: newCreateContent, } membershipContent := gomatrixserverlib.MemberContent{} @@ -420,7 +417,8 @@ func (r *Upgrader) generateInitialEvents(ctx context.Context, userID, roomID, ne } } newJoinRulesEvent := fledglingEvent{ - Type: gomatrixserverlib.MRoomJoinRules, + Type: gomatrixserverlib.MRoomJoinRules, + StateKey: "", Content: map[string]interface{}{ "join_rule": joinRulesContent, }, @@ -446,12 +444,6 @@ func (r *Upgrader) generateInitialEvents(ctx context.Context, userID, roomID, ne // are already in `eventsToMake`. continue } - if membership, merr := event.Membership(); merr == nil && membership != gomatrixserverlib.Ban { - // Don't duplicate membership events that aren't bans. Our own - // membership event has already been created above, and event auth - // won't let us create join membership events for other users. - continue - } newEvent := fledglingEvent{ Type: tuple.EventType, StateKey: tuple.StateKey,