]> _ Git - cubist_cms-back.git/commitdiff
wait #6693 @0.75
authorVincent Vanwaelscappel <vincent@cubedesigners.com>
Tue, 30 Jan 2024 13:00:00 +0000 (14:00 +0100)
committerVincent Vanwaelscappel <vincent@cubedesigners.com>
Tue, 30 Jan 2024 13:00:00 +0000 (14:00 +0100)
src/app/Console/Commands/InstallCommand.php
src/app/Console/Commands/UpdateCommand.php

index faeb3a97cca3d5b3205ca879dfb875b0b526e340..2d6b268f1cf6d07d3cc9bbef06ff38e35bbbbfbe 100644 (file)
@@ -2,6 +2,12 @@
 
 namespace Cubist\Backpack\Console\Commands;
 
+use Cubist\Backpack\Magic\Models\CubistMagicAbstractModel;
+use Cubist\Util\Crypt;
+use Cubist\Util\Text;
+use Illuminate\Support\Facades\DB;
+use Illuminate\Support\Facades\Hash;
+
 class InstallCommand extends CubistCommand
 {
     protected $signature = 'cubist:install';
@@ -15,10 +21,16 @@ class InstallCommand extends CubistCommand
 
     public function handle()
     {
-        $devPackages = ['barryvdh/laravel-ide-helper', 'filp/whoops', 'laravel/tinker:^2.1'];
+        $devPackages = ['barryvdh/laravel-ide-helper', 'filp/whoops', 'laravel/tinker'];
 
         $commands = [
             'Update Cubist' => ['php artisan cubist:update'],
+            'Laravel media library' => [
+                'php artisan vendor:publish --provider="Spatie\MediaLibrary\MediaLibraryServiceProvider" --tag="migrations"',
+                'php artisan vendor:publish --provider="Spatie\MediaLibrary\MediaLibraryServiceProvider" --tag="config"',
+                'php artisan migrate --force',
+                'php artisan cubist:magic:migrate',
+            ],
             'Install backpack' => ['php artisan backpack:install'],
             'Publish backpack assets' => ['php artisan vendor:publish --provider="Backpack\CRUD\BackpackServiceProvider" --tag="minimum"'],
             'Install backpack addons' => [
@@ -34,22 +46,38 @@ class InstallCommand extends CubistCommand
                 'php artisan backpack:add-sidebar-content "<li class=\'nav-item nav-dropdown\'><a class=\'nav-link nav-dropdown-toggle\' href=\'#\'><i class=\'nav-icon la la-group\'></i>Authentication</a><ul class=\'nav-dropdown-items\'><li class=\'nav-item\'><a class=\'nav-link\' href=\'{{ backpack_url(\'user\') }}\'><i class=\'nav-icon la la-user\'></i><span>Users</span></a></li><li class=\'nav-item\'><a class=\'nav-link\' href=\'{{ backpack_url(\'role\') }}\'><i class=\'nav-icon la la-group\'></i> <span>Roles</span></a></li><li class=\'nav-item\'><a class=\'nav-link\' href=\'{{ backpack_url(\'permission\') }}\'><i class=\'nav-icon la la-key\'></i><span>Permissions</span></a></li></ul></li>"',
                 // Revisions
                 'php artisan vendor:publish --provider="Venturecraft\Revisionable\RevisionableServiceProvider"',
-                'php artisan migrate',
+                'php artisan migrate --force',
             ],
             'Install dev dependencies' => ['composer require --dev ' . implode(' ', $devPackages)],
             "Dropzone" => 'php artisan gaspertrix:backpack:dropzone:install',
-            'Laravel media library' => [
-                'php artisan vendor:publish --provider="Spatie\MediaLibrary\MediaLibraryServiceProvider" --tag="migrations"',
-                'php artisan vendor:publish --provider="Spatie\MediaLibrary\MediaLibraryServiceProvider" --tag="config"'
-            ],
+
             'Cubist code generation' => ['php artisan cubist:magic:generate'],
             'Database migrations' => [
-                'php artisan migrate',
+                'php artisan vendor:publish --provider="Spatie\Permission\PermissionServiceProvider"',
+                'php artisan migrate --force',
                 'php artisan cubist:magic:migrate'
             ],
             'Setup superadmin permission' => [
                 'php artisan permission:create-role superadmin',
             ],
+            'Create first users' => [
+                function () {
+                    $users = ['vincent@cubedesigners.com' => 'Vincent Vanwaelscappel', 'soufiane@cubedesigners.com'=> 'Soufiane Adili'];
+                    foreach ($users as $email => $name) {
+                        try {
+                            /** @var CubistMagicAbstractModel $user */
+                            $user = new \App\Models\User();
+                            $user->password = Hash::make(Text::randText('60'));
+                            $user->email = $email;
+                            $user->name = $name;
+                            $user->save();
+                            DB::table('model_has_roles')->insert(['role_id' => 1, 'model_id' => $user->id, 'model_type' => 'App\\Models\\AuthUser']);
+                        } catch (\Exception $e) {
+                            echo $e->getMessage();
+                        }
+                    }
+                }
+            ],
             'Clear caches' => ['php artisan optimize:clear'],
         ];
 
@@ -63,7 +91,15 @@ class InstallCommand extends CubistCommand
                 $command = [$command];
             }
             foreach ($command as $cmd) {
-                $this->executeProcess($cmd);
+                if ($cmd instanceof \Closure) {
+                    $cmd->call($this);
+                } else {
+                    try {
+                        $this->executeProcess($cmd);
+                    } catch (\Exception $e) {
+                        echo $cmd . ' : ' . $e->getMessage() . "\n";
+                    }
+                }
             }
 
             $this->progressBar->advance();
index fef57c3396dbba1962193d046bee824d8812b6ff..6d2a56aed8fdbdb61497b6016942fc087c24afde 100644 (file)
@@ -17,8 +17,6 @@ class UpdateCommand extends CubistCommand
     {
         $commands = [
             'Update packages' => ['composer update -v --no-progress --profile --prefer-dist'],
-            'Dump autoload' => ['composer dump-autoload'],
-            'Clear cache' => ['php artisan optimize:clear'],
             'Generate magic models' => ['php artisan cubist:magic:generate'],
             'Clear caches' => ['php artisan optimize:clear'],
         ];