Skip to content

Commit 16cd072

Browse files
committed
refactor: Cleanup files app bootstrap
- Register event listener in the register method - Remove hook for injecting max_chunk_size in app config and move that code directly in JSConfigHelper - Remove getUserFolder deprecated API usage Signed-off-by: Carl Schwan <carlschwan@kde.org>
1 parent 0849475 commit 16cd072

8 files changed

Lines changed: 48 additions & 73 deletions

File tree

apps/files/composer/composer/autoload_classmap.php

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@
1717
'OCA\\Files\\Activity\\Settings\\FileChanged' => $baseDir . '/../lib/Activity/Settings/FileChanged.php',
1818
'OCA\\Files\\Activity\\Settings\\FileFavoriteChanged' => $baseDir . '/../lib/Activity/Settings/FileFavoriteChanged.php',
1919
'OCA\\Files\\AdvancedCapabilities' => $baseDir . '/../lib/AdvancedCapabilities.php',
20-
'OCA\\Files\\App' => $baseDir . '/../lib/App.php',
2120
'OCA\\Files\\AppInfo\\Application' => $baseDir . '/../lib/AppInfo/Application.php',
2221
'OCA\\Files\\BackgroundJob\\CleanupDirectEditingTokens' => $baseDir . '/../lib/BackgroundJob/CleanupDirectEditingTokens.php',
2322
'OCA\\Files\\BackgroundJob\\CleanupFileLocks' => $baseDir . '/../lib/BackgroundJob/CleanupFileLocks.php',

apps/files/composer/composer/autoload_static.php

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,6 @@ class ComposerStaticInitFiles
3232
'OCA\\Files\\Activity\\Settings\\FileChanged' => __DIR__ . '/..' . '/../lib/Activity/Settings/FileChanged.php',
3333
'OCA\\Files\\Activity\\Settings\\FileFavoriteChanged' => __DIR__ . '/..' . '/../lib/Activity/Settings/FileFavoriteChanged.php',
3434
'OCA\\Files\\AdvancedCapabilities' => __DIR__ . '/..' . '/../lib/AdvancedCapabilities.php',
35-
'OCA\\Files\\App' => __DIR__ . '/..' . '/../lib/App.php',
3635
'OCA\\Files\\AppInfo\\Application' => __DIR__ . '/..' . '/../lib/AppInfo/Application.php',
3736
'OCA\\Files\\BackgroundJob\\CleanupDirectEditingTokens' => __DIR__ . '/..' . '/../lib/BackgroundJob/CleanupDirectEditingTokens.php',
3837
'OCA\\Files\\BackgroundJob\\CleanupFileLocks' => __DIR__ . '/..' . '/../lib/BackgroundJob/CleanupFileLocks.php',

apps/files/lib/App.php

Lines changed: 0 additions & 22 deletions
This file was deleted.

apps/files/lib/AppInfo/Application.php

Lines changed: 25 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88
*/
99
namespace OCA\Files\AppInfo;
1010

11-
use Closure;
1211
use OCA\Files\AdvancedCapabilities;
1312
use OCA\Files\Capabilities;
1413
use OCA\Files\Collaboration\Resources\Listener;
@@ -49,11 +48,12 @@
4948
use OCP\IL10N;
5049
use OCP\IPreview;
5150
use OCP\IRequest;
52-
use OCP\IServerContainer;
5351
use OCP\ITagManager;
5452
use OCP\IUserSession;
53+
use OCP\Share\Events\ShareCreatedEvent;
54+
use OCP\Share\Events\ShareDeletedEvent;
55+
use OCP\Share\Events\ShareDeletedFromSelfEvent;
5556
use OCP\Share\IManager as IShareManager;
56-
use OCP\Util;
5757
use Psr\Container\ContainerInterface;
5858
use Psr\Log\LoggerInterface;
5959

