From e3ffad85525e403a0c7c9d6e318963d6de333b27 Mon Sep 17 00:00:00 2001 From: the-djmaze <> Date: Tue, 1 Nov 2022 21:56:36 +0100 Subject: [PATCH] Resolve #602 --- .../lib/Controller/PageController.php | 26 +++++++++---------- .../snappymail/lib/Settings/AdminSettings.php | 7 +++-- 2 files changed, 18 insertions(+), 15 deletions(-) diff --git a/integrations/nextcloud/snappymail/lib/Controller/PageController.php b/integrations/nextcloud/snappymail/lib/Controller/PageController.php index d8803b6bc..f6954e2be 100644 --- a/integrations/nextcloud/snappymail/lib/Controller/PageController.php +++ b/integrations/nextcloud/snappymail/lib/Controller/PageController.php @@ -18,8 +18,18 @@ class PageController extends Controller { $config = \OC::$server->getConfig(); - if ($config->getAppValue('snappymail', 'snappymail-embed')) { - return static::index_embed(); + $bAdmin = false; + if (!empty($_SERVER['QUERY_STRING'])) { + SnappyMailHelper::loadApp(); + $bAdmin = \RainLoop\Api::Config()->Get('security', 'admin_panel_key', 'admin') == $_SERVER['QUERY_STRING']; + if (!$bAdmin) { + SnappyMailHelper::startApp(true); + return; + } + } + + if ($bAdmin || $config->getAppValue('snappymail', 'snappymail-embed')) { + return static::index_embed($bAdmin); } \OC::$server->getNavigationManager()->setActiveEntry('snappymail'); @@ -72,18 +82,8 @@ class PageController extends Controller /** * Draft code to run without using an iframe */ - private static function index_embed() + private static function index_embed(bool $bAdmin) { -/* - $oConfig = \RainLoop\Api::Config(); - $bAdmin = empty($_SERVER['QUERY_STRING']) || $oConfig->Get('security', 'admin_panel_key', 'admin') != $_SERVER['QUERY_STRING']; -*/ - $bAdmin = !empty($_SERVER['QUERY_STRING']) && 'admin' == $_SERVER['QUERY_STRING']; - - if (!$bAdmin && !empty($_SERVER['QUERY_STRING'])) { - SnappyMailHelper::startApp(true); - } - \OC::$server->getNavigationManager()->setActiveEntry('snappymail'); \OCP\Util::addStyle('snappymail', 'embed'); diff --git a/integrations/nextcloud/snappymail/lib/Settings/AdminSettings.php b/integrations/nextcloud/snappymail/lib/Settings/AdminSettings.php index d810d85e3..4c5bc0aed 100644 --- a/integrations/nextcloud/snappymail/lib/Settings/AdminSettings.php +++ b/integrations/nextcloud/snappymail/lib/Settings/AdminSettings.php @@ -17,6 +17,8 @@ class AdminSettings implements ISettings public function getForm() { + \OCA\SnappyMail\Util\SnappyMailHelper::loadApp(); + $keys = [ 'snappymail-autologin', 'snappymail-autologin-with-email', @@ -30,11 +32,12 @@ class AdminSettings implements ISettings $uid = \OC::$server->getUserSession()->getUser()->getUID(); if (\OC_User::isAdminUser($uid)) { // $parameters['snappymail-admin-panel-link'] = SnappyMailHelper::getAppUrl().'?admin'; + SnappyMailHelper::loadApp(); $parameters['snappymail-admin-panel-link'] = - \OC::$server->getURLGenerator()->linkToRoute('snappymail.page.index').'?admin'; + \OC::$server->getURLGenerator()->linkToRoute('snappymail.page.index') + . '?' . \RainLoop\Api::Config()->Get('security', 'admin_panel_key', 'admin'); } - \OCA\SnappyMail\Util\SnappyMailHelper::loadApp(); $oConfig = \RainLoop\Api::Config(); $passfile = APP_PRIVATE_DATA . 'admin_password.txt'; $sPassword = '';