From 6d7cda44da84ef895d5284d977b25528384bb67c Mon Sep 17 00:00:00 2001 From: Povilas Staskus Date: Tue, 17 Jan 2023 14:36:45 +0200 Subject: [PATCH 1/4] Move log removal code from ViewController into WPLogger --- WordPress/Classes/Utility/Logging/WPLogger.h | 10 ++++++++ WordPress/Classes/Utility/Logging/WPLogger.m | 24 +++++++++++++++++++ .../Activity Logs/ActivityLogViewController.m | 7 +----- 3 files changed, 35 insertions(+), 6 deletions(-) diff --git a/WordPress/Classes/Utility/Logging/WPLogger.h b/WordPress/Classes/Utility/Logging/WPLogger.h index 098bb36ef241..c5edc3cf2ada 100644 --- a/WordPress/Classes/Utility/Logging/WPLogger.h +++ b/WordPress/Classes/Utility/Logging/WPLogger.h @@ -28,4 +28,14 @@ */ + (WPLogger * _Nonnull)shared; +/** + * @brief Deletes all the logs from the device + */ +- (void)deleteAllLogs; + +/** + * @brief Deletes all the old archived logs from the device + */ +- (void)deleteArchivedLogs; + @end diff --git a/WordPress/Classes/Utility/Logging/WPLogger.m b/WordPress/Classes/Utility/Logging/WPLogger.m index 64e568bf909b..d56012c728f2 100644 --- a/WordPress/Classes/Utility/Logging/WPLogger.m +++ b/WordPress/Classes/Utility/Logging/WPLogger.m @@ -108,6 +108,30 @@ - (NSString *)getLogFilesContentWithMaxSize:(NSInteger)maxSize return description; } +#pragma mark - Deleting + +- (void)deleteAllLogs +{ + NSArray *logFiles = self.fileLogger.logFileManager.sortedLogFileInfos; + for (DDLogFileInfo *logFileInfo in logFiles) { + [[NSFileManager defaultManager] removeItemAtPath:logFileInfo.filePath error:nil]; + } + + DDLogWarn(@"All log files erased."); +} + +- (void)deleteArchivedLogs +{ + NSArray *logFiles = self.fileLogger.logFileManager.sortedLogFileInfos; + for (DDLogFileInfo *logFileInfo in logFiles) { + if (logFileInfo.isArchived) { + [[NSFileManager defaultManager] removeItemAtPath:logFileInfo.filePath error:nil]; + } + } + + DDLogWarn(@"All archived log files erased."); +} + #pragma mark - Public static methods + (void)configureLoggerLevelWithExtraDebug { diff --git a/WordPress/Classes/ViewRelated/Me/Help & Support/Activity Logs/ActivityLogViewController.m b/WordPress/Classes/ViewRelated/Me/Help & Support/Activity Logs/ActivityLogViewController.m index 63b9b5bfd70a..2e6a049d8975 100644 --- a/WordPress/Classes/ViewRelated/Me/Help & Support/Activity Logs/ActivityLogViewController.m +++ b/WordPress/Classes/ViewRelated/Me/Help & Support/Activity Logs/ActivityLogViewController.m @@ -155,12 +155,7 @@ - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath actionWithTitle:trashButtonTitle style:UIAlertActionStyleDestructive handler:^(UIAlertAction *action) { - for (DDLogFileInfo *logFileInfo in self.logFiles) { - if (logFileInfo.isArchived) { - [[NSFileManager defaultManager] removeItemAtPath:logFileInfo.filePath error:nil]; - } - } - DDLogWarn(@"All archived log files erased."); + [WPLogger.shared deleteArchivedLogs]; [self loadLogFiles]; [self.tableView reloadData]; }]; From 550a184b91089c89ed9191154ebc7edcddf954fb Mon Sep 17 00:00:00 2001 From: Povilas Staskus Date: Tue, 17 Jan 2023 14:37:05 +0200 Subject: [PATCH 2/4] Delete all logs after WP.com account logout --- WordPress/Classes/Utility/AccountHelper.swift | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/WordPress/Classes/Utility/AccountHelper.swift b/WordPress/Classes/Utility/AccountHelper.swift index 840afbf3d910..87cb6d016cd9 100644 --- a/WordPress/Classes/Utility/AccountHelper.swift +++ b/WordPress/Classes/Utility/AccountHelper.swift @@ -80,6 +80,10 @@ import Foundation service.removeDefaultWordPressComAccount() + deleteAccountData() + } + + @objc static func deleteAccountData() { // Delete saved dashboard states BlogDashboardState.resetAllStates() @@ -97,5 +101,8 @@ import Foundation // Refresh Remote Feature Flags WordPressAppDelegate.shared?.updateFeatureFlags() + + // Delete all the logs after logging out + WPLogger.shared().deleteAllLogs() } } From 386c7f353a0eb772254c397e77c79e3fbfc1573a Mon Sep 17 00:00:00 2001 From: Povilas Staskus Date: Tue, 17 Jan 2023 14:38:28 +0200 Subject: [PATCH 3/4] Delete logs after removing the last self-hosted site --- .../Blog/Blog Details/BlogDetailsViewController.m | 5 +++++ .../ViewRelated/Blog/Blog List/BlogListViewController.m | 5 +++++ 2 files changed, 10 insertions(+) diff --git a/WordPress/Classes/ViewRelated/Blog/Blog Details/BlogDetailsViewController.m b/WordPress/Classes/ViewRelated/Blog/Blog Details/BlogDetailsViewController.m index e270a241aa29..114627a6aa2d 100644 --- a/WordPress/Classes/ViewRelated/Blog/Blog Details/BlogDetailsViewController.m +++ b/WordPress/Classes/ViewRelated/Blog/Blog Details/BlogDetailsViewController.m @@ -1720,6 +1720,11 @@ - (void)confirmRemoveSite if ([Feature enabled:FeatureFlagContentMigration] && [AppConfiguration isWordPress]) { [ContentMigrationCoordinator.shared cleanupExportedDataIfNeeded]; } + + // Delete local data after removing the last site + if (!AccountHelper.isLoggedIn) { + [AccountHelper deleteAccountData]; + } [self.navigationController popToRootViewControllerAnimated:YES]; } diff --git a/WordPress/Classes/ViewRelated/Blog/Blog List/BlogListViewController.m b/WordPress/Classes/ViewRelated/Blog/Blog List/BlogListViewController.m index f471c258a5f9..222276b0d1b3 100644 --- a/WordPress/Classes/ViewRelated/Blog/Blog List/BlogListViewController.m +++ b/WordPress/Classes/ViewRelated/Blog/Blog List/BlogListViewController.m @@ -713,6 +713,11 @@ - (void)confirmRemoveSiteForIndexPath:(NSIndexPath *)indexPath if ([Feature enabled:FeatureFlagContentMigration] && [AppConfiguration isWordPress]) { [ContentMigrationCoordinator.shared cleanupExportedDataIfNeeded]; } + + // Delete local data after removing the last site + if (!AccountHelper.isLoggedIn) { + [AccountHelper deleteAccountData]; + } [self.tableView reloadData]; } From 402fd75f9f278603fa1c21057a25865561848a9a Mon Sep 17 00:00:00 2001 From: Povilas Staskus Date: Tue, 17 Jan 2023 14:44:59 +0200 Subject: [PATCH 4/4] Update RELEASE-NOTES.txt --- RELEASE-NOTES.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/RELEASE-NOTES.txt b/RELEASE-NOTES.txt index 25680c443b60..57b5078aa484 100644 --- a/RELEASE-NOTES.txt +++ b/RELEASE-NOTES.txt @@ -2,6 +2,7 @@ ----- * [*] Fix a layout issue impacting the "No media matching your search" empty state message of the Media Picker screen. [#19820] * [***] [Jetpack-only] Stats Insights Update. Helps you understand how your content is performing and what’s resonating with your audience. [#19909] +* [***] [internal] Delete all the activity logs after logging out. [#19930] 21.5 -----