我尝试制作自己的权限系统。但是如果用户没有特定角色他们无法访问该页面,那么代码就会出现问题。
这是我的代码:
public function compose($view)
{
$roleid = Session::get('role_id');
$userid = Session::get('user_id');
$additional_role = Session::get('additional_role');
$roles = explode(';', $additional_role);
$segment = Request::segment('1');
$joins = [];
foreach ($roles as $role)
{
$query = DB::table('roles')->where('id', $role)->first();
$joins[] = $query->link;
}
foreach($joins as $join) {
var_dump($join); var_dump($segment);
if ($join == $segment)
{
return redirect($segment);
}
else
{
return redirect('/');
}
}
}
我在作曲家中制作代码,以便我可以继续启动它。但我无法使其工作,即使用户没有他们没有重定向到'/'的角色。
有什么方法可以让它发挥作用吗?所以他们不会进入页面,如果他们有角色,他们就会进入页面。
答案 0 :(得分:0)
你在哪里有这个逻辑?
我认为在l5中权限和auth逻辑的最佳位置是" Http / Middleware", 你可以在里面添加句柄方法和逻辑,然后你必须编辑kernel.php
protected $routeMiddleware = [
'auth' => 'App\Http\Middleware\Authenticate',
'auth.basic' => 'Illuminate\Auth\Middleware\AuthenticateWithBasicAuth',
'guest' => 'App\Http\Middleware\RedirectIfAuthenticated',
'test' => 'App\Http\Middleware\yourFile',
];
您可以在此处查看laravel acl的绝佳解决方案:https://gist.github.com/amochohan/8cb599ee5dc0af5f4246
然后您就可以轻松获得角色权限