From 0407bc097895355b90bc722e8b58afb27a40d538 Mon Sep 17 00:00:00 2001 From: Joas Schilling Date: Mon, 13 Oct 2014 11:18:24 +0200 Subject: [PATCH] Set overwritemailurl* configs on setup Correctly use overwritemailurl value when generating absolute urls in CLI Fix #11500 Rename the config to *cli Add overwrite.cli.url to the sample config Revert separator fix, fixes unit test --- config/config.sample.php | 7 +++++++ lib/private/setup.php | 2 +- lib/private/urlgenerator.php | 4 ++++ 3 files changed, 12 insertions(+), 1 deletion(-) diff --git a/config/config.sample.php b/config/config.sample.php index 02958ace0c2..0a21978ba2b 100755 --- a/config/config.sample.php +++ b/config/config.sample.php @@ -329,6 +329,13 @@ $CONFIG = array( */ 'overwritecondaddr' => '', +/** + * Use this configuration parameter to specify the base url for any urls which are + * generated within ownCloud using any kind of command line tools (cron or occ). + * The value should contain the full base URL: ``https://www.example.com/owncloud`` + */ +'overwrite.cli.url' => '', + /** * The URL of your proxy server, for example ``proxy.example.com:8081``. */ diff --git a/lib/private/setup.php b/lib/private/setup.php index b1b3388f81b..75dc1987ee6 100644 --- a/lib/private/setup.php +++ b/lib/private/setup.php @@ -86,7 +86,7 @@ class OC_Setup { //write the config file \OC::$server->getConfig()->setSystemValue('trusted_domains', $trustedDomains); \OC::$server->getConfig()->setSystemValue('datadirectory', $datadir); - \OC::$server->getConfig()->setSystemValue('overwritewebroot', OC::$WEBROOT); + \OC::$server->getConfig()->setSystemValue('overwrite.cli.url', \OC_Request::serverProtocol() . '://' . \OC_Request::serverHost() . OC::$WEBROOT); \OC::$server->getConfig()->setSystemValue('dbtype', $dbtype); \OC::$server->getConfig()->setSystemValue('version', implode('.', OC_Util::getVersion())); diff --git a/lib/private/urlgenerator.php b/lib/private/urlgenerator.php index f5ec9803edb..e50e9eed6af 100644 --- a/lib/private/urlgenerator.php +++ b/lib/private/urlgenerator.php @@ -162,6 +162,10 @@ class URLGenerator implements IURLGenerator { public function getAbsoluteURL($url) { $separator = $url[0] === '/' ? '' : '/'; + if (\OC::$CLI && !defined('PHPUNIT_RUN')) { + return rtrim($this->config->getSystemValue('overwrite.cli.url'), '/') . '/' . ltrim($url, '/'); + } + // The ownCloud web root can already be prepended. $webRoot = substr($url, 0, strlen(\OC::$WEBROOT)) === \OC::$WEBROOT ? '' -- 2.39.5