我愿做一个权限检查,将禁止访问特定页面和按钮的用户,如果他们没有权限。在我的数据库中,我有一个用户表,权限表,然后是一个permission_user表,为每个用户分配权限。Laravel 5.2自定义用户权限检查
现在,我有其中显示与数据的所有汇总表页面,并有一组按钮有(查看,编辑等)和一些用户不能做所有这些,所以我想这些按钮不可见/禁用。我不想让他们访问使用这些按钮链接的受限制的页面,如果他们在URL中键入它(例如公共/管理/编辑/ ID)。
下面是目前可用的权限
PermissionID PermissionName
1 View
2 Add
3 Edit
4 Delete
现在在我的permissions_user表就是这个样子
PermissionID AccountID
1 2
这里是我的一块控制器
public function showDetails($action, $id)
{
return view('pages.admin.form_details', ['action' => $action, 'id' => $id]);
}
这个例子功能将显示详细信息页面并返回操作(字符串,可以是查看或编辑)然后检查显示视图或编辑页面是否在我的刀片中完成。如果可能的话,我想要做的所有检查一次(就像你在每一页如何检查,如果用户登录或不通过中间件)。我实际上尝试过zizaco委托,但我不明白如何实现它,并最终将其从我的项目中删除。
我一直在考虑在每个页面控制器的show function中做这样的事情。
if($action == "edit)
//check if edit permission exists for the authenticated user. if not abort and show error page.
我认为这是低效率和重复这样做。会有更好的解决方案吗?或者,也许我可以整合更简单的软件包?
感谢您的回答!这对我来说非常有帮助,因为我发现文档混乱。 –
不客气... – georgeos