]> _ Git - fluidbook-toolbox.git/commitdiff
wip #5822 @0.25
authorVincent Vanwaelscappel <vincent@cubedesigners.com>
Tue, 28 Mar 2023 06:45:50 +0000 (08:45 +0200)
committerVincent Vanwaelscappel <vincent@cubedesigners.com>
Tue, 28 Mar 2023 06:45:50 +0000 (08:45 +0200)
app/Http/Controllers/Admin/Operations/FluidbookPublication/DownloadOperation.php
app/Models/FluidbookPublication.php

index 4dfb8784d4bbe09a2147a050c54a2ed7de3642d1..d87c8d7cddf02d14c228233f3c5c1170194c2559 100644 (file)
@@ -27,7 +27,7 @@ trait DownloadOperation
 
     protected function delivery($id)
     {
-        if (!FluidbookPublication::hasPermission($id,'read')) {
+        if (!FluidbookPublication::hasPermission($id, 'read')) {
             abort(401);
         }
     }
@@ -57,14 +57,21 @@ trait DownloadOperation
         if (!in_array($action, ['download', 'install', 'scormcloud'])) {
             abort(404, __('Cette action n\'est pas disponible'));
         }
-        if (!FluidbookPublication::hasPermission($id,'read')) {
+        if (!FluidbookPublication::hasPermission($id, 'read')) {
             abort(401, __('Cette publication ne peut pas être téléchargée'));
         }
+        /** @var FluidbookPublication $fluidbook */
         $fluidbook = FluidbookPublication::find($id);
         if (!$fluidbook->{'download_' . $version} && !can('fluidbook-publication:download:all-versions')) {
             abort(401, __('Cette version n\'est pas disponible au téléchargement'));
         }
 
+        // Mark the fluidbook as downloaded when status is ready and user is not an admin
+        if ($fluidbook->status == 1 && !can('fluidbook-publication:admin')) {
+            $fluidbook->status = 2;
+            $fluidbook->save();
+        }
+
         Download::dispatch($fluidbook, $version, $action, backpack_user())->onQueue('download');
         Alert::add('success', __('La compilation a été placée en file d\'attente. Vous recevrez un email lorsqu\'elle sera terminée.'))->flash();
         return redirect(backpack_url('fluidbook-publication'));
@@ -72,7 +79,7 @@ trait DownloadOperation
 
     protected function packageScorm($id, $action, $scormVersion)
     {
-        if (!FluidbookPublication::hasPermission($id,'read')) {
+        if (!FluidbookPublication::hasPermission($id, 'read')) {
             abort(401, __('Cette publication ne peut pas être téléchargée'));
         }
         $fluidbook = FluidbookPublication::find($id);
index 688c7f91cf59903eb65d3730ee7d754a7c3553e0..2c47c7283939409a6a8369f3f9eed81d2d700224 100644 (file)
@@ -244,7 +244,7 @@ class FluidbookPublication extends ToolboxSettingsModel
             $owner = \App\Models\User::find(1);
         }
         /** @var Company $company */
-        $company = Company::find($owner->company);
+        $company = Company::withoutGlobalScopes()->find($owner->company);
 
         $this->admin = $company->admin;
         $this->super_admin = '';