]> _ Git - fluidbook-toolbox.git/commitdiff
wip #6108 @0.5
authorVincent Vanwaelscappel <vincent@cubedesigners.com>
Fri, 21 Jul 2023 18:10:02 +0000 (20:10 +0200)
committerVincent Vanwaelscappel <vincent@cubedesigners.com>
Fri, 21 Jul 2023 18:10:02 +0000 (20:10 +0200)
.docker/dev/docker-compose.yml
.docker/docker-compose.yml
.env.dev
app/Http/Controllers/Admin/StorageController.php [new file with mode: 0644]
app/Models/QuizTheme.php
config/cubist.php [new file with mode: 0644]
routes/backpack/custom.php
routes/web.php

index b9571cfc0ceca97a5e5537667b672a6419e499f8..8162b791f30c842012e0a2a3d7737a52d5f37ef7 100644 (file)
@@ -16,7 +16,6 @@ services:
       - '/data/extranet/:/data/extranet/'
       - '/mnt/:/mnt/'
       - '/home/extranet/share/:/application/share/'
-      - '/data/toolbox/dev/storage/app/public/:/application/public/storage/'
       - '/data/toolbox/dev/storage/:/application/storage/'
       - '/data/extranet/ftp/:/application/ftp/'
       - '/mnt/sshfs/godzilla/data/fluidbook/docs/:/application/protected/fluidbookpublication/docs/'
@@ -85,7 +84,6 @@ services:
       - '/data/extranet/:/data/extranet/'
       - '/mnt/:/mnt/'
       - '/home/extranet/share/:/application/share/'
-      - '/data/toolbox/dev/storage/app/public/:/application/public/storage/'
       - '/data/toolbox/dev/storage/:/application/storage/'
       - '/data/extranet/ftp/:/application/ftp/'
       - '/mnt/sshfs/godzilla/data/fluidbook/docs/:/application/protected/fluidbookpublication/docs/'
index 7b376532ece359700c1d9fd3d6f45aba463d941c..c82ac6eaf166fbdcc4a92536475baaa1bc42ee82 100644 (file)
@@ -16,7 +16,6 @@ services:
       - '/data/extranet/:/data/extranet/'
       - '/mnt/:/mnt/'
       - '/home/extranet/share/:/application/share/'
-      - '/data/toolbox/storage/app/public/:/application/public/storage/'
       - '/data/toolbox/storage/:/application/storage/'
       - '/data/extranet/ftp/:/application/ftp/'
       - '/mnt/sshfs/godzilla/data/fluidbook/docs/:/application/protected/fluidbookpublication/docs/'
@@ -83,7 +82,6 @@ services:
       - '/data/extranet/:/data/extranet/'
       - '/mnt/:/mnt/'
       - '/home/extranet/share/:/application/share/'
-      - '/data/toolbox/storage/app/public/:/application/public/storage/'
       - '/data/toolbox/storage/:/application/storage/'
       - '/data/extranet/ftp/:/application/ftp/'
       - '/mnt/sshfs/godzilla/data/fluidbook/docs/:/application/protected/fluidbookpublication/docs/'
index ed672e6c54825553d93a14a219538dd490ee174f..edb00731f9ed31227408e9ed6025dcd71e0efe10 100644 (file)
--- a/.env.dev
+++ b/.env.dev
@@ -7,7 +7,6 @@ DEBUGBAR_ENABLED=true
 APP_URL=https://dev.toolbox.fluidbook.com
 HEADER_COLOR="#df4759"
 
-
 LOG_CHANNEL=stack
 APP_LOG=daily
 
