原文地址http://symfony.com/doc/current/bundles/FOSUserBundle/groups.html
FOSUserBundle允许你对用户进行分组. 分组是区分角色集合的一种方式. 一个组里面的用户会被授予这个组里面所有角色的权限.
Symfony支持角色继承, 所以从组中继承角色不是必须的. 如果在你的使用场景中继承了足够多的角色, 最好还是使用继承, 因为它更为高效.(分组功能需要数据库的驱动.)
你需要在配置文件中明确启用这个启用分组功能. 唯一强制性的就是要配置你实现了FOS\UserBundle\Model\GroupInterface接口的Group类的完全限定名(fully qualified class name).
下面是一个支持分组功能的配置例子:
1 | # app/config/config.yml |
分组类
创建分组类的最简单的方式就是去继承FOSUserBundle提供的映射过的超类.
ORM 分组类的实现
1 |
|
因为
Group是SQL中的一个保留的关键字, 所以它不能用于表名.
MongoDB 分组类的实现
1 |
|
CouchDB 分组类的实现
1 |
|
定义用户与分组的关系
下一步就是在你的User类中进行关系映射
ORM用户-分组映射
Annotations 配置方式
1 |
|
YAML配置方式
1 | # src/AppBundle/Resources/config/doctrine/User.orm.yml |
MongoDB用户-分组映射
1 |
|
CouchDB用户-分组映射
1 |
|
启用分组控制器的路由
你可以导入group.xml路由文件来使用内置的控制器来操作分组.
1 | # app/config/routing.yml |