Symfony 1.4针对不同角色的不同CRUD

时间:2012-04-24 13:23:25

标签: php symfony1 crud user-roles

我想为 Symfony 1.4 项目中的不同角色提供指定的操作。

项目包含多个数据库表,这些数据表只能由某些角色修改。

例如,管理员可以访问所有模型的CRUD。 另一个角色(让它成为顾问)只能检索(不修改或删除)指定模型(不是全部)的结果。

我如何在symfony中支持这样的功能? 我假设项目的角色将提前指定。

我正在考虑的一个解决方案是分别为每个角色创建模块和操作(crud面板+一个日志记录界面),但这听起来像是一项巨大的工作。

只是想知道更聪明的方式是什么。

1 个答案:

答案 0 :(得分:1)

我认为实现这一目标的最佳方法是明确credentials(适用于sf1.2但适用于1.4)。

我建议您使用sfGuardDoctrine来使用一些具有相关权限的组(即凭据)。您定义了一个组 admin 顾问等。您关联了一些凭据,例如修改删除,< em>创建,编辑等等。

然后,每次用户登录时,它都会自动定义凭证(与他或他的团队相关联)。

之后,如果用户可以执行操作,则必须检查每个操作:

if($this->getUser()->hasCredential('modify'))
{
  // authorized action
}

以下是sfGuard的一些more documentation(与sf1.0相关,但了解它是如何工作的很好)。