2016-05-03 2 views
0

Ich bin Anfänger von Laravel. Ich verwende Rollen- und Berechtigungskonzept für mehrere Benutzer. Wenn der Benutzer die URL manuell eingibt, die diesem Benutzer nicht erlaubt ist, möchte ich diesen Benutzer abmelden.Laravel - Wie man sich abmeldet und die Abmeldeseite anzeigt, wenn der Benutzer die nicht autorisierte URL manuell eingibt

Ich habe den Benutzer erfolgreich abgemeldet, aber zeige die Abmeldeseite im Inhaltsbereich an, nicht die einzelne Seite der Anmeldung.

Bitte helfen Sie mir.

Vielen Dank im Voraus ....

Bild Schnappschuss enter image description here

Dies ist meine ACL-Code -

public function handle($request, Closure $next, $permission = null) 
    { 
     if ($request->getSession()->has('user')) { 
      $userObj = new \App\User; 
      if ($userObj->canAccess($request->getSession()->get('user')[0]['userPerm'], $permission)) { 
       return $next($request); 
      } 
      else{ 
        redirect('logout')->withErrors(array('mst_error' => 'Unauthorized Access!'))->send();exit; 
      } 
     } 
     return $request->isXmlHttpRequest() ? 
      response(json_encode(array('session_logout' => true)), 401) : 
      redirect('login')->withErrors(array('mst_error' => 'You don\'t have any active session. Please login again')); 
    } 
+0

Es wird Weiterleitungsseite abzumelden, aber nicht gezeigt ganze Seite, weil Anforderung von AJAX und Ajax kommen ersetzen der Inhaltsbereich mit Abmeldeseite .. Also was soll ich tun. Bitte hilf mir dringend. –

Antwort

0

ich beschlossen haben :)

Das ist mein Griff Funktion

public function handle($request, Closure $next, $permission = null) 
    { 
     if ($request->getSession()->has('user')) { 
      $userObj = new \App\User; 
      if ($userObj->canAccess($request->getSession()->get('user')[0]['userPerm'], $permission)) { 
       return $next($request); 
      } 
      else{ 
        return response()->json(array('mst_error'=>'Unauthorized Access.'),401); 
       } 
     } 
     return $request->isXmlHttpRequest() ? 
      response(json_encode(array('session_logout' => true)), 401) : 
      redirect('login')->withErrors(array('mst_error' => 'You don\'t have any active session. Please login again')); 
    } 

Dies ist meine Ajax Request -

$.ajax({ 
      url:url, 
      data:data, 
      statusCode: { 
       401: function(res){ 
         location.href = "unauthorized"; 
        } 
      } 
     }).done(function(result){console.log(result); 
      $('#section-content').html(result); 
     }); 

Diese in Auth-Controller meine nicht autorisierte Funktion ist

protected function unauthorized_logout (Request $request) { 
     if ($request->getSession()->has('user')) { 
      $request->getSession()->flush(); 
     }   
     Session::flash('error','Unauthorized Access!'); 
     return redirect('/'); 
    } 
+0

Fügen Sie Ihren Code zu Frage .. nicht als Antwort – Thamilan

Verwandte Themen