]> _ Git - fluidbook-toolbox.git/commitdiff
wait #6717 @1:30 refacto
authorsoufiane <soufiane@cubedesigners.com>
Wed, 21 Feb 2024 17:04:20 +0000 (18:04 +0100)
committersoufiane <soufiane@cubedesigners.com>
Wed, 21 Feb 2024 17:04:20 +0000 (18:04 +0100)
app/Http/Controllers/Admin/FluidbookPublicationCrudController.php
app/Http/Controllers/Admin/Operations/FluidbookCollection/DownloadOperation.php
app/Http/Controllers/Admin/Operations/FluidbookCollection/SettingsExportOperation.php [new file with mode: 0644]
app/Http/Controllers/Admin/Operations/FluidbookPublication/DownloadOperation.php
app/Http/Controllers/Admin/Operations/FluidbookPublication/SettingsExportOperation.php [new file with mode: 0644]
app/Jobs/FluidbookSettingsExport.php
app/Models/FluidbookCollection.php
app/Models/FluidbookPublication.php

index c33f41cf5023246868ee73b7ae2dc0a7ca353d3d..57284f2f1a9b1bcc61a543bc743421361dea60bd 100644 (file)
@@ -24,7 +24,7 @@ class FluidbookPublicationCrudController extends \Cubist\Backpack\Magic\Controll
        use \App\Http\Controllers\Admin\Operations\FluidbookPublication\Services\GetPageFromWebsiteOperation;
        use \App\Http\Controllers\Admin\Operations\FluidbookPublication\Services\BastideOperation;
        use \App\Http\Controllers\Admin\Operations\FluidbookPublication\YSLOperation;
