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