@@ -78,46 +78,45 @@ function (\Sabre\DAV\Server $server) use (
7878 $ linkCheckPlugin ,
7979 $ filesDropPlugin
8080 ) {
81- $ isAjax = in_array ('XMLHttpRequest ' , explode (', ' , $ _SERVER ['HTTP_X_REQUESTED_WITH ' ] ?? '' ));
82- /** @var FederatedShareProvider $shareProvider */
83- $ federatedShareProvider = Server::get (FederatedShareProvider::class);
84- if ($ federatedShareProvider ->isOutgoingServer2serverShareEnabled () === false && !$ isAjax ) {
85- // this is what is thrown when trying to access a non-existing share
86- throw new \Sabre \DAV \Exception \NotAuthenticated ();
87- }
88-
89- $ share = $ authBackend ->getShare ();
90- $ owner = $ share ->getShareOwner ();
91- $ isReadable = $ share ->getPermissions () & Constants::PERMISSION_READ ;
92- $ fileId = $ share ->getNodeId ();
93-
94- // FIXME: should not add storage wrappers outside of preSetup, need to find a better way
95- $ previousLog = Filesystem::logWarningWhenAddingStorageWrapper (false );
96- Filesystem::addStorageWrapper ('sharePermissions ' , function ($ mountPoint , $ storage ) use ($ share ) {
97- return new PermissionsMask (['storage ' => $ storage , 'mask ' => $ share ->getPermissions () | Constants::PERMISSION_SHARE ]);
81+ $ isAjax = in_array ('XMLHttpRequest ' , explode (', ' , $ _SERVER ['HTTP_X_REQUESTED_WITH ' ] ?? '' ));
82+ /** @var FederatedShareProvider $shareProvider */
83+ $ federatedShareProvider = Server::get (FederatedShareProvider::class);
84+ if ($ federatedShareProvider ->isOutgoingServer2serverShareEnabled () === false && !$ isAjax ) {
85+ // this is what is thrown when trying to access a non-existing share
86+ throw new \Sabre \DAV \Exception \NotAuthenticated ();
87+ }
88+
89+ $ share = $ authBackend ->getShare ();
90+ $ owner = $ share ->getShareOwner ();
91+ $ isReadable = $ share ->getPermissions () & Constants::PERMISSION_READ ;
92+ $ fileId = $ share ->getNodeId ();
93+
94+ // FIXME: should not add storage wrappers outside of preSetup, need to find a better way
95+ $ previousLog = Filesystem::logWarningWhenAddingStorageWrapper (false );
96+ Filesystem::addStorageWrapper ('sharePermissions ' , function ($ mountPoint , $ storage ) use ($ share ) {
97+ return new PermissionsMask (['storage ' => $ storage , 'mask ' => $ share ->getPermissions () | Constants::PERMISSION_SHARE ]);
98+ });
99+ Filesystem::addStorageWrapper ('shareOwner ' , function ($ mountPoint , $ storage ) use ($ share ) {
100+ return new PublicOwnerWrapper (['storage ' => $ storage , 'owner ' => $ share ->getShareOwner ()]);
101+ });
102+ Filesystem::logWarningWhenAddingStorageWrapper ($ previousLog );
103+
104+ $ rootFolder = Server::get (IRootFolder::class);
105+ $ userFolder = $ rootFolder ->getUserFolder ($ owner );
106+ $ node = $ userFolder ->getFirstNodeById ($ fileId );
107+ if (!$ node ) {
108+ throw new \Sabre \DAV \Exception \NotFound ();
109+ }
110+ $ linkCheckPlugin ->setFileInfo ($ node );
111+
112+ // If not readable (files_drop) enable the filesdrop plugin
113+ if (!$ isReadable ) {
114+ $ filesDropPlugin ->enable ();
115+ }
116+ $ filesDropPlugin ->setShare ($ share );
117+
118+ return new View ($ node ->getPath ());
98119 });
99- Filesystem::addStorageWrapper ('shareOwner ' , function ($ mountPoint , $ storage ) use ($ share ) {
100- return new PublicOwnerWrapper (['storage ' => $ storage , 'owner ' => $ share ->getShareOwner ()]);
101- });
102- Filesystem::logWarningWhenAddingStorageWrapper ($ previousLog );
103-
104- $ rootFolder = Server::get (IRootFolder::class);
105- $ userFolder = $ rootFolder ->getUserFolder ($ owner );
106- $ node = $ userFolder ->getFirstNodeById ($ fileId );
107- if (!$ node ) {
108- throw new \Sabre \DAV \Exception \NotFound ();
109- }
110- $ linkCheckPlugin ->setFileInfo ($ node );
111-
112- // If not readable (files_drop) enable the filesdrop plugin
113- if (!$ isReadable ) {
114- $ filesDropPlugin ->enable ();
115- }
116- $ filesDropPlugin ->setShare ($ share );
117-
118- $ view = new View ($ node ->getPath ());
119- return $ view ;
120- });
121120
122121$ server ->addPlugin ($ linkCheckPlugin );
123122$ server ->addPlugin ($ filesDropPlugin );
0 commit comments