diff --git a/app/Http/Kernel.php b/app/Http/Kernel.php index ab380cc..2818757 100644 --- a/app/Http/Kernel.php +++ b/app/Http/Kernel.php @@ -67,5 +67,6 @@ class Kernel extends HttpKernel 'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class, 'verified' => \Illuminate\Auth\Middleware\EnsureEmailIsVerified::class, 'htmlsanitize' => \App\Http\Middleware\HtmlSanitizer::class, + 'logoutuser' => \App\Http\Middleware\LogoutUnpublishedUsers::class, ]; } diff --git a/app/Http/Middleware/LogoutUnpublishedUsers.php b/app/Http/Middleware/LogoutUnpublishedUsers.php new file mode 100644 index 0000000..952004c --- /dev/null +++ b/app/Http/Middleware/LogoutUnpublishedUsers.php @@ -0,0 +1,27 @@ +published) { + Auth::logout(); + return redirect()->route('bo.login')->with('warning', trans('auth.unpublished_user')); + } + return $next($request); + } +} diff --git a/app/Models/User.php b/app/Models/User.php index 8dc7ebd..d1bac88 100644 --- a/app/Models/User.php +++ b/app/Models/User.php @@ -16,7 +16,7 @@ use Illuminate\Support\Facades\Hash; * @property string $email Email. * @property string $password Password. * @property \App\Enums\Users\RoleEnum $role Role. - * @property \Illuminate\Support\Carbon $published Published status. + * @property boolean $published Published status. * @property \Illuminate\Support\Carbon $published_at Publication status update date. * @property-read \Illuminate\Support\Carbon $created_at Created date. * @property-read \Illuminate\Support\Carbon $updated_at Updated date. diff --git a/resources/lang/en/auth.php b/resources/lang/en/auth.php index 6db4982..b4f9484 100644 --- a/resources/lang/en/auth.php +++ b/resources/lang/en/auth.php @@ -3,7 +3,8 @@ declare(strict_types=1); return [ - 'failed' => 'These credentials do not match our records.', - 'password' => 'The password is incorrect.', - 'throttle' => 'Too many login attempts. Please try again in :seconds seconds.', + 'failed' => 'These credentials do not match our records.', + 'password' => 'The password is incorrect.', + 'throttle' => 'Too many login attempts. Please try again in :seconds seconds.', + 'unpublished_user' => 'Your account has been deactivated, please contact a site administrator.', ]; diff --git a/resources/lang/fr/auth.php b/resources/lang/fr/auth.php index a22cd3f..96d6383 100644 --- a/resources/lang/fr/auth.php +++ b/resources/lang/fr/auth.php @@ -3,7 +3,8 @@ declare(strict_types=1); return [ - 'failed' => 'Ces identifiants ne correspondent pas à nos enregistrements.', - 'password' => 'Le mot de passe est incorrect', - 'throttle' => 'Tentatives de connexion trop nombreuses. Veuillez essayer de nouveau dans :seconds secondes.', + 'failed' => 'Ces identifiants ne correspondent pas à nos enregistrements.', + 'password' => 'Le mot de passe est incorrect', + 'throttle' => 'Tentatives de connexion trop nombreuses. Veuillez essayer de nouveau dans :seconds secondes.', + 'unpublished_user' => 'Votre compte à été désactivé, veuillez contactez un administrateur du site.', ]; diff --git a/routes/web-bo.php b/routes/web-bo.php index b226bf7..a075f4f 100644 --- a/routes/web-bo.php +++ b/routes/web-bo.php @@ -25,7 +25,7 @@ Route::prefix('bo') ] ); }); - Route::middleware('auth:backend')->group(function () { + Route::middleware(['auth:backend', 'logoutuser'])->group(function () { Route::get('/', [DashboardController::class, 'index'])->name('dashboard'); // * USERS.