Merge pull request #16339 from owncloud/master-override-channel

Allow change update channel via public API
This commit is contained in:
Thomas Müller 2015-05-26 11:42:41 +02:00
commit 3babcd0344
3 changed files with 80 additions and 2 deletions

View File

@ -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);
}
}
}

View File

@ -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
View 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']
];
}
}