diff --git a/config/config.sample.php b/config/config.sample.php index 02958ace0c..0a21978ba2 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 b1b3388f81..75dc1987ee 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 f5ec9803ed..e50e9eed6a 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 ? ''