2016-11-23 67 views
0

我正在使用laravel 5.2.I想检查用户是否分配有url.if用户尝试访问管理员未分配给他的url,应显示“拒绝访问”消息。 我会告诉我的comntroller如何检查用户是否被分配了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

您有否认在这种情况下访问几个选项。

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

相关问题