2016-08-24 4 views
0

Ist es möglich, Benutzer mit unterschiedlichen Benutzerrollen auf eine andere Seite in Laravel 5.1 umzuleiten?Laravel: Verschiedene Benutzerrollen unterschiedlich umleiten

Ich habe in Auth Middleware und Auth-Controller untersucht, aber nichts gefunden, das die Login-Anfrage selbst verarbeitet.

Ich habe etwas über Login-Umleitung hier Laravel redirect back to original destination after login gefunden, aber ich bin mir nicht sicher, wo die vorgeschlagenen Code-Schnipsel zu setzen.

Kann mir jemand helfen

+0

eine Aufgabe neu sein Würde/Überschreiben den 'AuthController' die Login anders zu handhaben, oder eine neue Middleware schriftlich zu handhaben Umleitung eines neu angemeldeten Benutzers auf die entsprechende Seite basierend auf ihrer Rolle. Die Frage ist für SO-Zwecke allerdings etwas zu weit gefasst. –

Antwort

4

Sie in RedirectIfAuthenticated Middleware aktualisieren

namespace App\Http\Middleware; 

use Closure; 
use Illuminate\Contracts\Auth\Guard; 

class RedirectIfAuthenticated 
{ 
    /** 
    * The Guard implementation. 
    * 
    * @var Guard 
    */ 
    protected $auth; 

    /** 
    * Create a new filter instance. 
    * 
    * @param Guard $auth 
    * @return void 
    */ 
    public function __construct(Guard $auth) 
    { 
     $this->auth = $auth; 
    } 

    /** 
    * Handle an incoming request. 
    * 
    * @param \Illuminate\Http\Request $request 
    * @param \Closure $next 
    * @return mixed 
    */ 
    public function handle($request, Closure $next) 
    { 
     if ($this->auth->check()) { 

      $auth = Auth::user()->roles()->first(); 

      switch ($auth->role) { 
       case 'admin': 
         return redirect()->route('admin');  
        break; 
       case 'superadmin': 
         return redirect()->route('superadmin'); 
        break; 
       case 'user': 
         return redirect()->route('user'); 
        break; 

       default: 
        # code... 
        return redirect()->route('user'); 
        break; 
      } 

     } 

     return $next($request); 
    } 
} 
+0

kann ich nicht glauben, dass ich diese Datei in Middleware verpasst habe – user151496

Verwandte Themen