我想为 Symfony 1.4 项目中的不同角色提供指定的操作。
项目包含多个数据库表,这些数据表只能由某些角色修改。
例如,管理员可以访问所有模型的CRUD。 另一个角色(让它成为顾问)只能检索(不修改或删除)指定模型(不是全部)的结果。
我如何在symfony中支持这样的功能? 我假设项目的角色将提前指定。
我正在考虑的一个解决方案是分别为每个角色创建模块和操作(crud面板+一个日志记录界面),但这听起来像是一项巨大的工作。
只是想知道更聪明的方式是什么。
答案 0 :(得分:1)
我认为实现这一目标的最佳方法是明确credentials(适用于sf1.2但适用于1.4)。
我建议您使用sfGuardDoctrine来使用一些具有相关权限的组(即凭据)。您定义了一个组 admin ,顾问等。您关联了一些凭据,例如修改,删除,< em>创建,编辑等等。
然后,每次用户登录时,它都会自动定义凭证(与他或他的团队相关联)。
之后,如果用户可以执行操作,则必须检查每个操作:
if($this->getUser()->hasCredential('modify'))
{
// authorized action
}
以下是sfGuard的一些more documentation(与sf1.0相关,但了解它是如何工作的很好)。