Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nextcloud/richdocuments.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJulius Härtl <jus@bitgrid.net>2020-11-06 12:36:32 +0300
committerJulius Härtl <jus@bitgrid.net>2020-11-08 12:08:50 +0300
commit74bdf6d216060da02b6764e4de91b9db09c24fb8 (patch)
tree70e92270c57578337a17eeea268eee1a1c80d69c /lib/Capabilities.php
parent89f8bbeba6abc834dd54efc109d0ec4ac26b9b66 (diff)
Move storing capabilities to distributed cache
Signed-off-by: Julius Härtl <jus@bitgrid.net>
Diffstat (limited to 'lib/Capabilities.php')
-rw-r--r--lib/Capabilities.php88
1 files changed, 28 insertions, 60 deletions
diff --git a/lib/Capabilities.php b/lib/Capabilities.php
index 51e46e9e..efc412ba 100644
--- a/lib/Capabilities.php
+++ b/lib/Capabilities.php
@@ -23,15 +23,9 @@
namespace OCA\Richdocuments;
-use OCP\AppFramework\Utility\ITimeFactory;
+use OCA\Richdocuments\Service\CapabilitiesService;
use OCP\Capabilities\ICapability;
-use OCP\Files\IAppData;
-use OCP\Files\NotFoundException;
-use OCP\Files\SimpleFS\ISimpleFolder;
-use OCP\Http\Client\IClientService;
-use OCP\IConfig;
use OCP\IL10N;
-use OCP\IURLGenerator;
class Capabilities implements ICapability {
@@ -77,69 +71,43 @@ class Capabilities implements ICapability {
'text/spreadsheet'
];
- /** @var ISimpleFolder */
- private $appData;
-
/** @var IL10N */
private $l10n;
/** @var AppConfig */
private $config;
+ /** @var CapabilitiesService */
+ private $capabilitiesService;
+
+ private $capabilities = null;
- /**
- * Capabilities constructor.
- *
- * @param IAppData $appData
- * @throws \OCP\Files\NotPermittedException
- */
- public function __construct(IAppData $appData, IL10N $l10n, AppConfig $config) {
+ public function __construct(IL10N $l10n, AppConfig $config, CapabilitiesService $capabilitiesService) {
$this->l10n = $l10n;
$this->config = $config;
- try {
- $this->appData = $appData->getFolder('richdocuments');
- } catch (NotFoundException $e) {
- $this->appData = $appData->newFolder('richdocuments');
- }
+ $this->capabilitiesService = $capabilitiesService;
}
public function getCapabilities() {
- $collaboraCapabilities = $this->getCollaboraCapabilities();
- return [
- 'richdocuments' => [
- 'mimetypes' => self::MIMETYPES,
- 'mimetypesNoDefaultOpen' => self::MIMETYPES_OPTIONAL,
- 'collabora' => $collaboraCapabilities,
- 'direct_editing' => isset($collaboraCapabilities['hasMobileSupport']) ? : false,
- 'templates' => isset($collaboraCapabilities['hasTemplateSaveAs']) || isset($collaboraCapabilities['hasTemplateSource']) ? : false,
- 'productName' => isset($collaboraCapabilities['productName']) ? $collaboraCapabilities['productName'] : $this->l10n->t('Collabora Online'),
- 'config' => [
- 'wopi_url' => $this->config->getAppValue('wopi_url'),
- 'public_wopi_url' => $this->config->getAppValue('public_wopi_url'),
- 'disable_certificate_verification' => $this->config->getAppValue('disable_certificate_verification'),
- 'edit_groups' => $this->config->getAppValue('edit_groups'),
- 'use_groups' => $this->config->getAppValue('use_groups'),
- 'doc_format' => $this->config->getAppValue('doc_format'),
- ]
- ],
- ];
- }
-
- /**
- * TODO: use CapabilitiesService
- * @return array
- * @throws \OCP\Files\NotPermittedException
- */
- private function getCollaboraCapabilities() {
- try {
- $file = $this->appData->getFile('capabilities.json');
- $decodedFile = \json_decode($file->getContent(), true);
- } catch (NotFoundException $e) {
- return [];
- }
-
- if (!is_array($decodedFile)) {
- return [];
+ if (!$this->capabilities) {
+ $collaboraCapabilities = $this->capabilitiesService->getCapabilities();
+ $this->capabilities = [
+ 'richdocuments' => [
+ 'mimetypes' => self::MIMETYPES,
+ 'mimetypesNoDefaultOpen' => self::MIMETYPES_OPTIONAL,
+ 'collabora' => $collaboraCapabilities,
+ 'direct_editing' => isset($collaboraCapabilities['hasMobileSupport']) ?: false,
+ 'templates' => isset($collaboraCapabilities['hasTemplateSaveAs']) || isset($collaboraCapabilities['hasTemplateSource']) ?: false,
+ 'productName' => isset($collaboraCapabilities['productName']) ? $collaboraCapabilities['productName'] : $this->l10n->t('Collabora Online'),
+ 'config' => [
+ 'wopi_url' => $this->config->getAppValue('wopi_url'),
+ 'public_wopi_url' => $this->config->getAppValue('public_wopi_url'),
+ 'disable_certificate_verification' => $this->config->getAppValue('disable_certificate_verification'),
+ 'edit_groups' => $this->config->getAppValue('edit_groups'),
+ 'use_groups' => $this->config->getAppValue('use_groups'),
+ 'doc_format' => $this->config->getAppValue('doc_format'),
+ ]
+ ],
+ ];
}
-
- return $decodedFile;
+ return $this->capabilities;
}
}