Loading lib/AppInfo/Application.php +0 −2 Original line number Diff line number Diff line Loading @@ -35,7 +35,6 @@ use OCA\EcloudAccounts\Service\LDAPConnectionService; use OCP\User\Events\BeforeUserDeletedEvent; use OCP\User\Events\UserChangedEvent; use OCA\EcloudAccounts\Listeners\UserChangedListener; use OCA\EcloudAccounts\Listeners\UserAddedToBetaGroupListener; use OCP\Group\Events\UserAddedEvent; use OCP\AppFramework\Http\Events\BeforeTemplateRenderedEvent; use OCA\EcloudAccounts\Listeners\BeforeTemplateRenderedListener; Loading @@ -50,7 +49,6 @@ class Application extends App implements IBootstrap { public function register(IRegistrationContext $context): void { $context->registerEventListener(BeforeUserDeletedEvent::class, BeforeUserDeletedListener::class); $context->registerEventListener(UserChangedEvent::class, UserChangedListener::class); $context->registerEventListener(UserAddedEvent::class, UserAddedToBetaGroupListener::class); // $context->registerEventListener(BeforeTemplateRenderedEvent::class, BeforeTemplateRenderedListener::class); } Loading lib/Listeners/UserAddedToBetaGroupListener.phpdeleted 100644 → 0 +0 −65 Original line number Diff line number Diff line <?php declare(strict_types=1); namespace OCA\EcloudAccounts\Listeners; use Exception; use OCP\EventDispatcher\Event; use OCP\EventDispatcher\IEventListener; use OCP\Group\Events\UserAddedEvent; use OCP\IUser; use OCP\IConfig; use OCP\ILogger; class UserAddedToBetaGroupListener implements IEventListener { private $config; private $logger; public function __construct(IConfig $config, ILogger $logger) { $this->config = $config; $this->logger = $logger; } public function handle(Event $event): void { if (!($event instanceof UserAddedEvent)) { return; } $user = $event->getUser(); $group = $event->getGroup(); $betaGroup = $this->config->getSystemValue("beta_group_name"); if ($group->getGID() !== $betaGroup) { return; } try { $this->migrateRainloopData($user); } catch (Exception $e) { $errorMessage = 'Error while migrating user rainloop data to snappymail'; $this->logger->error($errorMessage . ': ' . $e->getMessage()); } } private function migrateRainloopData(IUser $user): void { $username = $user->getUID(); $userDir = substr($username, 0, 2); $email = $user->getEMailAddress(); $dataDir = rtrim(trim($this->config->getSystemValue('datadirectory', '')), '\\/'); $snappyDir = "$dataDir/appdata_snappymail/_data_/_default_/storage/cfg/$userDir/$email/"; $rainloopDir = "$dataDir/rainloop-storage/_data_/_default_/storage/cfg/$userDir/$email"; if (file_exists($snappyDir)) { $this->logger->debug("$snappyDir already exists"); return; } if (!mkdir($snappyDir, 0755, true)) { throw new Exception("Unable to mkdir $snappyDir"); } if (!shell_exec("cp -avr $rainloopDir/* $snappyDir")) { throw new Exception("Unable to copy files from $rainloopDir to $snappyDir"); } return; } } Loading
lib/AppInfo/Application.php +0 −2 Original line number Diff line number Diff line Loading @@ -35,7 +35,6 @@ use OCA\EcloudAccounts\Service\LDAPConnectionService; use OCP\User\Events\BeforeUserDeletedEvent; use OCP\User\Events\UserChangedEvent; use OCA\EcloudAccounts\Listeners\UserChangedListener; use OCA\EcloudAccounts\Listeners\UserAddedToBetaGroupListener; use OCP\Group\Events\UserAddedEvent; use OCP\AppFramework\Http\Events\BeforeTemplateRenderedEvent; use OCA\EcloudAccounts\Listeners\BeforeTemplateRenderedListener; Loading @@ -50,7 +49,6 @@ class Application extends App implements IBootstrap { public function register(IRegistrationContext $context): void { $context->registerEventListener(BeforeUserDeletedEvent::class, BeforeUserDeletedListener::class); $context->registerEventListener(UserChangedEvent::class, UserChangedListener::class); $context->registerEventListener(UserAddedEvent::class, UserAddedToBetaGroupListener::class); // $context->registerEventListener(BeforeTemplateRenderedEvent::class, BeforeTemplateRenderedListener::class); } Loading
lib/Listeners/UserAddedToBetaGroupListener.phpdeleted 100644 → 0 +0 −65 Original line number Diff line number Diff line <?php declare(strict_types=1); namespace OCA\EcloudAccounts\Listeners; use Exception; use OCP\EventDispatcher\Event; use OCP\EventDispatcher\IEventListener; use OCP\Group\Events\UserAddedEvent; use OCP\IUser; use OCP\IConfig; use OCP\ILogger; class UserAddedToBetaGroupListener implements IEventListener { private $config; private $logger; public function __construct(IConfig $config, ILogger $logger) { $this->config = $config; $this->logger = $logger; } public function handle(Event $event): void { if (!($event instanceof UserAddedEvent)) { return; } $user = $event->getUser(); $group = $event->getGroup(); $betaGroup = $this->config->getSystemValue("beta_group_name"); if ($group->getGID() !== $betaGroup) { return; } try { $this->migrateRainloopData($user); } catch (Exception $e) { $errorMessage = 'Error while migrating user rainloop data to snappymail'; $this->logger->error($errorMessage . ': ' . $e->getMessage()); } } private function migrateRainloopData(IUser $user): void { $username = $user->getUID(); $userDir = substr($username, 0, 2); $email = $user->getEMailAddress(); $dataDir = rtrim(trim($this->config->getSystemValue('datadirectory', '')), '\\/'); $snappyDir = "$dataDir/appdata_snappymail/_data_/_default_/storage/cfg/$userDir/$email/"; $rainloopDir = "$dataDir/rainloop-storage/_data_/_default_/storage/cfg/$userDir/$email"; if (file_exists($snappyDir)) { $this->logger->debug("$snappyDir already exists"); return; } if (!mkdir($snappyDir, 0755, true)) { throw new Exception("Unable to mkdir $snappyDir"); } if (!shell_exec("cp -avr $rainloopDir/* $snappyDir")) { throw new Exception("Unable to copy files from $rainloopDir to $snappyDir"); } return; } }