- หลังจากที่เราได้สร้าง admin/agent /user dashboard กันไปแล้วตอนี้เมื่อเราลอง login ไม่ว่า account ไหนก็จะสามารถเข้า dashboard ได้ดังนั้นเราก็ต้องมาจำกัดสิทธิ์ในการใช้งานเพื่อไม่ให้คนที่ไม่มี role มีสิทธิ์เข้าถึง Dashboard นั้นได โดย เริ่มต้นเราใช้คำสั่ง php artisan make:middleware Role
2. หลังจากที่สร้างเสร็จแล้วก็จะมี file Role.php อยู่ใน app>http>Middleware
3. จากนั้นก็เพิ่มเงื่อนไขเข้าไปเพื่อเช็ค role ในไฟล์ Role.php
{
/**
* Handle an incoming request.
*
* @param \Closure(\Illuminate\Http\Request): (\Symfony\Component\HttpFoundation\Response) $next
*/
public function handle(Request $request, Closure $next,$role): Response
{
if ($request->user()->role !==$role){
return redirect(‘dashboard’);
}
return $next($request);
}
}
4. แก้ไขให้ route เช็ค authen
Route::middleware([‘auth’,’role:admin’])->group(function(){
Route::get(‘/admin/dashboard’, [AdminController::class, ‘AdminDashboard’])->name(‘admin.dashboard’);
});
จากนั้นก็ทำแบบเดียวกันกับ agent dashboard ด้วย
Route::middleware([‘auth’,’role:agent’])->group(function(){
Route::get(‘/agent/dashboard’, [AgentController::class, ‘AgentDashboard’])->name(‘agent.dashboard’);
}); //end group agent
5. เพิ่ม middleware
$middleware->alias([‘role’ => App\Http\Middleware\Role::class]);
6. จากนั้นก็ทดสอบโดยการเอา user@gmail.com มาเทสแล้วลองเข้า admin dashboard ดูก็จะ redirect กลับไปที่ dashboard
แบ่งปันกัน เราอยู่กันไม่เกิน 100 ปีหรอกครับ
สุดท้ายก็ทิ้งไว้ที่โลก จะคงเหลือไว้แต่คุณงามความดีที่ให้ระลึกถึงกันครับ
Follow Us / Thanat Sirikitphattana
นายช่างโยธา ศูนย์ก่อสร้างและบูรณะถนน 3 ส่วนก่อสร้างและบูรณะ 2 สำนักการโยธา