aboutsummaryrefslogtreecommitdiffstats
path: root/apps
diff options
context:
space:
mode:
authorJohn Molakvoæ <skjnldsv@users.noreply.github.com>2024-11-06 08:54:40 +0100
committerGitHub <noreply@github.com>2024-11-06 08:54:40 +0100
commit8fab143aa486904f7a17c4f1c2f6364cd43bf9d9 (patch)
tree91381cb6382ea0d1b006ba00c9e4b7d7b418bb97 /apps
parent01ad23aaaa3e18fa30fb6bef85e8bd2cc3c3e054 (diff)
parentbcfb02f5d79796cae2fe45b9b64926eae51680a1 (diff)
downloadnextcloud-server-8fab143aa486904f7a17c4f1c2f6364cd43bf9d9.tar.gz
nextcloud-server-8fab143aa486904f7a17c4f1c2f6364cd43bf9d9.zip
Merge pull request #48721 from nextcloud/feat/allow-getter-setter-decl-fors
Diffstat (limited to 'apps')
-rw-r--r--apps/files/composer/composer/autoload_classmap.php4
-rw-r--r--apps/files/composer/composer/autoload_static.php4
-rw-r--r--apps/files/lib/AppInfo/Application.php12
-rw-r--r--apps/files/lib/Listener/DeclarativeSettingsGetValueEventListener.php39
-rw-r--r--apps/files/lib/Listener/DeclarativeSettingsSetValueEventListener.php40
-rw-r--r--apps/files/lib/Settings/DeclarativeAdminSettings.php (renamed from apps/files/lib/Listener/DeclarativeSettingsRegisterFormEventListener.php)36
6 files changed, 28 insertions, 107 deletions
diff --git a/apps/files/composer/composer/autoload_classmap.php b/apps/files/composer/composer/autoload_classmap.php
index 4be3f54c006..e9e45bbd84a 100644
--- a/apps/files/composer/composer/autoload_classmap.php
+++ b/apps/files/composer/composer/autoload_classmap.php
@@ -58,9 +58,6 @@ return array(
'OCA\\Files\\Event\\LoadSidebar' => $baseDir . '/../lib/Event/LoadSidebar.php',
'OCA\\Files\\Exception\\TransferOwnershipException' => $baseDir . '/../lib/Exception/TransferOwnershipException.php',
'OCA\\Files\\Helper' => $baseDir . '/../lib/Helper.php',
- 'OCA\\Files\\Listener\\DeclarativeSettingsGetValueEventListener' => $baseDir . '/../lib/Listener/DeclarativeSettingsGetValueEventListener.php',
- 'OCA\\Files\\Listener\\DeclarativeSettingsRegisterFormEventListener' => $baseDir . '/../lib/Listener/DeclarativeSettingsRegisterFormEventListener.php',
- 'OCA\\Files\\Listener\\DeclarativeSettingsSetValueEventListener' => $baseDir . '/../lib/Listener/DeclarativeSettingsSetValueEventListener.php',
'OCA\\Files\\Listener\\LoadSearchPluginsListener' => $baseDir . '/../lib/Listener/LoadSearchPluginsListener.php',
'OCA\\Files\\Listener\\LoadSidebarListener' => $baseDir . '/../lib/Listener/LoadSidebarListener.php',
'OCA\\Files\\Listener\\RenderReferenceEventListener' => $baseDir . '/../lib/Listener/RenderReferenceEventListener.php',
@@ -79,5 +76,6 @@ return array(
'OCA\\Files\\Service\\TagService' => $baseDir . '/../lib/Service/TagService.php',
'OCA\\Files\\Service\\UserConfig' => $baseDir . '/../lib/Service/UserConfig.php',
'OCA\\Files\\Service\\ViewConfig' => $baseDir . '/../lib/Service/ViewConfig.php',
+ 'OCA\\Files\\Settings\\DeclarativeAdminSettings' => $baseDir . '/../lib/Settings/DeclarativeAdminSettings.php',
'OCA\\Files\\Settings\\PersonalSettings' => $baseDir . '/../lib/Settings/PersonalSettings.php',
);
diff --git a/apps/files/composer/composer/autoload_static.php b/apps/files/composer/composer/autoload_static.php
index 292768fc64f..59695e60fc7 100644
--- a/apps/files/composer/composer/autoload_static.php
+++ b/apps/files/composer/composer/autoload_static.php
@@ -73,9 +73,6 @@ class ComposerStaticInitFiles
'OCA\\Files\\Event\\LoadSidebar' => __DIR__ . '/..' . '/../lib/Event/LoadSidebar.php',
'OCA\\Files\\Exception\\TransferOwnershipException' => __DIR__ . '/..' . '/../lib/Exception/TransferOwnershipException.php',
'OCA\\Files\\Helper' => __DIR__ . '/..' . '/../lib/Helper.php',
- 'OCA\\Files\\Listener\\DeclarativeSettingsGetValueEventListener' => __DIR__ . '/..' . '/../lib/Listener/DeclarativeSettingsGetValueEventListener.php',
- 'OCA\\Files\\Listener\\DeclarativeSettingsRegisterFormEventListener' => __DIR__ . '/..' . '/../lib/Listener/DeclarativeSettingsRegisterFormEventListener.php',
- 'OCA\\Files\\Listener\\DeclarativeSettingsSetValueEventListener' => __DIR__ . '/..' . '/../lib/Listener/DeclarativeSettingsSetValueEventListener.php',
'OCA\\Files\\Listener\\LoadSearchPluginsListener' => __DIR__ . '/..' . '/../lib/Listener/LoadSearchPluginsListener.php',
'OCA\\Files\\Listener\\LoadSidebarListener' => __DIR__ . '/..' . '/../lib/Listener/LoadSidebarListener.php',
'OCA\\Files\\Listener\\RenderReferenceEventListener' => __DIR__ . '/..' . '/../lib/Listener/RenderReferenceEventListener.php',
@@ -94,6 +91,7 @@ class ComposerStaticInitFiles
'OCA\\Files\\Service\\TagService' => __DIR__ . '/..' . '/../lib/Service/TagService.php',
'OCA\\Files\\Service\\UserConfig' => __DIR__ . '/..' . '/../lib/Service/UserConfig.php',
'OCA\\Files\\Service\\ViewConfig' => __DIR__ . '/..' . '/../lib/Service/ViewConfig.php',
+ 'OCA\\Files\\Settings\\DeclarativeAdminSettings' => __DIR__ . '/..' . '/../lib/Settings/DeclarativeAdminSettings.php',
'OCA\\Files\\Settings\\PersonalSettings' => __DIR__ . '/..' . '/../lib/Settings/PersonalSettings.php',
);
diff --git a/apps/files/lib/AppInfo/Application.php b/apps/files/lib/AppInfo/Application.php
index 3d2d0527072..d50a8d14f5a 100644
--- a/apps/files/lib/AppInfo/Application.php
+++ b/apps/files/lib/AppInfo/Application.php
@@ -16,9 +16,6 @@ use OCA\Files\Controller\ApiController;
use OCA\Files\DirectEditingCapabilities;
use OCA\Files\Event\LoadSearchPlugins;
use OCA\Files\Event\LoadSidebar;
-use OCA\Files\Listener\DeclarativeSettingsGetValueEventListener;
-use OCA\Files\Listener\DeclarativeSettingsRegisterFormEventListener;
-use OCA\Files\Listener\DeclarativeSettingsSetValueEventListener;
use OCA\Files\Listener\LoadSearchPluginsListener;
use OCA\Files\Listener\LoadSidebarListener;
use OCA\Files\Listener\RenderReferenceEventListener;
@@ -28,6 +25,7 @@ use OCA\Files\Search\FilesSearchProvider;
use OCA\Files\Service\TagService;
use OCA\Files\Service\UserConfig;
use OCA\Files\Service\ViewConfig;
+use OCA\Files\Settings\DeclarativeAdminSettings;
use OCP\Activity\IManager as IActivityManager;
use OCP\AppFramework\App;
use OCP\AppFramework\Bootstrap\IBootContext;
@@ -49,9 +47,6 @@ use OCP\IRequest;
use OCP\IServerContainer;
use OCP\ITagManager;
use OCP\IUserSession;
-use OCP\Settings\Events\DeclarativeSettingsGetValueEvent;
-use OCP\Settings\Events\DeclarativeSettingsRegisterFormEvent;
-use OCP\Settings\Events\DeclarativeSettingsSetValueEvent;
use OCP\Share\IManager as IShareManager;
use OCP\Util;
use Psr\Container\ContainerInterface;
@@ -111,6 +106,8 @@ class Application extends App implements IBootstrap {
$context->registerCapability(Capabilities::class);
$context->registerCapability(DirectEditingCapabilities::class);
+ $context->registerDeclarativeSettings(DeclarativeAdminSettings::class);
+
$context->registerEventListener(LoadSidebar::class, LoadSidebarListener::class);
$context->registerEventListener(RenderReferenceEvent::class, RenderReferenceEventListener::class);
$context->registerEventListener(BeforeNodeRenamedEvent::class, SyncLivePhotosListener::class);
@@ -119,9 +116,6 @@ class Application extends App implements IBootstrap {
$context->registerEventListener(BeforeNodeCopiedEvent::class, SyncLivePhotosListener::class);
$context->registerEventListener(NodeCopiedEvent::class, SyncLivePhotosListener::class);
$context->registerEventListener(LoadSearchPlugins::class, LoadSearchPluginsListener::class);
- $context->registerEventListener(DeclarativeSettingsRegisterFormEvent::class, DeclarativeSettingsRegisterFormEventListener::class);
- $context->registerEventListener(DeclarativeSettingsGetValueEvent::class, DeclarativeSettingsGetValueEventListener::class);
- $context->registerEventListener(DeclarativeSettingsSetValueEvent::class, DeclarativeSettingsSetValueEventListener::class);
$context->registerSearchProvider(FilesSearchProvider::class);
diff --git a/apps/files/lib/Listener/DeclarativeSettingsGetValueEventListener.php b/apps/files/lib/Listener/DeclarativeSettingsGetValueEventListener.php
deleted file mode 100644
index b1d0ee3a395..00000000000
--- a/apps/files/lib/Listener/DeclarativeSettingsGetValueEventListener.php
+++ /dev/null
@@ -1,39 +0,0 @@
-<?php
-
-declare(strict_types=1);
-/**
- * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors
- * SPDX-License-Identifier: AGPL-3.0-or-later
- */
-namespace OCA\Files\Listener;
-
-use OCA\Files\AppInfo\Application;
-use OCA\Files\Service\SettingsService;
-use OCP\EventDispatcher\Event;
-use OCP\EventDispatcher\IEventListener;
-use OCP\Settings\Events\DeclarativeSettingsGetValueEvent;
-
-/** @template-implements IEventListener<DeclarativeSettingsGetValueEvent> */
-class DeclarativeSettingsGetValueEventListener implements IEventListener {
-
- public function __construct(
- private SettingsService $service,
- ) {
- }
-
- public function handle(Event $event): void {
- if (!($event instanceof DeclarativeSettingsGetValueEvent)) {
- return;
- }
-
- if ($event->getApp() !== Application::APP_ID) {
- return;
- }
-
- $event->setValue(
- match($event->getFieldId()) {
- 'windows_support' => $this->service->hasFilesWindowsSupport(),
- }
- );
- }
-}
diff --git a/apps/files/lib/Listener/DeclarativeSettingsSetValueEventListener.php b/apps/files/lib/Listener/DeclarativeSettingsSetValueEventListener.php
deleted file mode 100644
index a3be2b9141e..00000000000
--- a/apps/files/lib/Listener/DeclarativeSettingsSetValueEventListener.php
+++ /dev/null
@@ -1,40 +0,0 @@
-<?php
-
-declare(strict_types=1);
-/**
- * SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
- * SPDX-License-Identifier: AGPL-3.0-or-later
- */
-namespace OCA\Files\Listener;
-
-use OCA\Files\AppInfo\Application;
-use OCA\Files\Service\SettingsService;
-use OCP\EventDispatcher\Event;
-use OCP\EventDispatcher\IEventListener;
-use OCP\Settings\Events\DeclarativeSettingsSetValueEvent;
-
-/** @template-implements IEventListener<DeclarativeSettingsSetValueEvent> */
-class DeclarativeSettingsSetValueEventListener implements IEventListener {
-
- public function __construct(
- private SettingsService $service,
- ) {
- }
-
- public function handle(Event $event): void {
- if (!($event instanceof DeclarativeSettingsSetValueEvent)) {
- return;
- }
-
- if ($event->getApp() !== Application::APP_ID) {
- return;
- }
-
- switch ($event->getFieldId()) {
- case 'windows_support':
- $this->service->setFilesWindowsSupport((bool)$event->getValue());
- $event->stopPropagation();
- break;
- }
- }
-}
diff --git a/apps/files/lib/Listener/DeclarativeSettingsRegisterFormEventListener.php b/apps/files/lib/Settings/DeclarativeAdminSettings.php
index 51832e89ecb..e509ad2233b 100644
--- a/apps/files/lib/Listener/DeclarativeSettingsRegisterFormEventListener.php
+++ b/apps/files/lib/Settings/DeclarativeAdminSettings.php
@@ -2,32 +2,42 @@
declare(strict_types=1);
/**
- * SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
-namespace OCA\Files\Listener;
+namespace OCA\Files\Settings;
-use OCA\Files\AppInfo\Application;
-use OCP\EventDispatcher\Event;
-use OCP\EventDispatcher\IEventListener;
+use OCA\Files\Service\SettingsService;
use OCP\IL10N;
+use OCP\IUser;
use OCP\Settings\DeclarativeSettingsTypes;
-use OCP\Settings\Events\DeclarativeSettingsRegisterFormEvent;
+use OCP\Settings\IDeclarativeSettingsFormWithHandlers;
-/** @template-implements IEventListener<DeclarativeSettingsRegisterFormEvent> */
-class DeclarativeSettingsRegisterFormEventListener implements IEventListener {
+class DeclarativeAdminSettings implements IDeclarativeSettingsFormWithHandlers {
public function __construct(
private IL10N $l,
+ private SettingsService $service,
) {
}
- public function handle(Event $event): void {
- if (!($event instanceof DeclarativeSettingsRegisterFormEvent)) {
- return;
+ public function getValue(string $fieldId, IUser $user): mixed {
+ return match($fieldId) {
+ 'windows_support' => $this->service->hasFilesWindowsSupport(),
+ default => throw new \InvalidArgumentException('Unexpected field id ' . $fieldId),
+ };
+ }
+
+ public function setValue(string $fieldId, mixed $value, IUser $user): void {
+ switch ($fieldId) {
+ case 'windows_support':
+ $this->service->setFilesWindowsSupport((bool)$value);
+ break;
}
+ }
- $event->registerSchema(Application::APP_ID, [
+ public function getSchema(): array {
+ return [
'id' => 'files-filename-support',
'priority' => 10,
'section_type' => DeclarativeSettingsTypes::SECTION_TYPE_ADMIN,
@@ -45,6 +55,6 @@ class DeclarativeSettingsRegisterFormEventListener implements IEventListener {
'default' => false,
],
],
- ]);
+ ];
}
}