Merge pull request #16339 from owncloud/master-override-channel
Allow change update channel via public API
This commit is contained in:
commit
3babcd0344
3 changed files with 80 additions and 2 deletions
|
@ -385,10 +385,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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
47
tests/lib/public/util.php
Normal file
47
tests/lib/public/util.php
Normal file
|
@ -0,0 +1,47 @@
|
|||
<?php
|
||||
/**
|
||||
* ownCloud
|
||||
*
|
||||
* @author Victor Dubiniuk
|
||||
* @copyright 2015 Victor Dubiniuk victor.dubiniuk@owncloud.com
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 3 of the License, or any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU AFFERO GENERAL PUBLIC LICENSE for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Affero General Public
|
||||
* License along with this library. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
class Test_Public_Util extends \Test\TestCase {
|
||||
protected function setUp() {
|
||||
parent::setUp();
|
||||
OCP\Contacts::clear();
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider channelProvider
|
||||
*
|
||||
* @param string $channel
|
||||
*/
|
||||
public function testOverrideChannel($channel) {
|
||||
\OCP\Util::setChannel($channel);
|
||||
$actual = \OCP\Util::getChannel($channel);
|
||||
$this->assertEquals($channel, $actual);
|
||||
}
|
||||
|
||||
public function channelProvider() {
|
||||
return [
|
||||
['daily'],
|
||||
['beta'],
|
||||
['stable'],
|
||||
['production']
|
||||
];
|
||||
}
|
||||
}
|
Loading…
Reference in a new issue