aboutsummaryrefslogtreecommitdiffstats
path: root/apps/dav/lib/Migration
diff options
context:
space:
mode:
authorAnna Larch <anna@nextcloud.com>2023-08-17 10:19:10 +0200
committerDaniel <mail@danielkesselberg.de>2023-08-26 17:21:50 +0200
commit7f11ee8c4af3305ad2ecb90b1f400ee79b74c51c (patch)
tree05df07ea22b353b2490c6a6fb9118044b69e8b9d /apps/dav/lib/Migration
parentefeb517eddc7f29857a5d633b5a00655c74f2465 (diff)
downloadnextcloud-server-7f11ee8c4af3305ad2ecb90b1f400ee79b74c51c.tar.gz
nextcloud-server-7f11ee8c4af3305ad2ecb90b1f400ee79b74c51c.zip
fix(CardDAV): only run upgrade sync if 1000 users or less
Signed-off-by: Anna Larch <anna@nextcloud.com>
Diffstat (limited to 'apps/dav/lib/Migration')
-rw-r--r--apps/dav/lib/Migration/Version1027Date20230504122946.php21
1 files changed, 14 insertions, 7 deletions
diff --git a/apps/dav/lib/Migration/Version1027Date20230504122946.php b/apps/dav/lib/Migration/Version1027Date20230504122946.php
index be3d19e8a80..998be8111ca 100644
--- a/apps/dav/lib/Migration/Version1027Date20230504122946.php
+++ b/apps/dav/lib/Migration/Version1027Date20230504122946.php
@@ -29,6 +29,8 @@ namespace OCA\DAV\Migration;
use Closure;
use OCA\DAV\CardDAV\SyncService;
use OCP\DB\ISchemaWrapper;
+use OCP\IConfig;
+use OCP\IUserManager;
use OCP\Migration\IOutput;
use OCP\Migration\SimpleMigrationStep;
use Psr\Container\ContainerExceptionInterface;
@@ -37,22 +39,27 @@ use Psr\Log\LoggerInterface;
use Throwable;
class Version1027Date20230504122946 extends SimpleMigrationStep {
- private SyncService $syncService;
- private LoggerInterface $logger;
-
- public function __construct(SyncService $syncService, LoggerInterface $logger) {
- $this->syncService = $syncService;
- $this->logger = $logger;
- }
+ public function __construct(private SyncService $syncService,
+ private LoggerInterface $logger,
+ private IUserManager $userManager,
+ private IConfig $config) {}
/**
* @param IOutput $output
* @param Closure(): ISchemaWrapper $schemaClosure
* @param array $options
*/
public function postSchemaChange(IOutput $output, Closure $schemaClosure, array $options): void {
+ if($this->userManager->countUsers() > 1000) {
+ $this->config->setAppValue('dav', 'needs_system_address_book_sync', 'yes');
+ $output->info('Could not sync system address books during update - too many user records have been found. Please call occ dav:sync-system-addressbook manually.');
+ return;
+ }
+
try {
$this->syncService->syncInstance();
+ $this->config->setAppValue('dav', 'needs_system_address_book_sync', 'no');
} catch (Throwable $e) {
+ $this->config->setAppValue('dav', 'needs_system_address_book_sync', 'yes');
$this->logger->error('Could not sync system address books during update', [
'exception' => $e,
]);