Is there any ready-made functionality in the Fortify package for setting user roles and permissions (regular user, admin, main admin, etc.)?
If not, what is the correct way to implement it yourself? Alternatively, create middleware and an is_admin field in the users table. And do the check:
if(Auth::user()->is_admin != 1){
return redirect()->route('index');
}
Route:
Route::group(['middleware' => 'id_admin'], function(){
Route::get('/admin-panel', [AdminController::class, 'admin_panel'])->name('admin_panel');
});
It's easy if I have 2 user roles (0 is normal user, 1 is administrator). But what if I have a regular user, an admin (can edit, update, delete products, categories, etc.), and a CEO (can give and take away admin rights, edit users' data and delete users)? Is it worth creating a second middleware to check is_ceo?
And with second middleware route:
Route::group(['middleware' => 'id_admin'], function(){
Route::get('/admin-panel', [AdminController::class, 'admin_panel'])->name('admin_panel');
Route::group(['middleware' => 'id_ceo'], function(){
Route::get('/ceo-panel', [AdminController::class, 'ceo_panel'])->name('ceo_panel');
});
});
Is it correct way?