@@ -68,9 +68,12 @@ public function register(IRegistrationContext $context): void {
6868
/**
6969
* Controllers
7070
*/
71-
$context->registerService('APIController', function (ContainerInterface $c) {
72-
/** @var IServerContainer $server */
73-
$server = $c->get(IServerContainer::class);
71+
$context->registerService(APIController::class, function (ContainerInterface $c): ApiController {
72+
/** @var IUserSession $userSession */
73+
$userSession = $c->get(IUserSession::class);
74+
75+
/** @var IRootFolder $rootFolder */
76+
$rootFolder = $c->get(IRootFolder::class);
7477

7578
return new ApiController(
7679
$c->get('AppName'),
@@ -80,7 +83,7 @@ public function register(IRegistrationContext $context): void {
8083
$c->get(IPreview::class),
8184
$c->get(IShareManager::class),
8285
$c->get(IConfig::class),
83-
$server->getUserFolder(),
86+
$rootFolder->getUserFolder($userSession->getUser()->getUID()),
8487
$c->get(UserConfig::class),
8588
$c->get(ViewConfig::class),
8689
$c->get(IL10N::class),
@@ -92,15 +95,18 @@ public function register(IRegistrationContext $context): void {
9295
/**
9396
* Services
9497
*/
95-
$context->registerService(TagService::class, function (ContainerInterface $c) {
96-
/** @var IServerContainer $server */
97-
$server = $c->get(IServerContainer::class);
98+
$context->registerService(TagService::class, function (ContainerInterface $c): TagService {
99+
/** @var IUserSession $userSession */
100+
$userSession = $c->get(IUserSession::class);
101+
102+
/** @var IRootFolder $rootFolder */
103+
$rootFolder = $c->get(IRootFolder::class);
98104

99105
return new TagService(
100-
$c->get(IUserSession::class),
106+
$userSession,
101107
$c->get(IActivityManager::class),
102108
$c->get(ITagManager::class)->load(self::APP_ID),
103-
$server->getUserFolder(),
109+
$rootFolder->getUserFolder($userSession->getUser()->getUID()),
104110
);
105111
});
106112

@@ -121,6 +127,12 @@ public function register(IRegistrationContext $context): void {
121127
$context->registerEventListener(LoadSearchPlugins::class, LoadSearchPluginsListener::class);
122128
$context->registerEventListener(NodeAddedToFavorite::class, NodeAddedToFavoriteListener::class);
123129
$context->registerEventListener(NodeRemovedFromFavorite::class, NodeRemovedFromFavoriteListener::class);
130+
131+
132+
$context->registerEventListener(ShareCreatedEvent::class, Listener::class);
133+
$context->registerEventListener(ShareDeletedEvent::class, Listener::class);
134+
$context->registerEventListener(ShareDeletedFromSelfEvent::class, Listener::class);
135+
124136
$context->registerSearchProvider(FilesSearchProvider::class);
125137

126138
$context->registerNotifierService(Notifier::class);
@@ -131,16 +143,10 @@ public function register(IRegistrationContext $context): void {
131143
}
132144

133145
public function boot(IBootContext $context): void {
134-
$context->injectFn(Closure::fromCallable([$this, 'registerCollaboration']));
135-
$context->injectFn([Listener::class, 'register']);
136-
$this->registerHooks();
146+
$context->injectFn($this->registerCollaboration(...));
137147
}
138148

139149
private function registerCollaboration(IProviderManager $providerManager): void {
140150
$providerManager->registerResourceProvider(ResourceProvider::class);
141151
}
142-
143-
private function registerHooks(): void {
144-
Util::connectHook('\OCP\Config', 'js', '\OCA\Files\App', 'extendJsConfig');
145-
}
146152
}

apps/files/lib/Collaboration/Resources/Listener.php

Lines changed: 17 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -9,25 +9,29 @@
99
namespace OCA\Files\Collaboration\Resources;
1010

1111
use OCP\Collaboration\Resources\IManager;
12-
use OCP\EventDispatcher\IEventDispatcher;
13-
use OCP\Server;
12+
use OCP\EventDispatcher\Event;
13+
use OCP\EventDispatcher\IEventListener;
1414
use OCP\Share\Events\ShareCreatedEvent;
1515
use OCP\Share\Events\ShareDeletedEvent;
1616
use OCP\Share\Events\ShareDeletedFromSelfEvent;
1717

18-
class Listener {
19-
public static function register(IEventDispatcher $dispatcher): void {
20-
$dispatcher->addListener(ShareCreatedEvent::class, [self::class, 'shareModification']);
21-
$dispatcher->addListener(ShareDeletedEvent::class, [self::class, 'shareModification']);
22-
$dispatcher->addListener(ShareDeletedFromSelfEvent::class, [self::class, 'shareModification']);
18+
/**
19+
* @template-implements IEventListener<ShareCreatedEvent|ShareDeletedEvent|ShareDeletedFromSelfEvent>
20+
*/
21+
class Listener implements IEventListener {
22+
public function __construct(
23+
readonly protected IManager $resourceManager,
24+
readonly protected ResourceProvider $resourceProvider,
25+
) {
2326
}
2427

25-
public static function shareModification(): void {
26-
/** @var IManager $resourceManager */
27-
$resourceManager = Server::get(IManager::class);
28-
/** @var ResourceProvider $resourceProvider */
29-
$resourceProvider = Server::get(ResourceProvider::class);
28+
public function handle(Event $event): void {
29+
if ($event instanceof ShareDeletedFromSelfEvent || $event instanceof ShareDeletedEvent || $event instanceof ShareCreatedEvent) {
30+
$this->shareModification();
31+
}
32+
}
3033

31-
$resourceManager->invalidateAccessCacheForProvider($resourceProvider);
34+
public function shareModification(): void {
35+
$this->resourceManager->invalidateAccessCacheForProvider($this->resourceProvider);
3236
}
3337
}

apps/files_sharing/lib/Listener/LoadAdditionalListener.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ public function handle(Event $event): void {
2828
Util::addStyle(Application::APP_ID, 'icons');
2929

3030
$shareManager = Server::get(IManager::class);
31-
if ($shareManager->shareApiEnabled() && class_exists('\OCA\Files\App')) {
31+
if ($shareManager->shareApiEnabled()) {
3232
Util::addInitScript(Application::APP_ID, 'init');
3333
}
3434
}

build/psalm-baseline.xml

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1201,17 +1201,6 @@
12011201
<code><![CDATA[$this->fileIsEncrypted]]></code>
12021202
</TypeDoesNotContainType>
12031203
</file>
1204-
<file src="apps/files/lib/AppInfo/Application.php">
1205-
<DeprecatedInterface>
1206-
<code><![CDATA[$server]]></code>
1207-
<code><![CDATA[$server]]></code>
1208-
</DeprecatedInterface>
1209-
<DeprecatedMethod>
1210-
<code><![CDATA[Util::connectHook('\OCP\Config', 'js', '\OCA\Files\App', 'extendJsConfig')]]></code>
1211-
<code><![CDATA[getUserFolder]]></code>
1212-
<code><![CDATA[getUserFolder]]></code>
1213-
</DeprecatedMethod>
1214-
</file>
12151204
<file src="apps/files/lib/BackgroundJob/ScanFiles.php">
12161205
<DeprecatedClass>
12171206
<code><![CDATA[\OC_Util::tearDownFS()]]></code>
@@ -2083,7 +2072,6 @@
20832072
<file src="apps/provisioning_api/lib/Middleware/ProvisioningApiMiddleware.php">
20842073
<DeprecatedMethod>
20852074
<code><![CDATA[hasAnnotation]]></code>
2086-
<code><![CDATA[hasAnnotation]]></code>
20872075
</DeprecatedMethod>
20882076
<InvalidReturnType>
20892077
<code><![CDATA[Response]]></code>

lib/private/Template/JSConfigHelper.php

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
use OC\CapabilitiesManager;
1313
use OC\Core\AppInfo\ConfigLexicon;
1414
use OC\Files\FilenameValidator;
15+
use OCA\Files\Service\ChunkedUploadConfig;
1516
use OCA\Provisioning_API\Controller\AUserDataOCSController;
1617
use OCP\App\AppPathNotFoundException;
1718
use OCP\App\IAppManager;
@@ -256,7 +257,10 @@ public function getConfig(): string {
256257
'defaultRemoteExpireDateEnabled' => $defaultRemoteExpireDateEnabled,
257258
'defaultRemoteExpireDate' => $defaultRemoteExpireDate,
258259
'defaultRemoteExpireDateEnforced' => $defaultRemoteExpireDateEnforced,
259-
]
260+
],
261+
'files' => [
262+
'max_chunk_size' => ChunkedUploadConfig::getMaxChunkSize(),
263+
],
260264
]),
261265
'_theme' => json_encode([
262266
'entity' => $this->defaults->getEntity(),
@@ -287,9 +291,6 @@ public function getConfig(): string {
287291
$this->initialStateService->provideInitialState('core', 'config', $config);
288292
$this->initialStateService->provideInitialState('core', 'capabilities', $capabilities);
289293

290-
// Allow hooks to modify the output values
291-
\OC_Hook::emit('\OCP\Config', 'js', ['array' => &$array]);
292-
293294
$result = '';
294295

295296
// Echo it

0 commit comments

Comments
 (0)