2016-04-05 17 views
2

Ich habe eine einfache Benutzer-Tabelle, die ich definiere und Admin durch eine 1 in der Spalte Typ.Laravel 5.1 ist Admin

Ich habe das folgende Setup in meiner Middleware, aber das hält immer noch nicht nicht Admins Zugriff auf nur Admin-Bereiche.

Middleware:

<?php 

namespace App\Http\Middleware; 

use Closure; 

class Admin { 

    public function handle($request, Closure $next) 
    { 
     if (Auth::user()->isAdmin()) 
     { 
      return redirect('home'); 
     } 

     return $next($request); 
    } 

} 

Kernal:

protected $routeMiddleware = [ 
    'auth' => \App\Http\Middleware\Authenticate::class, 
    'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class, 
    'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class, 
    'admin' => App\Http\Middleware\Admin::class, 
]; 

Routen:

Route::group(['middleware' => 'auth', 'admin'], function() { 

Route::get('admin/dashboard', '[email protected]'); 
Route::get('admin/orders', '[email protected]'); 

}); 

Funktion in meiner Benutzerklasse:

public function isAdmin() 
    { 

     if (Auth::user()->type == '1') 
     { 
      return true; 
     } 
     else 
     { 
      return false; 
     } 

    } 

Antwort

2

Sie müssen mehrere Middleware als Array übergeben:

Route::group(['middleware' => ['auth', 'admin']]