fix: Use typed share event

Signed-off-by: Julius Härtl <jus@bitgrid.net>
This commit is contained in:
Julius Härtl
2023-08-07 17:37:57 +02:00
parent 1d781323f6
commit 2ccfb9beee

View File

@@ -30,9 +30,9 @@ use OC\Files\Filesystem;
use OCA\Deck\Service\ConfigService; use OCA\Deck\Service\ConfigService;
use OCP\EventDispatcher\IEventDispatcher; use OCP\EventDispatcher\IEventDispatcher;
use OCP\Server; use OCP\Server;
use OCP\Share\Events\BeforeShareCreatedEvent;
use OCP\Share\Events\VerifyMountPointEvent; use OCP\Share\Events\VerifyMountPointEvent;
use OCP\Share\IShare; use OCP\Share\IShare;
use Symfony\Component\EventDispatcher\GenericEvent;
class Listener { class Listener {
private ConfigService $configService; private ConfigService $configService;
@@ -45,11 +45,11 @@ class Listener {
/** /**
* @psalm-suppress UndefinedClass * @psalm-suppress UndefinedClass
*/ */
$dispatcher->addListener('OCP\Share::preShare', [self::class, 'listenPreShare'], 1000); $dispatcher->addListener(BeforeShareCreatedEvent::class, [self::class, 'listenPreShare'], 1000);
$dispatcher->addListener(VerifyMountPointEvent::class, [self::class, 'listenVerifyMountPointEvent'], 1000); $dispatcher->addListener(VerifyMountPointEvent::class, [self::class, 'listenVerifyMountPointEvent'], 1000);
} }
public static function listenPreShare(GenericEvent $event): void { public static function listenPreShare(BeforeShareCreatedEvent $event): void {
/** @var self $listener */ /** @var self $listener */
$listener = Server::get(self::class); $listener = Server::get(self::class);
$listener->overwriteShareTarget($event); $listener->overwriteShareTarget($event);
@@ -61,9 +61,8 @@ class Listener {
$listener->overwriteMountPoint($event); $listener->overwriteMountPoint($event);
} }
public function overwriteShareTarget(GenericEvent $event): void { public function overwriteShareTarget(BeforeShareCreatedEvent $event): void {
/** @var IShare $share */ $share = $event->getShare();
$share = $event->getSubject();
if ($share->getShareType() !== IShare::TYPE_DECK if ($share->getShareType() !== IShare::TYPE_DECK
&& $share->getShareType() !== DeckShareProvider::SHARE_TYPE_DECK_USER) { && $share->getShareType() !== DeckShareProvider::SHARE_TYPE_DECK_USER) {