From 4b715c0e90e07db463e941e73af4d53a1596b30f Mon Sep 17 00:00:00 2001 From: Vincent Vanwaelscappel Date: Thu, 5 Sep 2024 17:19:00 +0200 Subject: [PATCH] wip #7061 @0.25 --- .../Operations/Tools/DockerWebContainer.php | 3 +- .../app/Http/Middleware/CheckIfAdmin.php | 7 + .../Providers}/AppServiceProvider.php | 0 .../laravel/config/auth.php | 142 ++++++++++++++++++ .../tools/dockerwebcontainer/template/update | 4 +- 5 files changed, 154 insertions(+), 2 deletions(-) create mode 100644 resources/tools/dockerwebcontainer/laravel/app/Http/Middleware/CheckIfAdmin.php rename resources/tools/dockerwebcontainer/laravel/{ => app/Providers}/AppServiceProvider.php (100%) create mode 100644 resources/tools/dockerwebcontainer/laravel/config/auth.php diff --git a/app/Http/Controllers/Admin/Operations/Tools/DockerWebContainer.php b/app/Http/Controllers/Admin/Operations/Tools/DockerWebContainer.php index 27041febd..35c5ec540 100644 --- a/app/Http/Controllers/Admin/Operations/Tools/DockerWebContainer.php +++ b/app/Http/Controllers/Admin/Operations/Tools/DockerWebContainer.php @@ -215,7 +215,8 @@ trait DockerWebContainer Env::arrayToEnvFile($envPath . '.' . $env, $laravelEnv); unlink($envPath); unlink($envPath . '.example'); - copy($laravelSource . '/AppServiceProvider.php', $www . '/app/Providers/AppServiceProvider.php'); + // TODO test this ! + `cp -rf $laravelSource/* $www/`; } $variables['$fixrights'] = implode("\n", $fixRights); diff --git a/resources/tools/dockerwebcontainer/laravel/app/Http/Middleware/CheckIfAdmin.php b/resources/tools/dockerwebcontainer/laravel/app/Http/Middleware/CheckIfAdmin.php new file mode 100644 index 000000000..0c8e83466 --- /dev/null +++ b/resources/tools/dockerwebcontainer/laravel/app/Http/Middleware/CheckIfAdmin.php @@ -0,0 +1,7 @@ + [ + 'guard' => 'web', + 'passwords' => 'users', + ], + + /* + |-------------------------------------------------------------------------- + | Authentication Guards + |-------------------------------------------------------------------------- + | + | Next, you may define every authentication guard for your application. + | Of course, a great default configuration has been defined for you + | here which uses session storage and the Eloquent user provider. + | + | All authentication drivers have a user provider. This defines how the + | users are actually retrieved out of your database or other storage + | mechanisms used by this application to persist your user's data. + | + | Supported: "session" + | + */ + + 'guards' => [ + 'web' => [ + 'driver' => 'session', + 'provider' => 'users', + ], + 'client' => [ + 'driver' => 'session', + 'provider' => 'clients', + ], + ], + + /* + |-------------------------------------------------------------------------- + | User Providers + |-------------------------------------------------------------------------- + | + | All authentication drivers have a user provider. This defines how the + | users are actually retrieved out of your database or other storage + | mechanisms used by this application to persist your user's data. + | + | If you have multiple user tables or models you may configure multiple + | sources which represent each model / table. These sources may then + | be assigned to any extra authentication guards you have defined. + | + | Supported: "database", "eloquent" + | + */ + + 'providers' => [ + 'users' => [ + 'driver' => 'eloquent', + 'model' => App\Models\User::class, + ], + + 'clients' => [ + 'driver' => 'eloquent', + 'model' => App\Models\Client::class, + ], + + 'backpack' => [ + 'driver' => 'eloquent', + 'model' => App\Models\User::class, + ], + + // 'users' => [ + // 'driver' => 'database', + // 'table' => 'users', + // ], + ], + + /* + |-------------------------------------------------------------------------- + | Resetting Passwords + |-------------------------------------------------------------------------- + | + | You may specify multiple password reset configurations if you have more + | than one user table or model in the application and you want to have + | separate password reset settings based on the specific user types. + | + | The expiry time is the number of minutes that each reset token will be + | considered valid. This security feature keeps tokens short-lived so + | they have less time to be guessed. You may change this as needed. + | + | The throttle setting is the number of seconds a user must wait before + | generating more password reset tokens. This prevents the user from + | quickly generating a very large amount of password reset tokens. + | + */ + + 'passwords' => [ + 'users' => [ + 'provider' => 'users', + 'table' => 'password_reset_tokens', + 'expire' => 60, + 'throttle' => 60, + ], + + 'clients' => [ + 'provider' => 'clients', + 'table' => 'password_reset_tokens', + 'expire' => 60, + 'throttle' => 60, + ], + 'backpack' => [ + 'provider' => 'users', + 'table' => 'password_reset_tokens', + 'expire' => 60, + 'throttle' => 60, + ], + ], + + /* + |-------------------------------------------------------------------------- + | Password Confirmation Timeout + |-------------------------------------------------------------------------- + | + | Here you may define the amount of seconds before a password confirmation + | times out and the user is prompted to re-enter their password via the + | confirmation screen. By default, the timeout lasts for three hours. + | + */ + + 'password_timeout' => 10800, + +]; diff --git a/resources/tools/dockerwebcontainer/template/update b/resources/tools/dockerwebcontainer/template/update index 86cc0fa5d..82dacf41f 100644 --- a/resources/tools/dockerwebcontainer/template/update +++ b/resources/tools/dockerwebcontainer/template/update @@ -7,5 +7,7 @@ $fixrights COMPOSE_DOCKER_CLI_BUILD=1 DOCKER_BUILDKIT=1 docker compose pull COMPOSE_DOCKER_CLI_BUILD=1 DOCKER_BUILDKIT=1 docker compose build -docker compose down +docker compose down -v docker compose up -d + +ufw-docker allow $name -- 2.39.5