2
首先,我将粗略地描述上下文。我想有一个symfony应用程序,我可以创建各种领域。在每个区域中,您可以拥有不同类型的用户(或角色)。每个用户可以在不同的区域有多个角色。何处实现动态组的安全过滤器
为了说明这个问题,我们将定义:
- 2个区域: “区域1” 和 “2区”。
- 2个用户:“用户1”和“用户2”。
- 2个角色:“卖家”和“买家”。
- “用户1”是卖方和在“区域1”的买方
- “用户2”是卖方和在“区域1”仅在“区域2”
我的问题是:如果用户属于某个特定区域并且他在该区域具有所需角色,那么这是检查受限页面的最佳方式。
思考了一下这件事之后,我也做了以下内容:
- 当创建一个区域,我也创建每个角色一个sfGuardGroup和该地区一个全球sfGuardGroup,每个区域后缀ID。因此,在我们的例子中,我们将有角色:
- 区-1,卖家-1,买家-1区1
- 区-2,卖家-2,买家-2区2
- 用户被添加到相关组。因此,在我们的例子:
- 用户1将属于组区域1,卖家-1和买家-1
- 用户2将属于组区域1,卖家-1,买家-1,区域-2和买家-2
- 从URL,我知道我们是哪个区域,例如:
- http://example.com/area-1/sellers-restricted-page(组中访问用户区域1和卖家-1)
- http://example.com/area-2/buyers-restricted-page(群组区域2和买家2可以访问)
- http://example.com/area-2/(访问组中的用户区域-2)
在这一点上,我有点卡住,因为我不能让出执行权限检查的最佳场所:修改保护过滤器?改变行动?
谢谢你把我放在正确的轨道上。看来在一些测试后,我会设法使用自定义sfFilter去某个地方。 – 2010-12-07 15:03:33