Include invites, delete pushers

This commit is contained in:
Neil Alexander 2022-06-29 14:41:36 +01:00
parent 25c0477dd1
commit b75f0dd773
No known key found for this signature in database
GPG key ID: A02A2019A2BB0944
2 changed files with 19 additions and 2 deletions

View file

@ -16,6 +16,7 @@ package perform
import (
"context"
"database/sql"
"encoding/json"
"fmt"
"time"
@ -184,7 +185,7 @@ func (r *Admin) PerformAdminEvacuateUser(
}
roomIDs, err := r.DB.GetRoomsByMembership(ctx, req.UserID, gomatrixserverlib.Join)
if err != nil {
if err != nil && err != sql.ErrNoRows {
res.Error = &api.PerformError{
Code: api.PerformErrorBadRequest,
Msg: fmt.Sprintf("r.DB.GetRoomsByMembership: %s", err),
@ -192,7 +193,16 @@ func (r *Admin) PerformAdminEvacuateUser(
return
}
for _, roomID := range roomIDs {
inviteRoomIDs, err := r.DB.GetRoomsByMembership(ctx, req.UserID, gomatrixserverlib.Invite)
if err != nil && err != sql.ErrNoRows {
res.Error = &api.PerformError{
Code: api.PerformErrorBadRequest,
Msg: fmt.Sprintf("r.DB.GetRoomsByMembership: %s", err),
}
return
}
for _, roomID := range append(roomIDs, inviteRoomIDs...) {
leaveReq := &api.PerformLeaveRequest{
RoomID: roomID,
UserID: req.UserID,

View file

@ -471,6 +471,13 @@ func (a *UserInternalAPI) PerformAccountDeactivation(ctx context.Context, req *a
return err
}
pusherReq := &api.PerformPusherDeletionRequest{
Localpart: req.Localpart,
}
if err := a.PerformPusherDeletion(ctx, pusherReq, &struct{}{}); err != nil {
return err
}
err := a.DB.DeactivateAccount(ctx, req.Localpart)
res.AccountDeactivated = err == nil
return err