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?