1313use Chamilo \CoreBundle \Entity \Session ;
1414use Chamilo \CoreBundle \Entity \User ;
1515use Chamilo \CoreBundle \Helpers \AccessUrlHelper ;
16+ use Chamilo \CoreBundle \Helpers \ResourceFileHelper ;
1617use Chamilo \CoreBundle \Helpers \UserHelper ;
1718use Chamilo \CoreBundle \Repository \ResourceFileRepository ;
1819use Chamilo \CoreBundle \Repository \ResourceNodeRepository ;
@@ -144,8 +145,7 @@ public function diskSpace(Request $request): Response
144145 public function view (
145146 Request $ request ,
146147 TrackEDownloadsRepository $ trackEDownloadsRepository ,
147- SettingsManager $ settingsManager ,
148- AccessUrlHelper $ accessUrlHelper
148+ ResourceFileHelper $ resourceFileHelper ,
149149 ): Response {
150150 $ id = $ request ->get ('id ' );
151151 $ resourceFileId = $ request ->get ('resourceFileId ' );
@@ -161,26 +161,7 @@ public function view(
161161 $ resourceFile = $ this ->resourceFileRepository ->find ($ resourceFileId );
162162 }
163163
164- if (!$ resourceFile ) {
165- $ accessUrlSpecificFiles = $ settingsManager ->getSetting ('document.access_url_specific_files ' ) && $ accessUrlHelper ->isMultiple ();
166- $ currentUrl = $ accessUrlHelper ->getCurrent ()?->getUrl();
167-
168- $ resourceFiles = $ resourceNode ->getResourceFiles ();
169-
170- if ($ accessUrlSpecificFiles ) {
171- foreach ($ resourceFiles as $ file ) {
172- if ($ file ->getAccessUrl () && $ file ->getAccessUrl ()->getUrl () === $ currentUrl ) {
173- $ resourceFile = $ file ;
174-
175- break ;
176- }
177- }
178- }
179-
180- if (!$ resourceFile ) {
181- $ resourceFile = $ resourceFiles ->filter (fn ($ file ) => null === $ file ->getAccessUrl ())->first ();
182- }
183- }
164+ $ resourceFile ??= $ resourceFileHelper ->resolveResourceFileByAccessUrl ($ resourceNode );
184165
185166 if (!$ resourceFile ) {
186167 throw new FileNotFoundException ($ this ->trans ('Resource file not found for the given resource node ' ));
@@ -254,8 +235,7 @@ public function link(Request $request, RouterInterface $router, CLinkRepository
254235 public function download (
255236 Request $ request ,
256237 TrackEDownloadsRepository $ trackEDownloadsRepository ,
257- SettingsManager $ settingsManager ,
258- AccessUrlHelper $ accessUrlHelper
238+ ResourceFileHelper $ resourceFileHelper ,
259239 ): Response {
260240 $ id = $ request ->get ('id ' );
261241 $ resourceNode = $ this ->getResourceNodeRepository ()->findOneBy (['uuid ' => $ id ]);
@@ -272,23 +252,7 @@ public function download(
272252 $ this ->trans ('Unauthorised access to resource ' )
273253 );
274254
275- $ accessUrlSpecificFiles = $ settingsManager ->getSetting ('document.access_url_specific_files ' ) && $ accessUrlHelper ->isMultiple ();
276- $ currentUrl = $ accessUrlHelper ->getCurrent ()?->getUrl();
277-
278- $ resourceFiles = $ resourceNode ->getResourceFiles ();
279- $ resourceFile = null ;
280-
281- if ($ accessUrlSpecificFiles ) {
282- foreach ($ resourceFiles as $ file ) {
283- if ($ file ->getAccessUrl () && $ file ->getAccessUrl ()->getUrl () === $ currentUrl ) {
284- $ resourceFile = $ file ;
285-
286- break ;
287- }
288- }
289- }
290-
291- $ resourceFile ??= $ resourceFiles ->filter (fn ($ file ) => null === $ file ->getAccessUrl ())->first ();
255+ $ resourceFile = $ resourceFileHelper ->resolveResourceFileByAccessUrl ($ resourceNode );
292256
293257 // If resource node has a file just download it. Don't download the children.
294258 if ($ resourceFile ) {
0 commit comments