Merge pull request #29235 from nextcloud/feat/appstore/enterprise

pull/29255/head
John Molakvoæ 3 years ago committed by GitHub
commit b6a3ba136c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -44,7 +44,7 @@ class AppFetcher extends Fetcher {
private $compareVersion;
/** @var IRegistry */
private $registry;
protected $registry;
/** @var bool */
private $ignoreMaxVersion;
@ -61,7 +61,8 @@ class AppFetcher extends Fetcher {
$clientService,
$timeFactory,
$config,
$logger
$logger,
$registry
);
$this->compareVersion = $compareVersion;

@ -30,6 +30,7 @@ use OC\Files\AppData\Factory;
use OCP\AppFramework\Utility\ITimeFactory;
use OCP\Http\Client\IClientService;
use OCP\IConfig;
use OCP\Support\Subscription\IRegistry;
use Psr\Log\LoggerInterface;
class CategoryFetcher extends Fetcher {
@ -37,14 +38,17 @@ class CategoryFetcher extends Fetcher {
IClientService $clientService,
ITimeFactory $timeFactory,
IConfig $config,
LoggerInterface $logger) {
LoggerInterface $logger,
IRegistry $registry) {
parent::__construct(
$appDataFactory,
$clientService,
$timeFactory,
$config,
$logger
$logger,
$registry
);
$this->fileName = 'categories.json';
$this->endpointName = 'categories.json';
}

@ -38,6 +38,7 @@ use OCP\Files\IAppData;
use OCP\Files\NotFoundException;
use OCP\Http\Client\IClientService;
use OCP\IConfig;
use OCP\Support\Subscription\IRegistry;
use Psr\Log\LoggerInterface;
abstract class Fetcher {
@ -54,6 +55,9 @@ abstract class Fetcher {
protected $config;
/** @var LoggerInterface */
protected $logger;
/** @var IRegistry */
protected $registry;
/** @var string */
protected $fileName;
/** @var string */
@ -67,12 +71,14 @@ abstract class Fetcher {
IClientService $clientService,
ITimeFactory $timeFactory,
IConfig $config,
LoggerInterface $logger) {
LoggerInterface $logger,
IRegistry $registry) {
$this->appData = $appDataFactory->get('appstore');
$this->clientService = $clientService;
$this->timeFactory = $timeFactory;
$this->config = $config;
$this->logger = $logger;
$this->registry = $registry;
}
/**
@ -103,6 +109,12 @@ abstract class Fetcher {
];
}
// If we have a valid subscription key, send it to the appstore
$subscriptionKey = $this->config->getAppValue('support', 'subscription_key');
if ($this->registry->delegateHasValidSubscription() && $subscriptionKey) {
$options['headers']['X-NC-Subscription-Key'] = $subscriptionKey;
}
$client = $this->clientService->newClient();
try {
$response = $client->get($this->getEndpoint(), $options);

@ -51,7 +51,7 @@ class AppFetcherTest extends TestCase {
protected $compareVersion;
/** @var LoggerInterface|\PHPUnit\Framework\MockObject\MockObject */
protected $logger;
/** @var IRegistry */
/** @var IRegistry|\PHPUnit\Framework\MockObject\MockObject */
protected $registry;
/** @var AppFetcher */
protected $fetcher;
@ -2067,7 +2067,7 @@ EJL3BaQAQaASSsvFrcozYxrQG4VzEg==
$this->assertEquals(self::$expectedResponse['data'], $this->fetcher->get());
}
public function testGetWhitelist() {
public function testGetAppsAllowlist() {
$this->config->method('getSystemValue')
->willReturnCallback(function ($key, $default) {
if ($key === 'appstoreenabled') {
@ -2082,7 +2082,7 @@ EJL3BaQAQaASSsvFrcozYxrQG4VzEg==
return $default;
}
});
$file = $this->createMock(ISimpleFile::class);
$folder = $this->createMock(ISimpleFolder::class);
$folder
@ -2107,6 +2107,7 @@ EJL3BaQAQaASSsvFrcozYxrQG4VzEg==
->willReturn($client);
$response = $this->createMock(IResponse::class);
$client
->expects($this->once())
->method('get')
->with('https://custom.appsstore.endpoint/api/v1/apps.json')
->willReturn($response);
@ -2123,7 +2124,7 @@ EJL3BaQAQaASSsvFrcozYxrQG4VzEg==
->willReturn(1234);
$this->registry
->expects($this->once())
->expects($this->exactly(2))
->method('delegateHasValidSubscription')
->willReturn(true);

@ -34,7 +34,8 @@ class CategoryFetcherTest extends FetcherBase {
$this->clientService,
$this->timeFactory,
$this->config,
$this->logger
$this->logger,
$this->registry
);
}

@ -33,6 +33,7 @@ use OCP\Http\Client\IClient;
use OCP\Http\Client\IClientService;
use OCP\Http\Client\IResponse;
use OCP\IConfig;
use OCP\Support\Subscription\IRegistry;
use Psr\Log\LoggerInterface;
use Test\TestCase;
@ -49,6 +50,8 @@ abstract class FetcherBase extends TestCase {
protected $config;
/** @var LoggerInterface|\PHPUnit\Framework\MockObject\MockObject */
protected $logger;
/** @var IRegistry|\PHPUnit\Framework\MockObject\MockObject */
protected $registry;
/** @var Fetcher */
protected $fetcher;
/** @var string */
@ -68,6 +71,7 @@ abstract class FetcherBase extends TestCase {
$this->timeFactory = $this->createMock(ITimeFactory::class);
$this->config = $this->createMock(IConfig::class);
$this->logger = $this->createMock(LoggerInterface::class);
$this->registry = $this->createMock(IRegistry::class);
}
public function testGetWithAlreadyExistingFileAndUpToDateTimestampAndVersion() {

Loading…
Cancel
Save