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 3e5c75ac8..2c6b2721d 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 @@ -106,6 +106,7 @@ class Application extends \RainLoop\Config\AbstractConfig 'admin_login' => array('admin', 'Login and password for web admin panel'), 'admin_password' => array('12345'), 'allow_admin_panel' => array(true, 'Access settings'), + 'admin_panel_host' => array(''), 'core_install_access_domains' => array('') ), 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 242bf5ba6..a41892c6e 100644 --- a/rainloop/v/0.0.0/app/libraries/RainLoop/Service.php +++ b/rainloop/v/0.0.0/app/libraries/RainLoop/Service.php @@ -129,7 +129,17 @@ class Service $aPaths = \explode('/', $sQuery); $this->oActions->Plugins()->RunHook('filter.http-paths', array(&$aPaths)); - $bAdmin = !empty($aPaths[0]) && \in_array(\strtolower($aPaths[0]), array('admin', 'cp')); + $bAdmin = false; + $sAdminPanelHost = $this->oActions->Config()->Get('security', 'admin_panel_host', ''); + if (empty($sAdminPanelHost)) + { + $bAdmin = !empty($aPaths[0]) && \in_array(\strtolower($aPaths[0]), array('admin', 'cp')); + } + else if (empty($aPaths[0]) && \strtolower($sAdminPanelHost) === \strtolower($this->oHttp->GetHost())) + { + $bAdmin = true; + } + if ($bAdmin && !$this->oActions->Config()->Get('security', 'allow_admin_panel', true)) { echo $this->oActions->ErrorTemplates('Access Denied.',