2016-11-23 2 views
0

Ich benutze Laravel 5.2. Ich möchte überprüfen, ob ein Benutzer mit einer URL zugewiesen ist. Wenn ein Benutzer versucht, auf URL zuzugreifen, die ihm nicht vom Administrator zugewiesen wurde, sollte die Meldung 'Zugriff verweigert' angezeigt werden. ich werde mein comntrollerWie überprüft man, ob einem Benutzer eine URL zugewiesen ist?

public function checkUrl(){ 

     $current_link = $_SERVER['REQUEST_URI'];//current link 

     $current_link=ltrim($current_link, '/'); 

     $current_link=ltrim($current_link, 'cable'); 

     $current_link=ltrim($current_link, '/');   

     $dlink = Roles::where('link',$current_link)->pluck('id');//current link id 

     $elink=Auth::user()->id;//current user id 

     if($elink == $dlink) 
     { 

     Session::flash('flash_notification', array('level' => 'success', 'message' => 'Access Denied!!')); 

     return redirect()->action('Admin\[email protected]'); 
      } 

      } 
+0

erhalten Sie einen Fehler? Wofür sind 'dlink' und' elink' Variablen? – jaysingkar

+0

$ dlink ist für den Erhalt der aktuellen Link-ID und $ elink für die aktuelle Benutzer-ID – vibin

+0

Entschuldigung, ich habe die Kommentare in Ihrem Code verpasst. Funktioniert das nicht? Ich habe das Problem – jaysingkar

Antwort

0

Sie haben einige Optionen zeigen den Zugang in diesem Szenario für die Verweigerung.

1) Erstellen Sie eine Seite mit "Zugriff verweigert Msg" und anderen Details, die Sie einschließen möchten, und geben Sie diese Seite zurück, wenn der Zugriff verweigert wird. beispielsweise der Ansicht, dass die erstellte Seite ist access_denied.blade.php dann, wenn die Bedingung wie folgt aussehen würde:

if($elink == $dlink) 
    { 
     Session::flash('flash_notification', array('level' => 'success', 'message' => 'Access Denied!!')); 
     return view("access_denied"); 
    } 

2) Da Sie die Anforderung an eine andere Aktion umleiten, dort zugangsbezogene Antwort handhaben.

3) Senden Sie die Abbruchantwort wie angegeben here.

Verwandte Themen