-       
+
 
 
     /*
index 0fe357b9c69b49d318df1ba26f186bcbdc013d3b..6037ec5586dd07641eea49a9a4ae5f9c65230754 100644 (file)
@@ -21,17 +21,9 @@ trait DownloadOperation
 
     protected function setupDownloadRoutes($segment, $routeName, $controller)
     {
-        Route::match(['get','post'], $segment . '/{id}/download_settings', $controller . '@downloadSettingsByIds')->name("download_settings_by_ids");
+        //
     }
 
     protected $button = 'fluidbook_collection';
     protected $downloadJob = FluidbookCollectionDownload::class;
-
-    protected function downloadSettingsByIds($id) {
-        $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();
-        return response()->download($file, 'settings_export.xlsx')->deleteFileAfterSend();
-    }
 }
diff --git a/app/Http/Controllers/Admin/Operations/FluidbookCollection/SettingsExportOperation.php b/app/Http/Controllers/Admin/Operations/FluidbookCollection/SettingsExportOperation.php
new file mode 100644 (file)
index 0000000..3efb4ef
--- /dev/null
@@ -0,0 +1,25 @@
+<?php
+
+namespace App\Http\Controllers\Admin\Operations\FluidbookCollection;
+
+use App\Http\Middleware\CheckIfAdmin;
+use App\Jobs\FluidbookSettingsExport;
+use App\Models\FluidbookCollection;
+use Illuminate\Support\Arr;
+use Illuminate\Support\Facades\Route;
+
+trait SettingsExportOperation
+{
+    protected function setupSettingsRoutes($segment, $routeName, $controller)
+    {
+        Route::match(['get','post'], $segment . '/{id}/download_settings', $controller . '@collectionSettings')->name("download_settings_by_ids");
+    }
+
+    protected function collectionSettings($id) {
+        $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();
+        return response()->download($file, 'settings_export.xlsx')->deleteFileAfterSend();
+    }
+}
index 7c017bcd247a52468229f82da4e80f99a8eb71cf..92e576d1417b6112f903ee149e350618ed9ee379 100644 (file)
@@ -22,8 +22,6 @@ trait DownloadOperation
         Route::match(['get'], $segment . '/{id}/package/{action}/{version}', $controller . '@package');
         Route::match(['get'], $segment . '/{id}/package/{action}/scorm/{scormversion}', $controller . '@packageScorm');
         Route::match(['get'], $segment . '/{id}_{hash}/download/{file}', $controller . '@download')->withoutMiddleware([CheckIfAdmin::class]);
-        Route::match(['get','post'], $segment . '/download_settings/{file}', $controller . '@downloadSettings')->withoutMiddleware([CheckIfAdmin::class])->name("download_settings");
-        Route::match(['post'], $segment . '/send_link/{ids}', $controller . '@sendLinkForDownload')->middleware([CheckIfAdmin::class])->name("send_link");
     }
 
     protected function setupDownloadDefaults()
@@ -129,16 +127,4 @@ trait DownloadOperation
         Alert::add('success', __('La compilation a été placée en file d\'attente. Vous recevrez un email lorsqu\'elle sera terminée.'))->flash();
         return back();
     }
-
-    protected function downloadSettings($file) {
-        $name = "settings_export";
-        $path = "/tmp/cubist".base64_decode($file);
-        if (!file_exists($path)) abort(404);
-        return response()->download($path, $name . '.xlsx');
-    }
-
-    protected function sendLinkForDownload($ids) {
-        $userId = backpack_user()->id;
-        dispatch_sync(new FluidbookSettingsExport($ids,$userId));
-    }
 }
diff --git a/app/Http/Controllers/Admin/Operations/FluidbookPublication/SettingsExportOperation.php b/app/Http/Controllers/Admin/Operations/FluidbookPublication/SettingsExportOperation.php
new file mode 100644 (file)
index 0000000..a6eb20e
--- /dev/null
@@ -0,0 +1,28 @@
+<?php
+
+namespace App\Http\Controllers\Admin\Operations\FluidbookPublication;
+
+use App\Http\Middleware\CheckIfAdmin;
+use App\Jobs\FluidbookSettingsExport;
+use Illuminate\Support\Facades\Route;
+
+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(['post'], $segment . '/send_link/{ids}', $controller . '@sendLinkForDownload')->name("send_link");
+    }
+
+    protected function fluidbookSettings($file) {
+        $name = "settings_export";
+        $path = "/tmp/cubist".base64_decode($file);
+        if (!file_exists($path)) abort(404);
+        return response()->download($path, $name . '.xlsx');
+    }
+
+    protected function sendLinkForDownload($ids) {
+        $userId = backpack_user()->id;
+        dispatch_sync(new FluidbookSettingsExport($ids,$userId));
+    }
+}
index b429f02539924162176ae925b041aadc40fedc11..fde7ac4b5d801decf9725cb81c42f8c0eb42deb7 100644 (file)
@@ -35,6 +35,10 @@ class FluidbookSettingsExport extends Base
     {
         $user = User::withoutGlobalScopes()->find($this->userID); //5908
 
+        if(!can('fluidbook-publication:admin')){
+            abort('403');
+        }
+
         //
         $model = FluidbookPublication::whereIn('id', $this->listID);
 
index 5f8fa043e6f792012ffbe9b099c99d42baef0747..170d01bc5c1ca0b5faa02af30b2813cc29657a5c 100644 (file)
@@ -8,6 +8,7 @@ use App\Http\Controllers\Admin\Operations\ChangeownerOperation;
 use App\Http\Controllers\Admin\Operations\ChangestatusOperation;
 use App\Http\Controllers\Admin\Operations\FluidbookCollection\DownloadOperation;
 use App\Http\Controllers\Admin\Operations\FluidbookCollection\PreviewOperation;
+use App\Http\Controllers\Admin\Operations\FluidbookCollection\SettingsExportOperation;
 use App\Models\Base\ToolboxDownloadable;
 use App\Jobs\RefreshUsersTree;
 use App\Models\Base\ToolboxStatusModel;
@@ -42,7 +43,8 @@ class FluidbookCollection extends ToolboxStatusModel
         PreviewOperation::class,
         DownloadOperation::class,
         ChangeownerOperation::class,
-        ChangestatusOperation::class
+        ChangestatusOperation::class,
+        SettingsExportOperation::class
     ];
 
     protected static $_permissionBase = 'fluidbook-collection';
index 17e3fe9a94729a326e87dafbf37b6e8231e8b88a..3953890bd5893af1b15c4fefad2cc8ab037d26fb 100644 (file)
@@ -35,6 +35,7 @@ use App\Http\Controllers\Admin\Operations\FluidbookPublication\StatsOperation;
 use App\Http\Controllers\Admin\Operations\FluidbookPublication\UpgradeOperation;
 use App\Http\Controllers\Admin\Operations\FluidbookPublication\YSLOperation;
 use App\Http\Controllers\Admin\Operations\InvoiceOperation;
+use App\Http\Controllers\Admin\Operations\FluidbookPublication\SettingsExportOperation;
 use App\Jobs\FluidbookImagesPreprocess;
 use App\Jobs\FluidbookSocialImage;
 use App\Jobs\GenerateDeliveryThumbnailsPreview;
@@ -104,6 +105,7 @@ class FluidbookPublication extends ToolboxStatusModel
         ChangeownerOperation::class,
         ChangestatusOperation::class,
         InvoiceOperation::class,
+        SettingsExportOperation::class,
         // Services
         SocialImageOperation::class,
         ExportPdfOperation::class,