From 76a4263c1dc0776a524bcd3e300200f7c6ba5cc8 Mon Sep 17 00:00:00 2001 From: Bahar Date: Tue, 18 Aug 2026 18:28:54 +0330 Subject: [PATCH] feat:add admin generator and admin status --- .../Commands/AdminGeneratorCommand.php | 38 ++++++++++++++ app/Enums/AdminStatus.php | 10 ++++ app/Http/Controllers/Admin/AuthController.php | 52 +++++++++++++++++++ routes/admin.php | 39 ++++++++++++++ 4 files changed, 139 insertions(+) create mode 100644 app/Console/Commands/AdminGeneratorCommand.php create mode 100644 app/Enums/AdminStatus.php create mode 100644 app/Http/Controllers/Admin/AuthController.php create mode 100644 routes/admin.php diff --git a/app/Console/Commands/AdminGeneratorCommand.php b/app/Console/Commands/AdminGeneratorCommand.php new file mode 100644 index 0000000..8947357 --- /dev/null +++ b/app/Console/Commands/AdminGeneratorCommand.php @@ -0,0 +1,38 @@ + 'admin', + 'password' => Hash::make('123456789'), + 'status' => AdminStatus::ENABLE, + ]); + $this->info('Admin created successfully.'); + } +} diff --git a/app/Enums/AdminStatus.php b/app/Enums/AdminStatus.php new file mode 100644 index 0000000..805d71b --- /dev/null +++ b/app/Enums/AdminStatus.php @@ -0,0 +1,10 @@ +whereUsername($request->input('username')) + ->whereStatus(AdminStatus::ENABLE) + ->first(); + + if (!$admin) { + return back()->withErrors([ + 'general' => 'اطلاعات وارد شده نامعتبر است.' + ]); + } + if (!Hash::check($request->input('password'), $admin->password)) { + return back()->withErrors([ + 'general' => 'اطلاعات وارد شده نامعتبر است.' + ]); + } + Auth::guard('admin')->login($admin); + + return redirect()->route('admin.dashboard.index'); + + } + + public function logout() + { + Auth::guard('admin')->logout(); + + return redirect()->route('admin.auth.login.index'); + } +} diff --git a/routes/admin.php b/routes/admin.php new file mode 100644 index 0000000..653655a --- /dev/null +++ b/routes/admin.php @@ -0,0 +1,39 @@ +name('admin.')->group(function () { + + Route::get('/', function () { + return redirect()->route('admin.dashboard.index'); + + })->name('index'); + + Route::prefix('auth')->name('auth.')->controller(AuthController::class)->group(function () { + + + Route::prefix('login')->name('login.')->middleware('guest:admin')->group(function () { + + Route::get('/', 'login')->name('index'); + Route::post('/', 'loginPost')->name('post'); + }); + + Route::get('logout', 'logout')->middleware('auth:admin')->name('logout'); + }); + Route::middleware('auth:admin')->group(function () { + + Route::get('dashboard', [DashboardController::class, 'index'])->name('dashboard.index'); + + + }); + + +}); + + + + +