在不同的公司symfony 2.0中有不同的角色

时间:2013-04-01 08:38:44

标签: security symfony roles fosuserbundle

我正在努力开发一个包含不同类型公司的应用程序,每个公司都会有不同的角色。

这样,当superadmin创建公司时,将定义哪些角色可以附加到这种公司。

例如,superadmin可以创建一个购物中心,可以有一个店员和一个导演(每个人都有不同的权限);和另一种可能是咖啡店的伙伴,可以有服务员和厨师。 然后,当用户在应用程序内部登录并且想要创建新用户时,只有可能选择他的那种公司的角色。

但是我无法看到使用security.yml文件和FOSUserBUndle开发的方法。

提前致谢!

1 个答案:

答案 0 :(得分:-1)

出于这种目的,我认为你需要在控制器内部实现安全逻辑;使用security.yml,您可以限制整个区域,但我认为它不会对您的情况有所帮助。也许你可以先定义一些只能访问某些角色的路线(例如,服务员的“/ waiter / *”)

然后你可以像一种新的角色一样实施;每个公司都可以有一个字段“possible_roles”,它将是一系列角色。例如,如果superadmin创建了一个咖啡店,那么您将拥有possible_roles = { "ROLE_WAITER", "ROLE_CHEF" }

之后,您只需检查用户的角色是否在公司角色的数组中,以及他是否有权访问该页面。

是否清楚?