From 020fe26257204f6910f817cf91fc24bbdc042e95 Mon Sep 17 00:00:00 2001 From: Vincent Vanwaelscappel Date: Tue, 28 Mar 2023 08:45:50 +0200 Subject: [PATCH] wip #5822 @0.25 --- .../FluidbookPublication/DownloadOperation.php | 13 ++++++++++--- app/Models/FluidbookPublication.php | 2 +- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/app/Http/Controllers/Admin/Operations/FluidbookPublication/DownloadOperation.php b/app/Http/Controllers/Admin/Operations/FluidbookPublication/DownloadOperation.php index 4dfb8784d..d87c8d7cd 100644 --- a/app/Http/Controllers/Admin/Operations/FluidbookPublication/DownloadOperation.php +++ b/app/Http/Controllers/Admin/Operations/FluidbookPublication/DownloadOperation.php @@ -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); diff --git a/app/Models/FluidbookPublication.php b/app/Models/FluidbookPublication.php index 688c7f91c..2c47c7283 100644 --- a/app/Models/FluidbookPublication.php +++ b/app/Models/FluidbookPublication.php @@ -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 = ''; -- 2.39.5