feat:add admin generator and admin status
This commit is contained in:
@@ -0,0 +1,38 @@
|
||||
<?php
|
||||
|
||||
namespace App\Console\Commands;
|
||||
use App\Enums\AdminStatus;
|
||||
use App\Models\Admin;
|
||||
use Illuminate\Console\Command;
|
||||
use Illuminate\Support\Facades\Hash;
|
||||
|
||||
|
||||
class AdminGeneratorCommand extends Command
|
||||
{
|
||||
/**
|
||||
* The name and signature of the console command.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $signature = 'app:admin-generator';
|
||||
|
||||
/**
|
||||
* The console command description.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $description = 'Command description';
|
||||
|
||||
/**
|
||||
* Execute the console command.
|
||||
*/
|
||||
public function handle()
|
||||
{
|
||||
Admin::create([
|
||||
'username' => 'admin',
|
||||
'password' => Hash::make('123456789'),
|
||||
'status' => AdminStatus::ENABLE,
|
||||
]);
|
||||
$this->info('Admin created successfully.');
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
<?php
|
||||
|
||||
namespace App\Enums;
|
||||
|
||||
enum AdminStatus:int
|
||||
{
|
||||
case DISABLE = 0;
|
||||
case ENABLE = 1;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,52 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Admin;
|
||||
|
||||
use App\Enums\AdminStatus;
|
||||
use App\Http\Requests\AuthLoginPostRequest;
|
||||
use App\Models\Admin;
|
||||
use Illuminate\Routing\Controller;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
use Illuminate\Support\Facades\Hash;
|
||||
|
||||
class AuthController extends controller
|
||||
{
|
||||
public function login()
|
||||
{
|
||||
$rawLayout = true;
|
||||
$title = 'ورود به حساب کاربری';
|
||||
|
||||
return view('admin.login', compact('rawLayout', 'title'));
|
||||
|
||||
}
|
||||
|
||||
public function loginPost(AuthLoginPostRequest $request)
|
||||
{
|
||||
$admin = Admin::query()
|
||||
->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');
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,39 @@
|
||||
<?php
|
||||
|
||||
use App\Http\Controllers\Admin\AdminController;
|
||||
use App\Http\Controllers\Admin\AuthController;
|
||||
use App\Http\Controllers\Admin\DashboardController;
|
||||
use Illuminate\Support\Facades\Route;
|
||||
|
||||
Route::prefix('admin')->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');
|
||||
|
||||
|
||||
});
|
||||
|
||||
|
||||
});
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user