Пример #1
0
 private static function getAllChangesByRelease()
 {
     $version_regex = '/^owncloud-' . Settings::APP_ID . ' \\((.*)\\)/';
     $contents = file_get_contents(Helper::getOwnAppPath() . self::CHANGELOG_FILE);
     $releases = explode("\n\n", $contents);
     $changes_by_version = array();
     foreach ($releases as $release) {
         list($version_line) = explode("\n", $release);
         $changes = str_replace($version_line . "\n", '', $release);
         $matches = array();
         preg_match($version_regex, $release, $matches);
         list($_tmp, $version) = $matches;
         if ($version && !isset($changes_by_version[$version])) {
             $changes = explode('*', $changes);
             $changes_by_line = array();
             foreach ($changes as $change) {
                 if (!empty($change)) {
                     // Replace multiple whitespaces, newlines, ..
                     $change = preg_replace('/\\s+/', ' ', trim(str_replace("\n", '', $change)));
                     $changes_by_line[] = $change;
                 }
             }
             $changes_by_version[$version] = $changes_by_line;
         }
     }
     return $changes_by_version;
 }
Пример #2
0
 public static function getAllowedIframeDomains()
 {
     $origin = Config::SPREED_WEBRTC_ORIGIN;
     if (empty($origin)) {
         $origin = Helper::getOwnHost();
     }
     return array($origin, 'mailto:');
 }
Пример #3
0
 private function getUserId()
 {
     $this->requireLogin();
     if (Helper::getConfigValue('SPREED_WEBRTC_IS_SHARED_INSTANCE')) {
         // Return cloud id instead
         return $this->getCloudId();
     }
     return $this->user->getUID();
 }
 /**
  * @NoAdminRequired
  * @NoCSRFRequired
  * @PublicPage
  */
 public function getConfig()
 {
     $_response = array('success' => false);
     try {
         $_response['spreed_webrtc'] = array('url' => Helper::getSpreedWebRtcUrl());
         $_response['success'] = true;
     } catch (\Exception $e) {
         $_response['error'] = $e->getCode();
     }
     return new DataResponse($_response);
 }
 /**
  * @NoAdminRequired
  * @NoCSRFRequired
  * @PublicPage
  */
 public function getConfig()
 {
     $_response = array('success' => false);
     try {
         $_response['spreed_webrtc'] = array('url' => Helper::getSpreedWebRtcUrl());
         $_response['owncloud'] = array('login' => array('url' => $this->urlGenerator->linkTo('index.php')));
         $_response['success'] = true;
     } catch (\Exception $e) {
         $_response['error'] = $e->getCode();
     }
     return new DataResponse($_response);
 }
Пример #6
0
 private static function testSpreedWebRTCAPI()
 {
     // Force ?debug param removal
     $url = Helper::getSpreedWebRtcUrl(false);
     $config_url = $url . 'api/v1/config';
     // TODO(leon): Switch to curl as this is shitty?
     $response = file_get_contents($config_url, false, stream_context_create(array('http' => array('timeout' => 5), 'ssl' => array('verify_peer' => false, 'verify_peer_name' => false))));
     if (empty($response)) {
         return 'Unable to connect to WebRTC at ' . $url . '. Did you set a correct SPREED_WEBRTC_ORIGIN and SPREED_WEBRTC_BASEPATH in config/config.php?';
     }
     $json = json_decode($response, true);
     $error = json_last_error();
     if ($error !== JSON_ERROR_NONE) {
         return 'WebRTC API config endpoint returned incorrect json response: <pre>' . htmlspecialchars($response) . '</pre>';
     }
     if (!isset($json['Plugin']) || empty($json['Plugin'])) {
         return 'WebRTC API config endpoint does not include a plugin';
     }
 }
Пример #7
0
<?php

use OCA\SpreedME\Helper\Helper;
$iframe_url = Helper::getSpreedWebRtcUrl();
script('spreedme', '../extra/static/PostMessageAPI');
script('spreedme', 'webrtc');
style('spreedme', 'webrtc');
$sharedConfig = array('is_guest' => $_['is_guest'] === true, 'features' => array('temporary_password' => Helper::getConfigValue('OWNCLOUD_TEMPORARY_PASSWORD_LOGIN_ENABLED') === true));
?>

<script id="sharedconfig" type="application/json"><?php 
// Not an issue to output this directly, json_encode by default has disabled JSON_UNESCAPED_SLASHES
echo json_encode($sharedConfig);
?>
</script>

<div id="debug"><b>Debug</b><br /></div>

<div id="container">
	<iframe src="<?php 
