Пример #1
0
 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);
 }