mirror of
https://github.com/matrix-org/dendrite.git
synced 2025-12-12 01:13:10 -06:00
Add check on invited server
This commit is contained in:
parent
f83dadba58
commit
fdd2b59433
|
|
@ -51,7 +51,10 @@ type invites struct {
|
||||||
Invites []invite `json:"invites"`
|
Invites []invite `json:"invites"`
|
||||||
}
|
}
|
||||||
|
|
||||||
var errNotInRoom = errors.New("the server isn't currently in the room")
|
var (
|
||||||
|
errNotLocalUser = errors.New("the user is not from this server")
|
||||||
|
errNotInRoom = errors.New("the server isn't currently in the room")
|
||||||
|
)
|
||||||
|
|
||||||
// CreateInvitesFrom3PIDInvites implements POST /_matrix/federation/v1/3pid/onbind
|
// CreateInvitesFrom3PIDInvites implements POST /_matrix/federation/v1/3pid/onbind
|
||||||
func CreateInvitesFrom3PIDInvites(
|
func CreateInvitesFrom3PIDInvites(
|
||||||
|
|
@ -169,6 +172,15 @@ func createInviteFrom3PIDInvite(
|
||||||
inv invite, federation *gomatrixserverlib.FederationClient,
|
inv invite, federation *gomatrixserverlib.FederationClient,
|
||||||
accountDB *accounts.Database,
|
accountDB *accounts.Database,
|
||||||
) (*gomatrixserverlib.Event, error) {
|
) (*gomatrixserverlib.Event, error) {
|
||||||
|
localpart, server, err := gomatrixserverlib.SplitID('@', inv.MXID)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
if server != cfg.Matrix.ServerName {
|
||||||
|
return nil, errNotLocalUser
|
||||||
|
}
|
||||||
|
|
||||||
// Build the event
|
// Build the event
|
||||||
builder := &gomatrixserverlib.EventBuilder{
|
builder := &gomatrixserverlib.EventBuilder{
|
||||||
Type: "m.room.member",
|
Type: "m.room.member",
|
||||||
|
|
@ -177,11 +189,6 @@ func createInviteFrom3PIDInvite(
|
||||||
StateKey: &inv.MXID,
|
StateKey: &inv.MXID,
|
||||||
}
|
}
|
||||||
|
|
||||||
localpart, _, err := gomatrixserverlib.SplitID('@', *builder.StateKey)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
|
|
||||||
profile, err := accountDB.GetProfileByLocalpart(localpart)
|
profile, err := accountDB.GetProfileByLocalpart(localpart)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue