lyssal / utilisateur-bundle
Lyssal 用户管理Bundle
0.1.3.1
2015-09-21 09:19 UTC
Requires
Suggests
- lyssal/admin-bundle: Pour gérer LyssalTourismeBundle depuis la console administrative (basé sur SonataAdmin)
- sonata-project/admin-bundle: Pour gérer les entités depuis la console administrative
README
LyssalUtilisateurBundle
允许管理用户。该bundle基于 FOSUser
和 Doctrine ORM
。
实体
所有实体都有其manager和可选的行政管理系统(如果使用Sonata
)。
实体包括:
- Civilite : 夫人,先生,小姐,博士等
- Utilisateur : 一个用户
- UtilisateurGroupe : 用户组
使用方法
您必须创建一个继承自 LyssalUtilisateurBundle
的bundle。
namespace Acme\UtilisateurBundle; use Symfony\Component\HttpKernel\Bundle\Bundle; class AcmeUtilisateurBundle extends Bundle { public function getParent() { return 'LyssalUtilisateurBundle'; } }
然后,您必须在您的bundle中创建必要的实体,并从 LyssalUtilisateurBundle
继承它们。
namespace Acme\UtilisateurBundle\Entity; use Lyssal\UtilisateurBundle\Entity\Utilisateur as BaseUtilisateur; use Doctrine\ORM\Mapping as ORM; /** * @ORM\Table(name="acme_utilisateur") * @ORM\Entity() */ class Utilisateur extends BaseUtilisateur { // Vos propriétés et méthodes si nécessaire }
namespace Acme\UtilisateurBundle\Entity; use Lyssal\UtilisateurBundle\Entity\UtilisateurGroupe as BaseUtilisateurGroupe; use Doctrine\ORM\Mapping as ORM; /** * @ORM\Table(name="acme_utilisateur_groupe") * @ORM\Entity */ class UtilisateurGroupe extends BaseUtilisateurGroupe { // Vos propriétés et méthodes si nécessaire }
namespace Acme\UtilisateurBundle\Entity; use Lyssal\UtilisateurBundle\Entity\Civilite as BaseCivilite; use Doctrine\ORM\Mapping as ORM; /** * @ORM\Table(name="vendee_civilite") * @ORM\Entity */ class Civilite extends BaseCivilite { // Vos propriétés et méthodes si nécessaire }
然后,您需要重新定义以下参数:
lyssal.utilisateur.entity.civilite.class
: Acme\UtilisateurBundle\Entity\Civilitelyssal.utilisateur.entity.utilisateur.class
: Acme\UtilisateurBundle\Entity\Utilisateurlyssal.utilisateur.entity.utilisateur_groupe.class
: Acme\UtilisateurBundle\Entity\UtilisateurGroupe
示例,在 Acme/UtilisateurBundle/Resources/config/services.xml
中:
<?xml version="1.0" ?> <container xmlns="https://symfony.com.cn/schema/dic/services" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="https://symfony.com.cn/schema/dic/services https://symfony.com.cn/schema/dic/services/services-1.0.xsd"> <!-- ... --> <parameters> <parameter key="lyssal.utilisateur.entity.civilite.class">Acme\UtilisateurBundle\Entity\Civilite</parameter> <parameter key="lyssal.utilisateur.entity.utilisateur.class">Acme\UtilisateurBundle\Entity\Utilisateur</parameter> <parameter key="lyssal.utilisateur.entity.utilisateur_groupe.class">Acme\UtilisateurBundle\Entity\UtilisateurGroupe</parameter> </parameters> </container>
如果您使用 SonataAdmin
,请将以下内容添加到您的 Acme/UtilisateurBundle/Resources/config/services.xml
中的服务:
<service id="sonata.user.editable_role_builder" class="Lyssal\UtilisateurBundle\Security\EditableRolesBuilder"> <argument type="service" id="security.context" /> <argument type="service" id="sonata.admin.pool" /> <argument>%security.role_hierarchy.roles%</argument> <argument type="service" id="translator" /> </service> <service id="lyssal.utilisateur.form.type.security_roles" class="Lyssal\UtilisateurBundle\Form\Type\SecurityRolesType"> <tag name="form.type" alias="lyssal_security_roles" /> <argument type="service" id="sonata.user.editable_role_builder" /> </service>
以下参数由 FOSUser
管理,也需要定义(有关更多信息,请参阅 FOSUserBundle
的文档):
fos_user.model.user.class
fos_user.model.group.class
管理器
服务包括:
fos_user.user_manager
fos_user.group_manager
lyssal.utilisateur.manager.civilite
lyssal.utilisateur.manager.utilisateur
lyssal.utilisateur.manager.utilisateur_groupe
请注意,fos_user.user_manager
和 fos_user.group_manager
是从 FOSUser
继承的管理器。
SonataAdmin
如果已安装,实体将自动集成到 SonataAdmin
中。
如果您想重新定义 Admin
类,只需覆盖以下参数:
lyssal.utilisateur.admin.utilisateur.class
lyssal.utilisateur.admin.utilisateur_groupe.class
lyssal.utilisateur.admin.civilite.class
安装
- 更新您的
composer.json
"require": { "lyssal/utilisateur-bundle": "*" }
- 安装bundle
php composer.phar update
- 更新
AppKernel.php
new Lyssal\UtilisateurBundle\LyssalUtilisateurBundle(),
- 在数据库中创建表
php app/console doctrine:schema:update --force
- 更新
routing.yml
lyssal_utilisateur:
resource: "@LyssalUtilisateurBundle/Resources/config/routing.yml"
prefix: /