From bb24c95e71c1f81449347de74d3087b170757bb3 Mon Sep 17 00:00:00 2001 From: Andrew Camilleri Date: Thu, 9 Apr 2020 15:17:06 +0200 Subject: [PATCH] delete files on user delete (#1452) fixes #1451 (I did not do a cascade delete for 2 reasons: Sqlite does not support the migration easily to alter a foreign key AND files would be orphaned in the storage with no record in the db) --- BTCPayServer/Controllers/ServerController.cs | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/BTCPayServer/Controllers/ServerController.cs b/BTCPayServer/Controllers/ServerController.cs index a2f7ddd09..d3452391b 100644 --- a/BTCPayServer/Controllers/ServerController.cs +++ b/BTCPayServer/Controllers/ServerController.cs @@ -348,6 +348,14 @@ namespace BTCPayServer.Controllers var user = userId == null ? null : await _UserManager.FindByIdAsync(userId); if (user == null) return NotFound(); + + var files = await _StoredFileRepository.GetFiles(new StoredFileRepository.FilesQuery() + { + UserIds = new[] {userId}, + }); + + await Task.WhenAll(files.Select(file => _FileService.RemoveFile(file.Id, userId))); + await _UserManager.DeleteAsync(user); await _StoreRepository.CleanUnreachableStores(); TempData[WellKnownTempData.SuccessMessage] = "User deleted";