diff --git a/app/Http/Controllers/Admin/StorageController.php b/app/Http/Controllers/Admin/StorageController.php
new file mode 100644 (file)
index 0000000..3ebdc02
--- /dev/null
@@ -0,0 +1,30 @@
+<?php
+
+namespace App\Http\Controllers\Admin;
+
+use App\Http\Controllers\Controller;
+use Cubist\Backpack\Http\Controllers\Base\XSendFileController;
+use Cubist\Backpack\Magic\Models\CubistMagicAbstractModel;
+use Spatie\MediaLibrary\MediaCollections\Models\Media;
+
+class StorageController extends Controller
+{
+    public function storage($path)
+    {
+        $p = explode('/', trim($path, '/'));
+        $mediaId = $p[0];
+        /** @var Media $media */
+        $media = Media::withoutGlobalScopes()->find($mediaId);
+
+        $model = $media->getAttribute('model');
+        $instanceId = $media->getAttribute('model_id');
+
+        /** @var CubistMagicAbstractModel $instance */
+        $instance = $model::withoutGlobalScopes()->find($instanceId);
+        if (!$instance->canView(backpack_user())) {
+            abort(404);
+        }
+        $p = storage_path('app/public/') . $path;
+        return XSendFileController::sendfile($p);
+    }
+}
index 425f332cc9f7f2bb7b781b81d4636da9d78cc473..8a7d803aeb1e331d500a51f25cb7a6fd675cd246 100644 (file)
@@ -127,7 +127,7 @@ class QuizTheme extends ToolboxModel
 
     protected function _outro()
     {
-        $this->addField('sectionStandard', FormSection::class, __('Conclusion'));
+        $this->addField('sectionOutro', FormSection::class, __('Conclusion'));
         $this->addField('outroColor', Color::class, __('Couleur et transparence du bloc'), ['hint' => __('Par défaut, la couleur neutre du thème'), 'allows_empty' => true]);
         $this->addField('', FormSeparator::class, '');
         $this->addField('outroCustom', Checkbox::class, __('Définir une forme personnalisée'));
diff --git a/config/cubist.php b/config/cubist.php
new file mode 100644 (file)
index 0000000..49bb2a1
--- /dev/null
@@ -0,0 +1,3 @@
+<?php
+return [
+    'storage_controller' => \App\Http\Controllers\Admin\StorageController::class];
index 36d28313e73bbd6e795d1112b5b9ced4b81d29be..e1adae2769488ee5200ccb76bad954925b40d01d 100644 (file)
@@ -7,6 +7,7 @@ Route::group([
      Route::crud('elearning-media', 'ElearningMediaCrudController');
      Route::crud('toolbox-translate', 'ToolboxTranslateCrudController');
      Route::crud('quiztranslation', 'QuiztranslationCrudController');
+     Route::crud('quiz-theme', 'QuizThemeCrudController');
      Route::crud('team-emails', 'TeamEmailsCrudController');
      Route::crud('fluidbook-quote', 'FluidbookQuoteCrudController');
      Route::crud('locale', 'LocaleCrudController');
@@ -18,6 +19,8 @@ Route::group([
      Route::crud('settings', 'SettingsCrudController');
      Route::crud('team-leave', 'TeamLeaveCrudController');
      Route::crud('team-overtime', 'TeamOvertimeCrudController');
+     Route::crud('fluidbook-external-install-server', 'FluidbookExternalInstallServerCrudController');
+     Route::crud('file', 'FileCrudController');
      Route::crud('fluidbook-collection', 'FluidbookCollectionCrudController');
      Route::crud('fluidbook-document', 'FluidbookDocumentCrudController');
      Route::crud('fluidbook-publication', 'FluidbookPublicationCrudController');
@@ -27,6 +30,5 @@ Route::group([
      Route::crud('company', 'CompanyCrudController');
      Route::crud('signature', 'SignatureCrudController');
      Route::crud('fluidbook-iconset', 'FluidbookIconsetCrudController');
-     Route::crud('users', 'UsersCrudController');
      Route::crud('fluidbook-translate', 'FluidbookTranslateCrudController');
 });
index ac7d215fb9ff18f63338169b398f9a4e12268128..7199e38dc284cfae0d911d959331496620de5d6b 100644 (file)
@@ -4,6 +4,7 @@
 //    ->where(['page' => '^(((?=(?!admin))(?=(?!\/)).))*$', 'subs' => '.*']);
 use App\Http\Middleware\CheckIfAdmin;
 use App\Http\Middleware\VerifyCsrfToken;
+use Illuminate\Support\Facades\Route;
 
 Route::group([
     'prefix' => config('backpack.base.route_prefix', 'admin'),
@@ -24,6 +25,7 @@ Route::group([
     Route::get('fluidbookthemepreview/{id}.jpg', 'FluidbookThemePreviewController@preview');
     Route::get('tasks', 'TasksController@index');
     Route::get('tasks/countUnread', 'TasksController@countUnread');
+    Route::match(['get'], 'storage/{path?}', 'StorageController@storage')->where(['path' => '.*']);
     Route::delete('tasks/notification/{id}', 'TasksController@deleteNotification');
 });