This commit is contained in:
Till Faelligen 2023-06-15 18:11:10 +02:00
parent 708e95090a
commit 75ffbc6aa7
No known key found for this signature in database
GPG key ID: ACCDC9606D472758
2 changed files with 16 additions and 8 deletions

View file

@ -456,13 +456,15 @@ func buildMembershipEvent(
// If we're inviting a local user, we can generate the needed key here.
if targetSenderID == "" && cfg.Matrix.IsLocalServerName(targetID.Domain()) { // todo: remove
roomVersion, err := rsAPI.QueryRoomVersionForRoom(ctx, roomID)
var roomVersion gomatrixserverlib.RoomVersion
roomVersion, err = rsAPI.QueryRoomVersionForRoom(ctx, roomID)
if err != nil {
return nil, err
}
switch roomVersion {
case gomatrixserverlib.RoomVersionPseudoIDs:
key, err := rsAPI.GetOrCreateUserRoomPrivateKey(ctx, *targetID, *validRoomID)
var key ed25519.PrivateKey
key, err = rsAPI.GetOrCreateUserRoomPrivateKey(ctx, *targetID, *validRoomID)
if err != nil {
return nil, err
}

View file

@ -356,28 +356,32 @@ func (p *PDUStreamProvider) addRoomDeltaToResponse(
if ev.Type() != spec.MRoomPowerLevels || !ev.StateKeyEquals("") {
continue
}
pls, err := gomatrixserverlib.NewPowerLevelContentFromEvent(ev)
var pls gomatrixserverlib.PowerLevelContent
pls, err = gomatrixserverlib.NewPowerLevelContentFromEvent(ev)
if err != nil {
return r.From, err
}
newPls := make(map[string]int64)
var userID *spec.UserID
for user, level := range pls.Users {
validRoomID, _ := spec.NewRoomID(ev.RoomID())
userID, err := p.rsAPI.QueryUserIDForSender(ctx, *validRoomID, spec.SenderID(user))
userID, err = p.rsAPI.QueryUserIDForSender(ctx, *validRoomID, spec.SenderID(user))
if err != nil {
return r.From, err
}
newPls[userID.String()] = level
}
newPlBytes, err := json.Marshal(newPls)
var newPlBytes, newEv []byte
newPlBytes, err = json.Marshal(newPls)
if err != nil {
return r.From, err
}
newEv, err := sjson.SetRawBytes(ev.JSON(), "content.users", newPlBytes)
newEv, err = sjson.SetRawBytes(ev.JSON(), "content.users", newPlBytes)
if err != nil {
return r.From, err
}
evNew, err := gomatrixserverlib.MustGetRoomVersion(gomatrixserverlib.RoomVersionPseudoIDs).NewEventFromTrustedJSON(newEv, false)
var evNew gomatrixserverlib.PDU
evNew, err = gomatrixserverlib.MustGetRoomVersion(gomatrixserverlib.RoomVersionPseudoIDs).NewEventFromTrustedJSON(newEv, false)
if err != nil {
return r.From, err
}
@ -508,6 +512,7 @@ func applyHistoryVisibilityFilter(
return events, nil
}
// nolint: gocyclo
func (p *PDUStreamProvider) getJoinResponseForCompleteSync(
ctx context.Context,
snapshot storage.DatabaseTransaction,
@ -613,9 +618,10 @@ func (p *PDUStreamProvider) getJoinResponseForCompleteSync(
return nil, err
}
newPls := make(map[string]int64)
var userID *spec.UserID
for user, level := range pls.Users {
validRoomID, _ := spec.NewRoomID(ev.RoomID())
userID, err := p.rsAPI.QueryUserIDForSender(ctx, *validRoomID, spec.SenderID(user))
userID, err = p.rsAPI.QueryUserIDForSender(ctx, *validRoomID, spec.SenderID(user))
if err != nil {
return nil, err
}