0

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

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

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

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

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

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

4

1 回答 1

1

我认为实现这一目标的最佳方法绝对是凭证(适用于 sf1.2,但适用于 1.4)。

我建议您使用sfGuardDoctrine来使用一些具有相关权限(即凭据)的组。您定义了一个组adminadvisor等。您关联了一些凭据,例如modifiyremovecreateedit等。

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

之后,您必须检查用户是否可以执行每个操作:

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

这是sfGuard 的更多文档(与 sf1.0 相关,但最好了解它的工作原理)。

于 2012-04-24T14:18:34.263 回答