Browse Source

Add a migration to copy the current stun and turn settings

Signed-off-by: Joas Schilling <coding@schilljs.com>
pull/427/head
Joas Schilling 8 years ago
parent
commit
c26d958b98
No known key found for this signature in database GPG Key ID: E166FD8976B3BAC8
  1. 4
      lib/Config.php
  2. 48
      lib/Migration/Version2001Date20170929092606.php
  3. 2
      lib/Settings/Admin/StunServer.php
  4. 2
      lib/Settings/Admin/TurnServer.php

4
lib/Config.php

@ -47,7 +47,7 @@ class Config {
* @return string
*/
public function getStunServer() {
$config = $this->config->getAppValue('spreed', 'stun_server', 'stun.nextcloud.com:443');
$config = $this->config->getAppValue('spreed', 'stun_servers', 'stun.nextcloud.com:443');
$servers = json_decode($config);
if ($servers === null) {
@ -68,7 +68,7 @@ class Config {
* @return array
*/
public function getTurnSettings() {
$config = $this->config->getAppValue('spreed', 'stun_server');
$config = $this->config->getAppValue('spreed', 'turn_servers');
$servers = json_decode($config);
if ($servers === null || !empty($servers) || !is_array($servers)) {

48
lib/Migration/Version2001Date20170929092606.php

@ -0,0 +1,48 @@
<?php
namespace OCA\Spreed\Migration;
use Doctrine\DBAL\Schema\Schema;
use OCP\IConfig;
use OCP\Migration\SimpleMigrationStep;
use OCP\Migration\IOutput;
/**
* Auto-generated migration step: Please modify to your needs!
*/
class Version2001Date20170929092606 extends SimpleMigrationStep {
/** @var IConfig */
protected $config;
/**
* @param IConfig $config
*/
public function __construct(IConfig $config) {
$this->config = $config;
}
/**
* @param IOutput $output
* @param \Closure $schemaClosure The `\Closure` returns a `Schema`
* @param array $options
* @since 13.0.0
*/
public function preSchemaChange(IOutput $output, \Closure $schemaClosure, array $options) {
$stunServer = $this->config->getAppValue('spreed', 'stun_server', 'stun.nextcloud.com:443');
$turnServer = [
'server' => $this->config->getAppValue('spreed', 'turn_server'),
'secret' => $this->config->getAppValue('spreed', 'turn_server_secret'),
'protocols' => $this->config->getAppValue('spreed', 'turn_server_protocols'),
];
$this->config->setAppValue('spreed', 'stun_servers', json_encode([$stunServer]));
if ($turnServer['server'] !== '' && $turnServer['secret'] !== '' && $turnServer['protocols'] !== '') {
$this->config->setAppValue('spreed', 'turn_servers', json_encode([$turnServer]));
}
$this->config->deleteAppValue('spreed', 'stun_server');
$this->config->deleteAppValue('spreed', 'turn_server');
$this->config->deleteAppValue('spreed', 'turn_server_secret');
$this->config->deleteAppValue('spreed', 'turn_server_protocols');
}
}

2
lib/Settings/Admin/StunServer.php

@ -43,7 +43,7 @@ class StunServer implements ISettings {
*/
public function getForm() {
$parameters = [
'stunServer' => $this->config->getAppValue('spreed', 'stun_server', 'stun.nextcloud.com:443'),
'stunServer' => $this->config->getAppValue('spreed', 'stun_servers', json_encode(['stun.nextcloud.com:443'])),
];
return new TemplateResponse('spreed', 'settings/admin/stun-server', $parameters, '');

2
lib/Settings/Admin/TurnServer.php

@ -40,7 +40,7 @@ class TurnServer implements ISettings {
*/
public function getForm() {
$parameters = [
'turnServer' => $this->config->getAppValue('spreed', 'turn_server'),
'turnServer' => $this->config->getAppValue('spreed', 'turn_servers'),
];
return new TemplateResponse('spreed', 'settings/admin/turn-server', $parameters, '');

Loading…
Cancel
Save