在Symfony中,如何通过根据 routing placeholder 来判断当前用户是否具有 access control?

2013-07-25 14:16:34 +08:00
 minowu
目的:

为了使一个用户可以管理多个商店

例子:

有一个用户A,他被赋予了商店ID为1和2的商店的管理权限。

那么他访问 ^/shop/1 和 ^/shop/2 路径的商店时,可以管理后台。
而他访问 ^/shop/3 商店时,不具备后台访问的功能。

---

- 这个功能该怎么实现?
- 如果有相关的英文资料,直接给我连接也行。
- 或者推荐给我几个英文的搜索关键词

---

谢谢
3119 次点击
所在节点    PHP
5 条回复
thursday
2013-07-25 14:18:17 +08:00
cookie 查数据库 看看有没有权限呗
minowu
2013-07-25 14:36:39 +08:00
@thursday 最终肯定是查数据库的方式来判断。但是关键的是这些代码有没有Symfony或者第三方的Bundle已经提供了,并且要自己扩展的话,应该写在Symfony那一层里最合适,而不是写在控制器里。
scourgen
2013-07-25 14:41:33 +08:00
ACl可以做,但ACL的目的其实是更加细粒度的权限控制。

你这个需求就直接写判断就行了,用第三方bundle反而显得麻烦。
minowu
2013-07-25 21:32:40 +08:00
@scourgen 我研究一下,Thanks
thenbsp
2015-11-30 13:41:02 +08:00
Secruity 中的 ACL 和 Voter 都可以实现您的需求,具体 http://symfony.com/doc/current/cookbook/security/voters.html

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/76923

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX