]> _ Git - fluidbook-toolbox.git/commitdiff
wait #6717 @0:05 refacto
authorsoufiane <soufiane@cubedesigners.com>
Thu, 22 Feb 2024 12:40:37 +0000 (13:40 +0100)
committersoufiane <soufiane@cubedesigners.com>
Thu, 22 Feb 2024 12:40:37 +0000 (13:40 +0100)
app/Http/Controllers/Admin/Operations/FluidbookCollection/SettingsExportOperation.php
app/Http/Controllers/Admin/Operations/FluidbookPublication/SettingsExportOperation.php
app/Jobs/FluidbookSettingsExport.php

index 3efb4efcb1a6c0c9d598756c903bf64d5929c272..de5690ab0410ceff3c5e6444215b67b1cd12cb8e 100644 (file)
@@ -12,14 +12,18 @@ trait SettingsExportOperation
 {
     protected function setupSettingsRoutes($segment, $routeName, $controller)
     {
-        Route::match(['get','post'], $segment . '/{id}/download_settings', $controller . '@collectionSettings')->name("download_settings_by_ids");
+        Route::match(['get', 'post'], $segment . '/{id}/download_settings', $controller . '@collectionSettings')->name("download_settings_by_ids");
     }
 
-    protected function collectionSettings($id) {
+    protected function collectionSettings($id)
+    {
+        if (!can('fluidbook-publication:admin')) {
+            abort('403');
+        }
         $userId = backpack_user()->id;
-        $publications = Arr::flatten(FluidbookCollection::where('id',$id)->get('publications')->toArray(), 2);
-        $ids = Arr::join(array_column($publications,'fluidbook'), ',');
-        $file = (new FluidbookSettingsExport($ids,$userId,true))->handle();
+        $publications = Arr::flatten(FluidbookCollection::where('id', $id)->get('publications')->toArray(), 2);
+        $ids = Arr::join(array_column($publications, 'fluidbook'), ',');
+        $file = (new FluidbookSettingsExport($ids, $userId, true))->handle();
         return response()->download($file, 'settings_export.xlsx')->deleteFileAfterSend();
     }
 }
index a6eb20e817a65668c2f60b463a01dc8c288c556d..abe47200267f0d661d162f0b9a4d78d827b165b6 100644 (file)
@@ -10,19 +10,29 @@ trait SettingsExportOperation
 {
     protected function setupSettingsRoutes($segment, $routeName, $controller)
     {
-        Route::match(['get','post'], $segment . '/download_settings/{file}', $controller . '@fluidbookSettings')->withoutMiddleware([CheckIfAdmin::class])->name("download_settings");
+        Route::match(['get', 'post'], $segment . '/download_settings/{file}', $controller . '@fluidbookSettings')->withoutMiddleware([CheckIfAdmin::class])->name("download_settings");
         Route::match(['post'], $segment . '/send_link/{ids}', $controller . '@sendLinkForDownload')->name("send_link");
     }
 
-    protected function fluidbookSettings($file) {
+    protected function fluidbookSettings($file)
+    {
+        if (!can('fluidbook-publication:admin')) {
+            abort('403');
+        }
         $name = "settings_export";
-        $path = "/tmp/cubist".base64_decode($file);
-        if (!file_exists($path)) abort(404);
+        $path = "/tmp/cubist" . base64_decode($file);
+        if (!file_exists($path)) {
+            abort(404);
+        }
         return response()->download($path, $name . '.xlsx');
     }
 
-    protected function sendLinkForDownload($ids) {
+    protected function sendLinkForDownload($ids)
+    {
+        if (!can('fluidbook-publication:admin')) {
+            abort('403');
+        }
         $userId = backpack_user()->id;
-        dispatch_sync(new FluidbookSettingsExport($ids,$userId));
+        dispatch_sync(new FluidbookSettingsExport($ids, $userId));
     }
 }
index fde7ac4b5d801decf9725cb81c42f8c0eb42deb7..b429f02539924162176ae925b041aadc40fedc11 100644 (file)
@@ -35,10 +35,6 @@ class FluidbookSettingsExport extends Base
     {
         $user = User::withoutGlobalScopes()->find($this->userID); //5908
 
-        if(!can('fluidbook-publication:admin')){
-            abort('403');
-        }
-
         //
         $model = FluidbookPublication::whereIn('id', $this->listID);