mirror of
https://github.com/matrix-org/dendrite.git
synced 2026-01-10 15:43:09 -06:00
Move creation of pseudo ID keys to the roomserver
This commit is contained in:
parent
88b0f6a053
commit
6697f4377d
|
|
@ -454,25 +454,6 @@ func buildMembershipEvent(
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
// If we're inviting a local user, we can generate the needed key here.
|
|
||||||
if targetSenderID == "" && cfg.Matrix.IsLocalServerName(targetID.Domain()) { // todo: remove
|
|
||||||
var roomVersion gomatrixserverlib.RoomVersion
|
|
||||||
roomVersion, err = rsAPI.QueryRoomVersionForRoom(ctx, roomID)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
switch roomVersion {
|
|
||||||
case gomatrixserverlib.RoomVersionPseudoIDs:
|
|
||||||
var key ed25519.PrivateKey
|
|
||||||
key, err = rsAPI.GetOrCreateUserRoomPrivateKey(ctx, *targetID, *validRoomID)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
targetSenderID = spec.SenderIDFromPseudoIDKey(key)
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
identity, err := rsAPI.SigningIdentityFor(ctx, *validRoomID, *userID)
|
identity, err := rsAPI.SigningIdentityFor(ctx, *validRoomID, *userID)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
|
|
|
||||||
|
|
@ -153,6 +153,23 @@ func (r *Inviter) PerformInvite(
|
||||||
}
|
}
|
||||||
isTargetLocal := r.Cfg.Matrix.IsLocalServerName(invitedUser.Domain())
|
isTargetLocal := r.Cfg.Matrix.IsLocalServerName(invitedUser.Domain())
|
||||||
|
|
||||||
|
// If we're inviting a local user, we can generate the needed pseudoID key here. (if needed)
|
||||||
|
if isTargetLocal {
|
||||||
|
var roomVersion gomatrixserverlib.RoomVersion
|
||||||
|
roomVersion, err = r.DB.GetRoomVersion(ctx, event.RoomID())
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
switch roomVersion {
|
||||||
|
case gomatrixserverlib.RoomVersionPseudoIDs:
|
||||||
|
_, err = r.RSAPI.GetOrCreateUserRoomPrivateKey(ctx, *invitedUser, *validRoomID)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
invitedSenderID, err := r.RSAPI.QuerySenderIDForUser(ctx, *validRoomID, *invitedUser)
|
invitedSenderID, err := r.RSAPI.QuerySenderIDForUser(ctx, *validRoomID, *invitedUser)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fmt.Errorf("failed looking up senderID for invited user")
|
return fmt.Errorf("failed looking up senderID for invited user")
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue