summaryrefslogtreecommitdiffstats
path: root/apps/dav/appinfo/application.php
diff options
context:
space:
mode:
Diffstat (limited to 'apps/dav/appinfo/application.php')
-rw-r--r--apps/dav/appinfo/application.php27
1 files changed, 27 insertions, 0 deletions
diff --git a/apps/dav/appinfo/application.php b/apps/dav/appinfo/application.php
index d8cf2a34115..07905db7368 100644
--- a/apps/dav/appinfo/application.php
+++ b/apps/dav/appinfo/application.php
@@ -24,9 +24,12 @@ use OCA\DAV\CardDAV\ContactsManager;
use OCA\DAV\CardDAV\SyncJob;
use OCA\DAV\CardDAV\SyncService;
use OCA\DAV\HookManager;
+use OCA\Dav\Migration\AddressBookAdapter;
+use OCA\Dav\Migration\MigrateAddressbooks;
use \OCP\AppFramework\App;
use OCP\AppFramework\IAppContainer;
use OCP\Contacts\IManager;
+use OCP\IUser;
class Application extends App {
@@ -73,6 +76,14 @@ class Application extends App {
return new \OCA\DAV\CardDAV\CardDavBackend($db, $principal, $logger);
});
+ $container->registerService('MigrateAddressbooks', function($c) {
+ /** @var IAppContainer $c */
+ $db = $c->getServer()->getDatabaseConnection();
+ return new MigrateAddressbooks(
+ new AddressBookAdapter($db),
+ $c->query('CardDavBackend')
+ );
+ });
}
/**
@@ -100,4 +111,20 @@ class Application extends App {
$jl->add(new SyncJob());
}
+ public function migrateAddressbooks() {
+
+ try {
+ $migration = $this->getContainer()->query('MigrateAddressbooks');
+ $migration->setup();
+ $userManager = $this->getContainer()->getServer()->getUserManager();
+
+ $userManager->callForAllUsers(function($user) use($migration) {
+ /** @var IUser $user */
+ $migration->migrateForUser($user->getUID());
+ });
+ } catch (\Exception $ex) {
+ $this->getContainer()->getServer()->getLogger()->logException($ex);
+ }
+ }
+
}