【发布时间】:2014-07-22 06:08:07
【问题描述】:
如何在 laravel 中为不同的用户进行不同的页面(&动作)访问?
例如我们有 3 名员工:
- 管理员 - 管理 eshop
- 经理 - 处理订单、运输等
- 文案 - 将新商品添加到目录,撰写帖子
A) 页面访问。登录 eshop-admin 区域时,用户会看到菜单:
- 管理员 - 用户设置发布目录运输订单
- 经理 - 发布目录运输订单
- 文案 - 帖子目录
B) 操作访问。经理和文案的帖子页面:
- 经理操作:
- add_post
- add_post_category
- delete_post
- edit_post
- 文案:
- add_post
- edit_post
C) 将删除帖子的权限授予文案 A,但不授予其他文案。
【问题讨论】:
-
这是相当大的,需要几个表和
Models以及其他相关的东西(路由、控制器等),你能最小化这个问题还是先尝试一些东西并提出代码。或者,您可以使用ACL Packages。 -
在更高级别上,您正在寻找的是基于属性的访问控制 (ABAC) 和实现 ABAC 的 XACML。对于您的用例,这可能有点矫枉过正,但这是正确的做法。查看 csrc.nist.gov/projects/abac/。它不是特定于 PHP 或 Laravel 的。
标签: php laravel permissions authorization access-control