2016-11-23 8 views
0

私はlaravel 5.2を使用しています。ユーザーが管理者によって割り当てられていないURLにアクセスしようとすると、ユーザーにurl.ifが割り当てられているかどうかを確認したいのですが、 'access denied'というメッセージが表示されます。 私はあなたがこのシナリオでのアクセスを拒否するためのいくつかのオプションがありユーザーにURLが割り当てられているかどうかを確認するにはどうすればよいですか?

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

エラーが発生していますか? 'dlink'と' elink'変数は何のためですか? – jaysingkar

+0

$ dlinkは現在のリンクIDを取得するためのもので、$ elinkは現在のユーザーID用です – vibin

+0

申し訳ありませんあなたのコードにコメントがありませんでした。私が問題を理解していない – jaysingkar

答えて

0

私comntrollerが表示されます。

1)「アクセス拒否メッセージ」とその他の詳細を含めるページを作成し、アクセスが拒否された場合はこのページを返します。 は、例えば、作成されたページは、あなたの条件は以下のようになりますならば、access_denied.blade.phpであることを考慮してくださいので)

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

2、あなたは別のアクションにリクエストをリダイレクトされ、そこにアクセス関連の応答を処理します。

3)指定した通りに応答を送信します。here

関連する問題