From e5d2934e316111598de4a43e974d81f5920cf0e6 Mon Sep 17 00:00:00 2001 From: Aleksander Machniak Date: Thu, 11 May 2017 12:02:06 +0200 Subject: [PATCH] Add ability to specify a server vs. client kolab_files_url (Bifrost#T31444) ... by additional kolab_files_server_url option. --- plugins/kolab_files/config.inc.php.dist | 6 ++++++ plugins/kolab_files/kolab_files.php | 7 ++++--- plugins/kolab_files/lib/kolab_files_engine.php | 9 ++++++--- 3 files changed, 16 insertions(+), 6 deletions(-) diff --git a/plugins/kolab_files/config.inc.php.dist b/plugins/kolab_files/config.inc.php.dist index 3403842d..f57cb526 100644 --- a/plugins/kolab_files/config.inc.php.dist +++ b/plugins/kolab_files/config.inc.php.dist @@ -3,6 +3,12 @@ // URL of kolab-chwala installation $config['kolab_files_url'] = '/chwala/'; +// Optional URL of kolab-chwala installation for connections +// made by the Roundcube host. Useful when the chwala host name does not +// resolve on the server to the same IP as on the client. +// By default kolab_files_url will be used. +$config['kolab_files_server_url'] = ''; + // List of files list columns. Available are: name, size, mtime, type $config['kolab_files_list_cols'] = array('name', 'mtime', 'size'); diff --git a/plugins/kolab_files/kolab_files.php b/plugins/kolab_files/kolab_files.php index acbf9f8b..48ea4e72 100644 --- a/plugins/kolab_files/kolab_files.php +++ b/plugins/kolab_files/kolab_files.php @@ -72,15 +72,16 @@ class kolab_files extends rcube_plugin $this->load_config(); - $url = $this->rc->config->get('kolab_files_url'); + $client_url = $this->rc->config->get('kolab_files_url'); + $server_url = $this->rc->config->get('kolab_files_server_url'); - if (!$url) { + if (!$client_url) { return $this->engine = false; } require_once $this->home . '/lib/kolab_files_engine.php'; - $this->engine = new kolab_files_engine($this, $url); + $this->engine = new kolab_files_engine($this, $client_url, $server_url); } return $this->engine; diff --git a/plugins/kolab_files/lib/kolab_files_engine.php b/plugins/kolab_files/lib/kolab_files_engine.php index 7032b5a8..c9446489 100644 --- a/plugins/kolab_files/lib/kolab_files_engine.php +++ b/plugins/kolab_files/lib/kolab_files_engine.php @@ -26,6 +26,8 @@ class kolab_files_engine { private $plugin; private $rc; + private $url; + private $url_srv; private $timeout = 600; private $files_sort_cols = array('name', 'mtime', 'size'); private $sessions_sort_cols = array('name'); @@ -36,9 +38,10 @@ class kolab_files_engine /** * Class constructor */ - public function __construct($plugin, $url) + public function __construct($plugin, $client_url, $server_url = null) { - $this->url = rcube_utils::resolve_url($url); + $this->url = rcube_utils::resolve_url($client_url); + $this->url_srv = $server_url ? rcube_utils::resolve_url($server_url) : $this->url; $this->plugin = $plugin; $this->rc = $plugin->rc; $this->timeout = $this->rc->config->get('session_lifetime') * 60; @@ -901,7 +904,7 @@ class kolab_files_engine */ protected function get_request($get = null, $token = null) { - $url = $this->url . '/api/'; + $url = $this->url_srv . '/api/'; if (!$this->request) { $config = array(