From: Vincent Vanwaelscappel Date: Fri, 24 Mar 2023 17:26:47 +0000 (+0100) Subject: fix #5397 @1.5 X-Git-Url: http://git.cubedesigners.com/?a=commitdiff_plain;h=4046abf09537a7fed50d37d982849737de3892ce;p=fluidbook-toolbox.git fix #5397 @1.5 --- diff --git a/app/Http/Controllers/Admin/Operations/FluidbookPublication/LinksOperation.php b/app/Http/Controllers/Admin/Operations/FluidbookPublication/LinksOperation.php index fb44df5fe..6434090b2 100644 --- a/app/Http/Controllers/Admin/Operations/FluidbookPublication/LinksOperation.php +++ b/app/Http/Controllers/Admin/Operations/FluidbookPublication/LinksOperation.php @@ -241,6 +241,8 @@ trait LinksOperation protected function setupLinksDefaults() { + $this->crud->allowAccess('update'); + $this->crud->addButton('line', 'edit', 'view', 'crud::buttons.fluidbook_publication.edit', 'end'); $this->crud->operation(['list', 'show'], function () { $this->crud->removeButton('update'); diff --git a/app/Http/Controllers/Admin/Operations/FluidbookPublication/PreviewOperation.php b/app/Http/Controllers/Admin/Operations/FluidbookPublication/PreviewOperation.php index cd643b6a8..6f426e495 100644 --- a/app/Http/Controllers/Admin/Operations/FluidbookPublication/PreviewOperation.php +++ b/app/Http/Controllers/Admin/Operations/FluidbookPublication/PreviewOperation.php @@ -210,7 +210,7 @@ html,body{height:100%;cursor: wait;font-family: "Open Sans", Arial;background-co if ($forceThemeData) { $theme = FluidbookTheme::fromArray(json_decode($forceThemeData, true), (count($ee) == 2 ? $ee[1] : null)); } else if (count($ee) == 2) { - $theme = FluidbookTheme::find($ee[1]); + $theme = FluidbookTheme::withoutGlobalScopes()->find($ee[1]); $id = $ee[0]; } diff --git a/app/Models/FluidbookPublication.php b/app/Models/FluidbookPublication.php index 8f68c0a1b..688c7f91c 100644 --- a/app/Models/FluidbookPublication.php +++ b/app/Models/FluidbookPublication.php @@ -56,7 +56,7 @@ class FluidbookPublication extends ToolboxSettingsModel protected static $_docs = []; - protected $_operations = [CreateOperation::class, PreviewOperation::class, LinksOperation::class, CompositionOperation::class, StatsOperation::class, DownloadOperation::class, CloneOperation::class, DeletefbOperation::class, EditOperation::class,ChangeownerOperation::class]; + protected $_operations = [CreateOperation::class, PreviewOperation::class, LinksOperation::class, CompositionOperation::class, StatsOperation::class, DownloadOperation::class, CloneOperation::class, DeletefbOperation::class, EditOperation::class, ChangeownerOperation::class]; protected $casts = ['composition' => 'array']; @@ -267,7 +267,7 @@ class FluidbookPublication extends ToolboxSettingsModel */ public function getTheme() { - return FluidbookTheme::find($this->theme); + return FluidbookTheme::withoutGlobalScopes()->find($this->theme); } /** @@ -285,7 +285,7 @@ class FluidbookPublication extends ToolboxSettingsModel protected static function _getDocument($documentID) { if (!isset(self::$_docs[$documentID])) { - self::$_docs[$documentID] = FluidbookDocument::find($documentID); + self::$_docs[$documentID] = FluidbookDocument::withoutGlobalScopes()->find($documentID); } return self::$_docs[$documentID]; } @@ -343,13 +343,13 @@ class FluidbookPublication extends ToolboxSettingsModel public function addWidgets() { - Widget::add([ - 'type' => 'alert', - 'class' => 'alert alert-danger mb-2', - 'heading' => __('En cours de développement'), - 'content' => __('Les données et interfaces présentées dans cette section ne sont pas synchronisées avec les données en production. Toutes les modifications effectuées ici peuvent dont disparaître à tout moment.') . '

' . __('Retour en production') . '

', - 'close_button' => false, // show close button or not - ]); +// Widget::add([ +// 'type' => 'alert', +// 'class' => 'alert alert-danger mb-2', +// 'heading' => __('En cours de développement'), +// 'content' => __('Les données et interfaces présentées dans cette section ne sont pas synchronisées avec les données en production. Toutes les modifications effectuées ici peuvent dont disparaître à tout moment.') . '

