Add database migrations and handle leaving private chat portals. Fixes #7

This commit is contained in:
Tulir Asokan
2019-05-16 20:14:32 +03:00
parent 97e740d93d
commit b0d774a5a5
13 changed files with 279 additions and 108 deletions

View File

@ -111,6 +111,26 @@ func (mx *MatrixHandler) HandleMembership(evt *mautrix.Event) {
if evt.Content.Membership == "invite" && evt.GetStateKey() == mx.as.BotMXID() {
mx.HandleBotInvite(evt)
}
portal := mx.bridge.GetPortalByMXID(evt.RoomID)
if portal == nil {
return
}
user := mx.bridge.GetUserByMXID(types.MatrixUserID(evt.Sender))
if user == nil || !user.Whitelisted || !user.IsLoggedIn() {
return
}
if evt.Content.Membership == "leave" {
if evt.GetStateKey() == evt.Sender {
if portal.IsPrivateChat() || evt.Unsigned.PrevContent.Membership == "join" {
portal.HandleMatrixLeave(user)
}
} else {
portal.HandleMatrixKick(user, evt)
}
}
}
func (mx *MatrixHandler) HandleRoomMetadata(evt *mautrix.Event) {