Proxy images through usercontent.apps.nextcloud.com

Signed-off-by: Lukas Reschke <lukas@statuscode.ch>
This commit is contained in:
Lukas Reschke 2016-10-31 17:08:11 +01:00
parent 8acb54aa0b
commit a68595742b
No known key found for this signature in database
GPG key ID: B9F6980CF6E759B1
3 changed files with 8 additions and 19 deletions

View file

@ -113,7 +113,7 @@ class AppSettingsController extends Controller {
$templateResponse = new TemplateResponse($this->appName, 'apps', $params, 'user');
$policy = new ContentSecurityPolicy();
$policy->addAllowedImageDomain('*');
$policy->addAllowedImageDomain('https://usercontent.apps.nextcloud.com');
$templateResponse->setContentSecurityPolicy($policy);
return $templateResponse;
@ -234,18 +234,19 @@ class AppSettingsController extends Controller {
'missingMaxOwnCloudVersion' => false,
'missingMinOwnCloudVersion' => false,
'canInstall' => true,
'preview' => $app['screenshots'][0]['url'],
'preview' => isset($app['screenshots'][0]['url']) ? 'https://usercontent.apps.nextcloud.com/'.base64_encode($app['screenshots'][0]['url']) : '',
'score' => $app['ratingOverall'],
'removable' => $existsLocally,
'active' => $this->appManager->isEnabledForUser($app['id']),
'needsDownload' => !$existsLocally,
'groups' => $groups,
'fromAppStore' => true,
];
$appFetcher = \OC::$server->getAppFetcher();
$newVersion = \OC\Installer::isUpdateAvailable($app['id'], $appFetcher);
if($newVersion) {
if($newVersion && $this->appManager->isInstalled($app['id'])) {
$formattedApps[count($formattedApps)-1]['update'] = $newVersion;
}
}

View file

@ -207,7 +207,7 @@ OC.Settings.Apps = OC.Settings.Apps || {
currentImage.onload = function() {
page.find('.app-image')
.append(OC.Settings.Apps.imageUrl(app.preview, app.detailpage))
.append(OC.Settings.Apps.imageUrl(app.preview, app.fromAppStore))
.fadeIn();
};
}
@ -244,7 +244,7 @@ OC.Settings.Apps = OC.Settings.Apps || {
var img = '<svg width="72" height="72" viewBox="0 0 72 72">';
if (appfromstore) {
img += '<image x="0" y="0" width="72" height="72" preserveAspectRatio="xMinYMin meet" xlink:href="' + url + '?v=' + oc_config.version + '" class="app-icon" /></svg>';
img += '<image x="0" y="0" width="72" height="72" preserveAspectRatio="xMinYMin meet" xlink:href="' + url + '" class="app-icon" /></svg>';
} else {
img += '<image x="0" y="0" width="72" height="72" preserveAspectRatio="xMinYMin meet" filter="url(#invertIcon)" xlink:href="' + url + '?v=' + oc_config.version + '" class="app-icon"></image></svg>';
}

View file

@ -28,13 +28,11 @@ use OC\Settings\Controller\AppSettingsController;
use OCP\AppFramework\Http\ContentSecurityPolicy;
use OCP\AppFramework\Http\JSONResponse;
use OCP\AppFramework\Http\TemplateResponse;
use OCP\ICacheFactory;
use OCP\L10N\IFactory;
use Test\TestCase;
use OCP\IRequest;
use OCP\IL10N;
use OCP\IConfig;
use OCP\ICache;
use OCP\INavigationManager;
use OCP\App\IAppManager;
@ -52,8 +50,6 @@ class AppSettingsControllerTest extends TestCase {
private $l10n;
/** @var IConfig|\PHPUnit_Framework_MockObject_MockObject */
private $config;
/** @var ICache|\PHPUnit_Framework_MockObject_MockObject */
private $cache;
/** @var INavigationManager|\PHPUnit_Framework_MockObject_MockObject */
private $navigationManager;
/** @var IAppManager|\PHPUnit_Framework_MockObject_MockObject */
@ -74,13 +70,6 @@ class AppSettingsControllerTest extends TestCase {
->method('t')
->will($this->returnArgument(0));
$this->config = $this->createMock(IConfig::class);
$cacheFactory = $this->createMock(ICacheFactory::class);
$this->cache = $this->createMock(ICache::class);
$cacheFactory
->expects($this->once())
->method('create')
->with('settings')
->will($this->returnValue($this->cache));
$this->navigationManager = $this->createMock(INavigationManager::class);
$this->appManager = $this->createMock(IAppManager::class);
$this->categoryFetcher = $this->createMock(CategoryFetcher::class);
@ -92,7 +81,6 @@ class AppSettingsControllerTest extends TestCase {
$this->request,
$this->l10n,
$this->config,
$cacheFactory,
$this->navigationManager,
$this->appManager,
$this->categoryFetcher,
@ -185,7 +173,7 @@ class AppSettingsControllerTest extends TestCase {
->with('core_apps');
$policy = new ContentSecurityPolicy();
$policy->addAllowedImageDomain('*');
$policy->addAllowedImageDomain('https://usercontent.apps.nextcloud.com');
$expected = new TemplateResponse('settings', 'apps', ['category' => 'enabled', 'appstoreEnabled' => true], 'user');
$expected->setContentSecurityPolicy($policy);
@ -205,7 +193,7 @@ class AppSettingsControllerTest extends TestCase {
->with('core_apps');
$policy = new ContentSecurityPolicy();
$policy->addAllowedImageDomain('*');
$policy->addAllowedImageDomain('https://usercontent.apps.nextcloud.com');
$expected = new TemplateResponse('settings', 'apps', ['category' => 'enabled', 'appstoreEnabled' => false], 'user');
$expected->setContentSecurityPolicy($policy);