' . __('Retour en production') . '

', +// 'close_button' => false, // show close button or not +// ]); } @@ -539,6 +539,67 @@ class FluidbookPublication extends ToolboxSettingsModel return true; } + public function allowsUpdate() + { + if (!can('fluidbook-publication:write')) { + return false; + } + if ($this->id < WorkshopMigration::WS3_BOOK_ID) { + return false; + } + return true; + } + + public function allowsEdit() + { + return $this->allowsUpdate(); + } + + + public function allowsClone() + { + return $this->allowsCreate(); + } + + public function allowsPreview() + { + if (can('fluidbook-publication:write')) { + return true; + } + if (!can('fluidbook-publication:read')) { + return false; + } + if ($this->status == 0) { + return false; + } + return true; + } + + public function allowsDownload() + { + if ($this->id < WorkshopMigration::WS3_BOOK_ID) { + return false; + } + if (can('fluidbook-publication:write')) { + return true; + } + if (!can('fluidbook-publication:read')) { + return false; + } + if ($this->status == 0) { + return false; + } + return true; + } + + public function allowsCreate() + { + if (!can('fluidbook-publication:write')) { + return false; + } + return true; + } + protected function _baseReplicate(array $except = null) { $current = $this; diff --git a/resources/views/vendor/backpack/crud/buttons/fluidbook_publication/clone.blade.php b/resources/views/vendor/backpack/crud/buttons/fluidbook_publication/clone.blade.php index f80cff448..3c1336eba 100644 --- a/resources/views/vendor/backpack/crud/buttons/fluidbook_publication/clone.blade.php +++ b/resources/views/vendor/backpack/crud/buttons/fluidbook_publication/clone.blade.php @@ -14,11 +14,12 @@ ]; @endphp - - {{__('Cloner')}} +@if($entry->allowsClone()) + {{__('Cloner')}} +@endif diff --git a/resources/views/vendor/backpack/crud/buttons/fluidbook_publication/download.blade.php b/resources/views/vendor/backpack/crud/buttons/fluidbook_publication/download.blade.php index c7f37fbeb..02da15523 100644 --- a/resources/views/vendor/backpack/crud/buttons/fluidbook_publication/download.blade.php +++ b/resources/views/vendor/backpack/crud/buttons/fluidbook_publication/download.blade.php @@ -5,14 +5,17 @@ $servers=\App\Models\FluidbookExternalInstallServer::getAllServers(); $base=$crud->route.'/'.$entry->id; $basePackage=$base.'/package'; - $actions=[ - 'delivery'=> - [ - 'label'=>__('Page de téléchargement'), - 'url'=>$base.'/delivery', - ], - ]; - $actions['sep_download']='---------'; + + $actions=[]; + + + +// $actions['delivery']=[ +// 'label'=>__('Page de téléchargement'), +// 'url'=>$base.'/delivery', +// ]; +// +// $actions['sep_download']='---------'; foreach (\App\Models\FluidbookPublication::getDownloadVersions() as $k=>$v) { if($k==='scorm'){ continue; @@ -57,10 +60,12 @@ @endphp - {{__('Télécharger')}} +@if($entry->allowsDownload()) + {{__('Télécharger')}} +@endif diff --git a/resources/views/vendor/backpack/crud/buttons/fluidbook_publication/edit.blade.php b/resources/views/vendor/backpack/crud/buttons/fluidbook_publication/edit.blade.php index 107242898..6ca76a279 100644 --- a/resources/views/vendor/backpack/crud/buttons/fluidbook_publication/edit.blade.php +++ b/resources/views/vendor/backpack/crud/buttons/fluidbook_publication/edit.blade.php @@ -14,7 +14,7 @@ ] ]; @endphp -@if($entry->getKey()>=\App\Console\Commands\WorkshopMigration::WS3_BOOK_ID) +@if($entry->allowsEdit() && $entry->getKey()>=\App\Console\Commands\WorkshopMigration::WS3_BOOK_ID) 1) - data-context-actions="{{json_encode($actions)}}" +@if($entry->allowsPreview()) + 1) + data-context-actions="{{json_encode($actions)}}" data-context-route="{{$crud->route}}/$id/edit/$action" data-context-id="{{$entry->getKey()}}" - @endif - data-toggle="tooltip" - title="{{__('Voir le fluidbook')}}"> {{__('Voir')}} - + @endif + data-toggle="tooltip" + title="{{__('Voir le fluidbook')}}"> {{__('Voir')}} + +@endif