diff options
Diffstat (limited to 'apps/dav/appinfo/application.php')
-rw-r--r-- | apps/dav/appinfo/application.php | 27 |
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); + } + } + } |