我正在使用laravel 5.2。我想检查是否为用户分配了url。如果用户尝试访问管理员未分配给他的url,则应显示“access denied”消息。 我将展示我的comntroller
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\DashboardController@index');
}
}
答案 0 :(得分:0)
在此方案中,您几乎没有选择拒绝访问权限。
1)创建一个显示" Access Denied Msg"以及要包含的其他详细信息,如果访问被拒绝,则返回此页面。
例如,考虑创建的页面是access_denied.blade.php
,那么你的if条件如下所示:
if($elink == $dlink)
{
Session::flash('flash_notification', array('level' => 'success', 'message' => 'Access Denied!!'));
return view("access_denied");
}
2)因为,您正在将请求重定向到另一个操作,请在那里处理与访问相关的响应。
3)按照给定的here发送中止响应。