From 1a1be5c63a97223fb3cd945fef5770cca162d05d Mon Sep 17 00:00:00 2001 From: RainLoop Team Date: Thu, 15 May 2014 01:37:29 +0400 Subject: [PATCH] Added [labs]forse_https settins --- .../v/0.0.0/app/libraries/RainLoop/Api.php | 2 +- .../libraries/RainLoop/Config/Application.php | 1 + .../0.0.0/app/libraries/RainLoop/Service.php | 20 ++++++++++++------- 3 files changed, 15 insertions(+), 8 deletions(-) diff --git a/rainloop/v/0.0.0/app/libraries/RainLoop/Api.php b/rainloop/v/0.0.0/app/libraries/RainLoop/Api.php index 1cf75b1df..e31fa7b7e 100644 --- a/rainloop/v/0.0.0/app/libraries/RainLoop/Api.php +++ b/rainloop/v/0.0.0/app/libraries/RainLoop/Api.php @@ -49,7 +49,7 @@ class Api return false; } - if (self::Config()->Get('labs', 'disable_iconv_if_mbstring_supported') && + if (self::Config()->Get('labs', 'disable_iconv_if_mbstring_supported', false) && \class_exists('MailSo\Capa') && \MailSo\Base\Utils::IsMbStringSupported()) { \MailSo\Capa::$ICONV = false; diff --git a/rainloop/v/0.0.0/app/libraries/RainLoop/Config/Application.php b/rainloop/v/0.0.0/app/libraries/RainLoop/Config/Application.php index 529e93cfc..15316ff75 100644 --- a/rainloop/v/0.0.0/app/libraries/RainLoop/Config/Application.php +++ b/rainloop/v/0.0.0/app/libraries/RainLoop/Config/Application.php @@ -242,6 +242,7 @@ Enables caching in the system'), 'curl_proxy' => array(''), 'curl_proxy_auth' => array(''), 'in_iframe' => array(false), + 'forse_https' => array(false), 'custom_login_link' => array(''), 'custom_logout_link' => array(''), 'allow_external_login' => array(false), diff --git a/rainloop/v/0.0.0/app/libraries/RainLoop/Service.php b/rainloop/v/0.0.0/app/libraries/RainLoop/Service.php index 8a0b3ffbb..7f9bb1958 100644 --- a/rainloop/v/0.0.0/app/libraries/RainLoop/Service.php +++ b/rainloop/v/0.0.0/app/libraries/RainLoop/Service.php @@ -28,7 +28,7 @@ class Service $this->oActions = Actions::NewInstance(); \set_error_handler(array(&$this, 'LogPhpErrorHandler')); - + $this->oServiceActions = new \RainLoop\ServiceActions($this->oHttp, $this->oActions); if ($this->oActions->Config()->Get('debug', 'enable', false)) @@ -37,7 +37,7 @@ class Service \ini_set('display_errors', 1); } - if ($this->oActions->Config()->Get('labs', 'disable_iconv_if_mbstring_supported') && + if ($this->oActions->Config()->Get('labs', 'disable_iconv_if_mbstring_supported', false) && \class_exists('MailSo\Capa') && \MailSo\Base\Utils::IsMbStringSupported()) { \MailSo\Capa::$ICONV = false; @@ -48,6 +48,12 @@ class Service { @\header('Server: '.$sServer, true); } + + if ($this->oActions->Config()->Get('labs', 'forse_https', false) && !$this->oHttp->IsSecure()) + { + @\header('Location: https://'.$this->oHttp->GetHost(false, false).$this->oHttp->GetUrl(), true); + exit(); + } } /** @@ -63,7 +69,7 @@ class Service * @param string $sErrStr * @param string $sErrFile * @param int $iErrLine - * + * * @return bool */ public function LogPhpErrorHandler($iErrNo, $sErrStr, $sErrFile, $iErrLine) @@ -84,7 +90,7 @@ class Service $this->oActions->Logger()->Write($sErrFile.' [line:'.$iErrLine.', code:'.$iErrNo.']', $iType, 'PHP'); $this->oActions->Logger()->Write('Error: '.$sErrStr, $iType, 'PHP'); } - + return false; } @@ -97,7 +103,7 @@ class Service { return $this; } - + $this->oActions->ParseQueryAuthString(); if (defined('APP_INSTALLED_START') && defined('APP_INSTALLED_VERSION') && @@ -115,7 +121,7 @@ class Service { $sQuery = \substr($sQuery, 0, $iPos); } - + $this->oActions->Plugins()->RunHook('filter.http-query', array(&$sQuery)); $aPaths = \explode('/', $sQuery); $this->oActions->Plugins()->RunHook('filter.http-paths', array(&$aPaths)); @@ -136,7 +142,7 @@ class Service { echo $this->oActions->ErrorTemplates('Access Denied.', 'Access to the RainLoop Webmail Admin Panel is not allowed!', true); - + return $this; }