@@ -24,5 +24,8 @@ | |||
<post-migration> | |||
<job>OCA\DAV\Migration\Classification</job> | |||
</post-migration> | |||
<live-migration> | |||
<job>OCA\DAV\Migration\GenerateBirthdays</job> | |||
</live-migration> | |||
</repair-steps> | |||
</info> |
@@ -1,26 +0,0 @@ | |||
<?php | |||
/** | |||
* @author Joas Schilling <nickvergessen@owncloud.com> | |||
* @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/> | |||
* | |||
*/ | |||
use OCA\DAV\AppInfo\Application; | |||
$app = new Application(); | |||
$app->generateBirthdays(); |
@@ -1,26 +0,0 @@ | |||
<?php | |||
/** | |||
* @author Joas Schilling <nickvergessen@owncloud.com> | |||
* @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/> | |||
* | |||
*/ | |||
use OCA\DAV\AppInfo\Application; | |||
$app = new Application(); | |||
$app->generateBirthdays(); |
@@ -32,6 +32,7 @@ use OCA\DAV\Connector\Sabre\Principal; | |||
use OCA\DAV\DAV\GroupPrincipalBackend; | |||
use OCA\DAV\HookManager; | |||
use OCA\DAV\Migration\Classification; | |||
use OCA\DAV\Migration\GenerateBirthdays; | |||
use \OCP\AppFramework\App; | |||
use OCP\AppFramework\IAppContainer; | |||
use OCP\Contacts\IManager; | |||
@@ -116,6 +117,16 @@ class Application extends App { | |||
$c->getServer()->getUserManager() | |||
); | |||
}); | |||
$container->registerService('OCA\DAV\Migration\GenerateBirthdays', function ($c) { | |||
/** @var IAppContainer $c */ | |||
/** @var BirthdayService $b */ | |||
$b = $c->query('BirthdayService'); | |||
return new GenerateBirthdays( | |||
$b, | |||
$c->getServer()->getUserManager() | |||
); | |||
}); | |||
} | |||
/** | |||
@@ -164,18 +175,4 @@ class Application extends App { | |||
return $this->getContainer()->query('SyncService'); | |||
} | |||
public function generateBirthdays() { | |||
try { | |||
/** @var BirthdayService $migration */ | |||
$migration = $this->getContainer()->query('BirthdayService'); | |||
$userManager = $this->getContainer()->getServer()->getUserManager(); | |||
$userManager->callForAllUsers(function($user) use($migration) { | |||
/** @var IUser $user */ | |||
$migration->syncUser($user->getUID()); | |||
}); | |||
} catch (\Exception $ex) { | |||
$this->getContainer()->getServer()->getLogger()->logException($ex); | |||
} | |||
} | |||
} |
@@ -0,0 +1,70 @@ | |||
<?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\Migration; | |||
use OCA\DAV\CalDAV\BirthdayService; | |||
use OCP\IUser; | |||
use OCP\IUserManager; | |||
use OCP\Migration\IOutput; | |||
use OCP\Migration\IRepairStep; | |||
class GenerateBirthdays implements IRepairStep { | |||
/** @var BirthdayService */ | |||
private $birthdayService; | |||
/** @var IUserManager */ | |||
private $userManager; | |||
/** | |||
* GenerateBirthdays constructor. | |||
* | |||
* @param BirthdayService $birthdayService | |||
* @param IUserManager $userManager | |||
*/ | |||
public function __construct(BirthdayService $birthdayService, IUserManager $userManager) { | |||
$this->birthdayService = $birthdayService; | |||
$this->userManager = $userManager; | |||
} | |||
/** | |||
* @inheritdoc | |||
*/ | |||
public function getName() { | |||
return 'Regenerate birthday calendar for all users'; | |||
} | |||
/** | |||
* @inheritdoc | |||
*/ | |||
public function run(IOutput $output) { | |||
$output->startProgress(); | |||
$this->userManager->callForAllUsers(function($user) use ($output) { | |||
/** @var IUser $user */ | |||
$output->advance(1, $user->getDisplayName()); | |||
$this->birthdayService->syncUser($user->getUID()); | |||
}); | |||
$output->finishProgress(); | |||
} | |||
} |