0

我正在开发一个涉及具有分层角色的用户的 Symfony2 应用程序。现在我可以毫无问题地注册、恢复和登录应用程序,因为我已经实现了 Symfony2 文档中描述的角色和用户。

那时,我已经开发了一些 CRUD,以便能够管理应用程序中的对象,但在当前实现中,我必须检查当前用户角色,以便让他或不运行“选定”操作。我的意思是,在每个控制器中,我获取安全上下文,然后是用户对象并检查权限,然后有时我需要检查当前用户是数据的所有者 - 即,如果用户有客户端,我需要检查 url 传递的变量/id/whatever拥有/属于当前用户 - 然后拒绝访问。

所以,就我习惯和感觉舒适地开发上述应用程序而言,我想知道是否有更好的方法或 Symfony2 方法,我可以以标准或更易理解的方式管理角色和数据,以便未来的开发人员不会t 需要通过每个 if 或检查内部控制器 + 操作。我还想指出,我将能够自定义获取或加载数据或对象的方式,以便优化 sql 在后台的运行。

4

1 回答 1

0

Symfony ACL 正是您所需要的。您可以将访问权限(即所有者、编辑、查看等)分配给单个用户或分配给具有特定角色的所有用户(或两者兼有)。

如果 ACL 对您的需求来说过于复杂,那么另一种方法是使用自定义Security Voter

于 2013-12-05T00:19:33.290 回答