echo $iframe_url;
?>
" allowfullscreen></iframe>
</div>
Пример #8
0
 public static function getAllowedIframeDomains()
 {
     $origin = Helper::getSpreedWebRtcOrigin();
     return array($origin, 'mailto:');
 }
Пример #9
0
<?php

use OCA\SpreedME\Helper\Helper;
$iframe_url = Helper::getSpreedWebRtcUrl();
script('spreedme', '../extra/static/config/OwnCloudConfig');
script('spreedme', '../extra/static/PostMessageAPI');
script('spreedme', 'webrtc');
style('spreedme', 'webrtc');
?>

<div id="debug"><b>Debug</b><br /></div>

<div id="container">
	<iframe src="<?php 
echo $iframe_url;
?>
" allowfullscreen></iframe>
</div>
 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);
 }
Пример #11
0
<?php

use OCA\SpreedME\Helper\Helper;
script('spreedme', '../extra/static/config/OwnCloudConfig');
script('spreedme', '../extra/static/PostMessageAPI');
script('spreedme', 'fileselector');
style('spreedme', 'fileselector');
// TODO(leon): Check if this could result in a potential XSS vulnerability
$sharedConfig = array('allowed_partners' => Helper::getSpreedWebRtcOrigin());
?>

<script id="sharedconfig" type="application/json"><?php 
echo json_encode($sharedConfig);
?>
</script>

<div id="debug"><b>Debug</b><br /></div>
 public function __construct($appName, IRequest $request, $userId)
 {
     parent::__construct($appName, $request);
     Helper::notifyIfAppNotSetUp();
 }
?>
" />
			</p>
			<p class="show-if-advanced-settings">
				<label for="SPREED_WEBRTC_IS_SHARED_INSTANCE">SPREED_WEBRTC_IS_SHARED_INSTANCE:</label>
				<input type="checkbox" id="SPREED_WEBRTC_IS_SHARED_INSTANCE" name="SPREED_WEBRTC_IS_SHARED_INSTANCE"
					<?php 
echo Helper::getDatabaseConfigValueOrDefault('SPREED_WEBRTC_IS_SHARED_INSTANCE') === true ? 'checked="checked"' : '';
?>
 />
			</p>
			<p class="show-if-advanced-settings">
				<label for="OWNCLOUD_TEMPORARY_PASSWORD_LOGIN_ENABLED">OWNCLOUD_TEMPORARY_PASSWORD_LOGIN_ENABLED:</label>
				<input type="checkbox" id="OWNCLOUD_TEMPORARY_PASSWORD_LOGIN_ENABLED" name="OWNCLOUD_TEMPORARY_PASSWORD_LOGIN_ENABLED"
					<?php 
echo Helper::getDatabaseConfigValueOrDefault('OWNCLOUD_TEMPORARY_PASSWORD_LOGIN_ENABLED') === true ? 'checked="checked"' : '';
?>
 />
			</p>
			<p class="hidden OWNCLOUD_TEMPORARY_PASSWORD_SIGNING_KEY warning">
				A new OWNCLOUD_TEMPORARY_PASSWORD_SIGNING_KEY was generated.<br />Previously generated 'Temporary Passwords' are no longer valid.
			</p>
			<p class="show-if-advanced-settings">
				<label for="REGENERATE_OWNCLOUD_TEMPORARY_PASSWORD_SIGNING_KEY">OWNCLOUD_TEMPORARY_PASSWORD_SIGNING_KEY:</label>
				<input type="button" id="REGENERATE_OWNCLOUD_TEMPORARY_PASSWORD_SIGNING_KEY" name="REGENERATE_OWNCLOUD_TEMPORARY_PASSWORD_SIGNING_KEY"
					class="needs-confirmation" data-confirmation-message="Do you really want to generate a new signing key?\nAll previously generated 'Temporary Passwords' will be invalidated." value="Generate new signing key" />
			</p>
			<button type="submit" class="primary">Save settings</button> <button type="button" class="do-show-advanced-settings">Show advanced settings</button>
		</form>
	</div>
	<div class="show-if-js-config-found">
Пример #14
0
<?php

use OCA\SpreedME\Helper\Helper;
$origin = Helper::getSpreedWebRtcOrigin();
script('spreedme', '../extra/static/config/OwnCloudConfig');
script('spreedme', '../extra/static/PostMessageAPI');
script('spreedme', 'fileselector');
style('spreedme', 'fileselector');
?>

<script data-shared-config='{"allowedPartners": "<?php 
echo $origin;
?>
"}'></script>

<div id="debug"><b>Debug</b><br /></div>