Search code examples
laravellaravel-5laravel-filters

Laravel automatic logout issue with filter


I need some Filter to redirect user to the specific control panel like admin will go to he admin panel and writer will go to he writer area.. so i defined some filters Without these filter user are not automatic logout but when using these filter user automatic log out and even navigation one page to second page user automatic logout.

is there any problem in my code?

Here is the code:

Route

Route::filter('allow_only_admin', function()    {
    if (Session::get('role') !== "admin" ){
        if (Session::get('role') == 'writer') {
            return Redirect::route('windex');
        }
    }   });

Route::filter('allow_only_writer', function()
{
    if (Session::get('role') !== "writer" ){
        if (Session::get('role') == 'admin') {
            return Redirect::route('orders.all');
        }
    }
});
Route::group(['prefix' => 'writer','before'=>'allow_only_writer'], function()
{
    Route::get('index', ['as' => 'windex', 'uses'   => 'Writer@showIndex']);
});

Solution

  • try something like this i didnt test this code

    Route::filter('no_auth', function(){
            if(Auth::check()){
                if(!Auth::user()->is('admin')){
                    return Redirect::route('routename');
                }
    
                if(!Auth::user()->is('writer')){
                    return Redirect::route('routename');
                }
    
            }
        });