summaryrefslogtreecommitdiffstats
path: root/apps/dav/lib/Migration
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/dav/lib/Migration
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/dav/lib/Migration')
-rw-r--r--apps/dav/lib/Migration/GenerateBirthdays.php70
1 files changed, 70 insertions, 0 deletions
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();
+ }
+}