Can't access user object

I am trying to handle roles in my application but I have a problem: when I clear cache or logout from the app and log in again I want to be redirected to the login but it sends me the following error

Trying to get property 'rol' of non-object.

<?php

namespace App\Http\Middleware;

use Closure;

class Admin
{
    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @return mixed
     */
    public function handle($request, Closure $next)
    {
            if (\Auth::user()->rol == 'Admin') {
              return $next($request);
            }

            return redirect()->guest('login');


    }
}

Upvotes: 0

Views: 84

Answers (1)

Alex Guerrero
Alex Guerrero

Reputation: 229

you have to check if user is logged in, and then ask if user have rol

use Illuminate\Support\Facades\Auth; 

 public function handle($request, Closure $next)
 {   
   if (Auth::check()) {

      if (Auth::user()->rol == 'Admin') {
          return $next($request);
        }

        return redirect()->guest('login');

       }

     return redirect()->guest('login');


}

Upvotes: 1

Related Questions