1010
1111namespace OCA \Richdocuments \Listener ;
1212
13- use OCA \Files_Sharing \ SharedStorage ;
13+ use OCA \Richdocuments \ Helper ;
1414use OCA \Richdocuments \PermissionManager ;
1515use OCP \EventDispatcher \Event ;
1616use OCP \EventDispatcher \IEventListener ;
2020use OCP \Preview \BeforePreviewFetchedEvent ;
2121use OCP \Share \Exceptions \ShareNotFound ;
2222use OCP \Share \IManager ;
23- use OCP \Share \IShare ;
2423
2524/** @template-implements IEventListener<Event|BeforePreviewFetchedEvent> */
2625class BeforeFetchPreviewListener implements IEventListener {
2726 private PermissionManager $ permissionManager ;
2827 private IUserSession $ userSession ;
2928 private IRequest $ request ;
3029 private IManager $ shareManager ;
30+ private Helper $ helper ;
3131
32- public function __construct (PermissionManager $ permissionManager , IUserSession $ userSession , IRequest $ request , IManager $ shareManager ) {
32+ public function __construct (PermissionManager $ permissionManager , IUserSession $ userSession , IRequest $ request , IManager $ shareManager, Helper $ helper ) {
3333 $ this ->permissionManager = $ permissionManager ;
3434 $ this ->userSession = $ userSession ;
3535 $ this ->request = $ request ;
3636 $ this ->shareManager = $ shareManager ;
37+ $ this ->helper = $ helper ;
3738 }
3839
3940 public function handle (Event $ event ): void {
@@ -42,21 +43,13 @@ public function handle(Event $event): void {
4243 }
4344 $ shareToken = $ this ->request ->getParam ('token ' );
4445
45- $ share = null ;
46-
47- // Get share for internal shares
48- $ storage = $ event ->getNode ()->getStorage ();
49- if (!$ shareToken && $ storage ->instanceOfStorage (SharedStorage::class)) {
50- if (method_exists (IShare::class, 'getAttributes ' )) {
51- /** @var SharedStorage $storage */
52- $ share = $ storage ->getShare ();
53- }
54- }
55-
56- // Get different share for public previews as the share from the node is only set for mounted shares
5746 try {
58- $ share = $ shareToken ? $ this ->shareManager ->getShareByToken ($ shareToken ) : $ share ;
59- } catch (ShareNotFound $ e ) {
47+ $ share = $ shareToken ?
48+ // Get different share for public previews as the share from the node is only set for mounted shares
49+ $ this ->shareManager ->getShareByToken ($ shareToken )
50+ // Get share for internal shares
51+ : $ this ->helper ->getShareFromNode ($ event ->getNode ());
52+ } catch (ShareNotFound ) {
6053 }
6154
6255 $ userId = $ this ->userSession ->getUser () ? $ this ->userSession ->getUser ()->getUID () : null ;
0 commit comments