about summary refs log tree commit diff
path: root/LibMatrix/Homeservers/ImplementationDetails/Synapse/SynapseAdminUserCleanupExecutor.cs
blob: 6edf40c2b82f86027349c695d27c287f81f89be2 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
namespace LibMatrix.Homeservers.ImplementationDetails.Synapse;

public class SynapseAdminUserCleanupExecutor(AuthenticatedHomeserverSynapse homeserver) {
    /*
       Remove mappings of SSO IDs
       Delete media uploaded by user (included avatar images)
       Delete sent and received messages
       Remove the user's creation (registration) timestamp
       Remove rate limit overrides
       Remove from monthly active users
       Remove user's consent information (consent version and timestamp)
     */
    public async Task CleanupUser(string mxid) {
        // change the user's password to a random one
        var newPassword = Guid.NewGuid().ToString();
        await homeserver.Admin.ResetPasswordAsync(mxid, newPassword, true);
        await homeserver.Admin.DeleteAllMessages(mxid);
        
    }
    private async Task RunUserTasks(string mxid) {
        var auth = await homeserver.Admin.LoginUserAsync(mxid, TimeSpan.FromDays(1));
        var userHs = new AuthenticatedHomeserverSynapse(homeserver.ServerName, homeserver.WellKnownUris, null, auth.AccessToken);
        await userHs.Initialise();
        
        
    }
}