diff --git a/lib/AppInfo/Application.php b/lib/AppInfo/Application.php index 5d3b44a4f5..54c88d8ef6 100644 --- a/lib/AppInfo/Application.php +++ b/lib/AppInfo/Application.php @@ -16,6 +16,7 @@ use OCA\Richdocuments\Db\WopiMapper; use OCA\Richdocuments\Listener\AddContentSecurityPolicyListener; use OCA\Richdocuments\Listener\AddFeaturePolicyListener; +use OCA\Richdocuments\Listener\AddMissingIndicesListener; use OCA\Richdocuments\Listener\AddSabrePluginListener; use OCA\Richdocuments\Listener\BeforeFetchPreviewListener; use OCA\Richdocuments\Listener\BeforeGetTemplatesListener; @@ -57,6 +58,7 @@ use OCP\BeforeSabrePubliclyLoadedEvent; use OCP\Collaboration\Reference\RenderReferenceEvent; use OCP\Collaboration\Resources\LoadAdditionalScriptsEvent; +use OCP\DB\Events\AddMissingIndicesEvent; use OCP\DirectEditing\RegisterDirectEditorEvent; use OCP\Files\Storage\IStorage; use OCP\Files\Template\BeforeGetTemplatesEvent; @@ -97,6 +99,7 @@ public function register(IRegistrationContext $context): void { $context->registerEventListener(OverwritePublicSharePropertiesEvent::class, OverwritePublicSharePropertiesListener::class); $context->registerEventListener(SabrePluginAddEvent::class, AddSabrePluginListener::class); $context->registerEventListener(BeforeSabrePubliclyLoadedEvent::class, AddSabrePluginListener::class); + $context->registerEventListener(AddMissingIndicesEvent::class, AddMissingIndicesListener::class); $context->registerReferenceProvider(OfficeTargetReferenceProvider::class); $context->registerSensitiveMethods(WopiMapper::class, [ 'getPathForToken', diff --git a/lib/Listener/AddMissingIndicesListener.php b/lib/Listener/AddMissingIndicesListener.php new file mode 100644 index 0000000000..290aa633d6 --- /dev/null +++ b/lib/Listener/AddMissingIndicesListener.php @@ -0,0 +1,35 @@ + + */ +class AddMissingIndicesListener implements IEventListener { + #[\Override] + public function handle(Event $event): void { + if (!($event instanceof AddMissingIndicesEvent)) { + return; + } + + /** + * Added to @see Version2060Date20200302131958 + */ + $event->addMissingIndex( + 'richdocuments_wopi', + 'rd_wopi_expiry_idx', + ['expiry'] + ); + } +} diff --git a/lib/Migration/Version2060Date20200302131958.php b/lib/Migration/Version2060Date20200302131958.php index 070a3731d3..114c95b81d 100644 --- a/lib/Migration/Version2060Date20200302131958.php +++ b/lib/Migration/Version2060Date20200302131958.php @@ -136,6 +136,7 @@ public function changeSchema(IOutput $output, Closure $schemaClosure, array $opt ]); $table->setPrimaryKey(['id']); $table->addUniqueIndex(['token'], 'rd_wopi_token_idx'); + $table->addIndex(['expiry'], 'rd_wopi_expiry_idx'); } if (!$schema->hasTable('richdocuments_direct')) {