From e5572975a5ccf6a7586d1f4e33c9412a2a63ec8a Mon Sep 17 00:00:00 2001 From: the-djmaze <> Date: Fri, 4 Nov 2022 12:14:22 +0100 Subject: [PATCH] Now integrate with Nextcloud by default, but keep iframe option available --- .../lib/Controller/FetchController.php | 2 +- .../lib/Controller/PageController.php | 92 ++++++++----------- .../snappymail/lib/Search/Provider.php | 6 +- .../snappymail/lib/Settings/AdminSettings.php | 2 +- .../snappymail/templates/admin-local.php | 4 +- 5 files changed, 46 insertions(+), 60 deletions(-) diff --git a/integrations/nextcloud/snappymail/lib/Controller/FetchController.php b/integrations/nextcloud/snappymail/lib/Controller/FetchController.php index 8119d2408..2b5e0a6d0 100644 --- a/integrations/nextcloud/snappymail/lib/Controller/FetchController.php +++ b/integrations/nextcloud/snappymail/lib/Controller/FetchController.php @@ -51,7 +51,7 @@ class FetchController extends Controller { isset($_POST['snappymail-autologin']) ? '1' === $_POST['snappymail-autologin'] : false); $this->config->setAppValue('snappymail', 'snappymail-autologin-with-email', isset($_POST['snappymail-autologin']) ? '2' === $_POST['snappymail-autologin'] : false); - $this->config->setAppValue('snappymail', 'snappymail-embed', isset($_POST['snappymail-embed'])); +// $this->config->setAppValue('snappymail', 'snappymail-no-embed', isset($_POST['snappymail-no-embed'])); } else { return new JSONResponse([ 'status' => 'error', diff --git a/integrations/nextcloud/snappymail/lib/Controller/PageController.php b/integrations/nextcloud/snappymail/lib/Controller/PageController.php index e13b8f4a6..850117465 100644 --- a/integrations/nextcloud/snappymail/lib/Controller/PageController.php +++ b/integrations/nextcloud/snappymail/lib/Controller/PageController.php @@ -27,63 +27,23 @@ class PageController extends Controller } } - if ($bAdmin || $config->getAppValue('snappymail', 'snappymail-embed')) { - return static::index_embed($bAdmin); + if (!$bAdmin && $config->getAppValue('snappymail', 'snappymail-no-embed')) { + \OC::$server->getNavigationManager()->setActiveEntry('snappymail'); + \OCP\Util::addScript('snappymail', 'snappymail'); + \OCP\Util::addStyle('snappymail', 'style'); + SnappyMailHelper::startApp(); + $response = new TemplateResponse('snappymail', 'index', [ + 'snappymail-iframe-url' => SnappyMailHelper::normalizeUrl(SnappyMailHelper::getAppUrl()) + . (empty($_GET['target']) ? '' : "#{$_GET['target']}") + ]); + $csp = new ContentSecurityPolicy(); + $csp->addAllowedFrameDomain("'self'"); + $response->setContentSecurityPolicy($csp); + return $response; } \OC::$server->getNavigationManager()->setActiveEntry('snappymail'); - \OCP\Util::addScript('snappymail', 'snappymail'); - \OCP\Util::addStyle('snappymail', 'style'); - - SnappyMailHelper::startApp(); - - $response = new TemplateResponse('snappymail', 'index', [ - 'snappymail-iframe-url' => SnappyMailHelper::normalizeUrl(SnappyMailHelper::getAppUrl()) - . (empty($_GET['target']) ? '' : "#{$_GET['target']}") - ]); - - $csp = new ContentSecurityPolicy(); - $csp->addAllowedFrameDomain("'self'"); - $response->setContentSecurityPolicy($csp); - - return $response; - } - - /** - * @NoAdminRequired - * @NoCSRFRequired - */ - public function appGet() - { - SnappyMailHelper::startApp(true); - } - - /** - * @NoAdminRequired - * @NoCSRFRequired - */ - public function appPost() - { - SnappyMailHelper::startApp(true); - } - - /** - * @NoAdminRequired - * @NoCSRFRequired - */ - public function indexPost() - { - SnappyMailHelper::startApp(true); - } - - /** - * Draft code to run without using an iframe - */ - private static function index_embed(bool $bAdmin) - { - \OC::$server->getNavigationManager()->setActiveEntry('snappymail'); - \OCP\Util::addStyle('snappymail', 'embed'); SnappyMailHelper::startApp(); @@ -132,4 +92,30 @@ class PageController extends Controller return $response; } + /** + * @NoAdminRequired + * @NoCSRFRequired + */ + public function appGet() + { + SnappyMailHelper::startApp(true); + } + + /** + * @NoAdminRequired + * @NoCSRFRequired + */ + public function appPost() + { + SnappyMailHelper::startApp(true); + } + + /** + * @NoAdminRequired + * @NoCSRFRequired + */ + public function indexPost() + { + SnappyMailHelper::startApp(true); + } } diff --git a/integrations/nextcloud/snappymail/lib/Search/Provider.php b/integrations/nextcloud/snappymail/lib/Search/Provider.php index dc5aa7a57..9d24394d7 100644 --- a/integrations/nextcloud/snappymail/lib/Search/Provider.php +++ b/integrations/nextcloud/snappymail/lib/Search/Provider.php @@ -92,10 +92,10 @@ class Provider implements IProvider $baseURL = $this->urlGenerator->linkToRoute('snappymail.page.index'); $config = \OC::$server->getConfig(); - if ($config->getAppValue('snappymail', 'snappymail-embed')) { - $baseURL .= '#'; - } else { + if ($config->getAppValue('snappymail', 'snappymail-no-embed')) { $baseURL .= '?target='; + } else { + $baseURL .= '#'; } $search = \rawurlencode($oParams->sSearch); diff --git a/integrations/nextcloud/snappymail/lib/Settings/AdminSettings.php b/integrations/nextcloud/snappymail/lib/Settings/AdminSettings.php index 4c5bc0aed..749a18011 100644 --- a/integrations/nextcloud/snappymail/lib/Settings/AdminSettings.php +++ b/integrations/nextcloud/snappymail/lib/Settings/AdminSettings.php @@ -22,7 +22,7 @@ class AdminSettings implements ISettings $keys = [ 'snappymail-autologin', 'snappymail-autologin-with-email', - 'snappymail-embed' +// 'snappymail-no-embed' ]; $parameters = []; foreach ($keys as $k) { diff --git a/integrations/nextcloud/snappymail/templates/admin-local.php b/integrations/nextcloud/snappymail/templates/admin-local.php index 19870127f..89ab0c711 100755 --- a/integrations/nextcloud/snappymail/templates/admin-local.php +++ b/integrations/nextcloud/snappymail/templates/admin-local.php @@ -39,8 +39,8 @@
- > - + > +