Hi, I am facing an issue in listing the register users in the views, I am using middleware to authenticate route based on roles , I am using an AJAX call to get all registered user and then showing it on views.
Here is the code snippet of the middle ware
class UserRoleMiddleware
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure(\Illuminate\Http\Request): (\Illuminate\Http\Response|\Illuminate\Http\RedirectResponse) $next
* @return \Illuminate\Http\Response|\Illuminate\Http\RedirectResponse
*/
public function handle(Request $request, Closure $next, $role)
{
if (auth()->check() && auth()->user()->role == $role){
return $next($request);
}
return response()->json("Sorry you are not allowed to access the requested resource", 403);
}
}
In user model. the middleware is configured like this:
protected function role(): Attribute
{
return new Attribute(
get: fn ($value) => ["admin","customer"][$value],
);
}
These are my routes
oute::middleware(['auth', 'verified' ,'role:admin'])->prefix('admin/')->group(function(){
Route::get('dashboard', [HomeController::class, 'adminDashboard'])->name('admin.home');
// User Routes
Route::get('user', [UserController::class, 'index'])->name('admin.view.users');
Route::get('user/all', [UserController::class, 'fetchUsers'])->name('admin.fetch.users');
}
I don't have enough understanding of middleware as I have recently started learning Laravel, so can anyone help out.
The error is like this Undefined array key "admin", which is then pointing towards the user model class in the debug bar.