diff --git a/lib/private/util.php b/lib/private/util.php index 367199f773..46fb929a6b 100644 --- a/lib/private/util.php +++ b/lib/private/util.php @@ -388,10 +388,23 @@ class OC_Util { $session->set('OC_Version', $OC_Version); /** @var $OC_VersionString string */ $session->set('OC_VersionString', $OC_VersionString); - /** @var $OC_Channel string */ - $session->set('OC_Channel', $OC_Channel); /** @var $OC_Build string */ $session->set('OC_Build', $OC_Build); + + // Allow overriding update channel + + if (\OC::$server->getSystemConfig()->getValue('installed', false)) { + $channel = \OC::$server->getAppConfig()->getValue('core', 'OC_Channel'); + } else { + $channel = $OC_Channel; + } + + if (!is_null($channel)) { + $session->set('OC_Channel', $channel); + } else { + /** @var $OC_Channel string */ + $session->set('OC_Channel', $OC_Channel); + } } } diff --git a/lib/public/util.php b/lib/public/util.php index 6eb5c6034c..f032d0a543 100644 --- a/lib/public/util.php +++ b/lib/public/util.php @@ -69,6 +69,24 @@ class Util { public static function getVersion() { return(\OC_Util::getVersion()); } + + /** + * Set current update channel + * @param string $channel + */ + public static function setChannel($channel) { + //Flush timestamp to reload version.php + \OC::$server->getSession()->set('OC_Version_Timestamp', 0); + return \OC::$server->getAppConfig()->setValue('core', 'OC_Channel', $channel); + } + + /** + * Get current update channel + * @return string + */ + public static function getChannel() { + return \OC_Util::getChannel(); + } /** * send an email