public static function generateSpreedWebRTCConfig() { $config = file_get_contents(Helper::getOwnAppPath() . 'doc/spreed-webrtc-minimal-config.txt'); if (Helper::getDatabaseConfigValue('SPREED_WEBRTC_SHAREDSECRET') === '') { self::regenerateSharedSecret(); } $replace = array('/webrtc/' => Helper::getDatabaseConfigValueOrDefault('SPREED_WEBRTC_BASEPATH'), 'the-default-secret-do-not-keep-me' => self::getRandomHexString(256 / 4), 'the-default-encryption-block-key' => self::getRandomHexString(256 / 4), 'i-did-not-change-the-public-token-boo' => self::getRandomHexString(256 / 4), '/absolute/path/to/nextcloud/apps/spreedme/extra' => Helper::getOwnAppPath() . 'extra', 'some-secret-do-not-keep' => Helper::getDatabaseConfigValue('SPREED_WEBRTC_SHAREDSECRET')); return strtr($config, $replace); }
public function saveConfig($config) { $allowedKeys = array('SPREED_WEBRTC_ORIGIN', 'SPREED_WEBRTC_BASEPATH', 'OWNCLOUD_TEMPORARY_PASSWORD_LOGIN_ENABLED', 'SPREED_WEBRTC_IS_SHARED_INSTANCE'); $_response = array('success' => false); try { foreach ($allowedKeys as $key) { if (isset($config[$key])) { $value = $config[$key]; Helper::setDatabaseConfigValueIfEnabled($key, $value); // Extra configuration for some of the keys switch ($key) { case 'OWNCLOUD_TEMPORARY_PASSWORD_LOGIN_ENABLED': if ($value === 'true' && Helper::getDatabaseConfigValue('OWNCLOUD_TEMPORARY_PASSWORD_SIGNING_KEY') === '') { // Also generate a 'Temporary Password signing key' Security::regenerateTemporaryPasswordSigningKey(); } break; } } } Helper::setDatabaseConfigValueIfEnabled('is_set_up', 'true'); $_response['success'] = true; } catch (\Exception $e) { $_response['error'] = $e->getCode(); } return new DataResponse($_response); }