summaryrefslogtreecommitdiffstats
path: root/apps
diff options
context:
space:
mode:
authorThomas Müller <DeepDiver1975@users.noreply.github.com>2016-06-16 16:14:28 +0200
committerGitHub <noreply@github.com>2016-06-16 16:14:28 +0200
commit0b7685d326279fd822a161fb29c2256e2ad01c50 (patch)
tree2b7bcc952a5aa3338509df5bca87ae3a62344fa4 /apps
parentd6cf310dfc52b81a8f15981017721d88f7fb64ed (diff)
downloadnextcloud-server-0b7685d326279fd822a161fb29c2256e2ad01c50.tar.gz
nextcloud-server-0b7685d326279fd822a161fb29c2256e2ad01c50.zip
Move birthday calendar generation to a live migration job (#25135)
Diffstat (limited to 'apps')
-rw-r--r--apps/dav/appinfo/info.xml3
-rw-r--r--apps/dav/appinfo/install.php26
-rw-r--r--apps/dav/appinfo/update.php26
-rw-r--r--apps/dav/lib/AppInfo/Application.php25
-rw-r--r--apps/dav/lib/Migration/GenerateBirthdays.php70
5 files changed, 84 insertions, 66 deletions
diff --git a/apps/dav/appinfo/info.xml b/apps/dav/appinfo/info.xml
index 26e37e6bb86..df147a032fe 100644
--- a/apps/dav/appinfo/info.xml
+++ b/apps/dav/appinfo/info.xml
@@ -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>
diff --git a/apps/dav/appinfo/install.php b/apps/dav/appinfo/install.php
deleted file mode 100644
index d2ee06cc9fe..00000000000
--- a/apps/dav/appinfo/install.php
+++ /dev/null
@@ -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();
diff --git a/apps/dav/appinfo/update.php b/apps/dav/appinfo/update.php
deleted file mode 100644
index d2ee06cc9fe..00000000000
--- a/apps/dav/appinfo/update.php
+++ /dev/null
@@ -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();
diff --git a/apps/dav/lib/AppInfo/Application.php b/apps/dav/lib/AppInfo/Application.php
index 9e0d2da4e17..de2056ebc35 100644
--- a/apps/dav/lib/AppInfo/Application.php
+++ b/apps/dav/lib/AppInfo/Application.php
@@ -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);
- }
- }
}
diff --git a/apps/dav/lib/Migration/GenerateBirthdays.php b/apps/dav/lib/Migration/GenerateBirthdays.php
new file mode 100644
index 00000000000..dfc8838bcbb
--- /dev/null
+++ b/apps/dav/lib/Migration/GenerateBirthdays.php
@@ -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();
+ }
+}