diff options
author | Thomas Müller <thomas.mueller@tmit.eu> | 2016-01-18 22:51:23 +0100 |
---|---|---|
committer | Thomas Müller <thomas.mueller@tmit.eu> | 2016-01-18 22:51:23 +0100 |
commit | 54cbfcbaa1a090cbb09e300a6db4468fb1ea92dc (patch) | |
tree | 840cb806b189d4e6395f5e51a247f9dca6d81dc3 | |
parent | d7729a8ff6b16aa41f789ef2ca76da27648300fd (diff) | |
download | nextcloud-server-54cbfcbaa1a090cbb09e300a6db4468fb1ea92dc.tar.gz nextcloud-server-54cbfcbaa1a090cbb09e300a6db4468fb1ea92dc.zip |
Add daily cron job to sync system address book
-rw-r--r-- | apps/dav/appinfo/app.php | 1 | ||||
-rw-r--r-- | apps/dav/appinfo/application.php | 6 | ||||
-rw-r--r-- | apps/dav/lib/carddav/syncjob.php | 40 | ||||
-rw-r--r-- | apps/dav/lib/carddav/syncservice.php | 6 |
4 files changed, 51 insertions, 2 deletions
diff --git a/apps/dav/appinfo/app.php b/apps/dav/appinfo/app.php index 5cccab98f17..6f694663934 100644 --- a/apps/dav/appinfo/app.php +++ b/apps/dav/appinfo/app.php @@ -24,6 +24,7 @@ use OCA\DAV\CardDAV\SyncService; $app = new \OCA\Dav\AppInfo\Application(); $app->registerHooks(); +$app->setupCron(); \OC::$server->registerService('CardDAVSyncService', function() use ($app) { diff --git a/apps/dav/appinfo/application.php b/apps/dav/appinfo/application.php index 3fce53b48bb..41d064c2d83 100644 --- a/apps/dav/appinfo/application.php +++ b/apps/dav/appinfo/application.php @@ -22,6 +22,7 @@ namespace OCA\Dav\AppInfo; use OCA\DAV\CardDAV\CardDavBackend; use OCA\DAV\CardDAV\ContactsManager; +use OCA\DAV\CardDAV\SyncJob; use OCA\DAV\CardDAV\SyncService; use OCA\DAV\HookManager; use \OCP\AppFramework\App; @@ -94,4 +95,9 @@ class Application extends App { return $this->getContainer()->query('SyncService'); } + public function setupCron() { + $jl = $this->getContainer()->getServer()->getJobList(); + $jl->add(new SyncJob()); + } + } diff --git a/apps/dav/lib/carddav/syncjob.php b/apps/dav/lib/carddav/syncjob.php new file mode 100644 index 00000000000..0554af6fbf1 --- /dev/null +++ b/apps/dav/lib/carddav/syncjob.php @@ -0,0 +1,40 @@ +<?php +/** + * @author Thomas Müller <thomas.mueller@tmit.eu> + * + * @copyright Copyright (c) 2016, ownCloud, Inc. + * @license AGPL-3.0 + * + * This code is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License, version 3, + * along with this program. If not, see <http://www.gnu.org/licenses/> + * + */ + +namespace OCA\DAV\CardDAV; + +use OC\BackgroundJob\TimedJob; +use OCA\Dav\AppInfo\Application; + +class SyncJob extends TimedJob { + + public function __construct() { + // Run once a day + $this->setInterval(24 * 60 * 60); + } + + protected function run($argument) { + $app = new Application(); + /** @var SyncService $ss */ + $ss = $app->getSyncService(); + $ss->syncInstance(); + } +} diff --git a/apps/dav/lib/carddav/syncservice.php b/apps/dav/lib/carddav/syncservice.php index 97a46d62501..6412a01b428 100644 --- a/apps/dav/lib/carddav/syncservice.php +++ b/apps/dav/lib/carddav/syncservice.php @@ -240,11 +240,13 @@ class SyncService { return $this->localSystemAddressBook; } - public function syncInstance(\Closure $progressCallback) { + public function syncInstance(\Closure $progressCallback = null) { $systemAddressBook = $this->getLocalSystemAddressBook(); $this->userManager->callForAllUsers(function($user) use ($systemAddressBook, $progressCallback) { $this->updateUser($user); - $progressCallback(); + if (!is_null($progressCallback)) { + $progressCallback(); + } }); // remove no longer existing |