lyssal / utilisateur-bundle
Bundle Lyssal gérant les utilisateurs
Installs: 72
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 2
Forks: 0
Open Issues: 0
Type:symfony-bundle
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
permet de gérer les utilisateurs. Le bundle se base sur FOSUser
avec Doctrine ORM
.
Entités
Toutes les entités possèdent leur manager et leur gestion administrative (optionnelle) si vous utilisez Sonata
.
Les entités sont :
- Civilite : Madame, Monsieur, Mademoiselle, Docteur, etc
- Utilisateur : Un utilisateur
- UtilisateurGroupe : Un groupe d'utilisateur
Utilisation
Vous devez créer un bundle héritant LyssalUtilisateurBundle
:
namespace Acme\UtilisateurBundle; use Symfony\Component\HttpKernel\Bundle\Bundle; class AcmeUtilisateurBundle extends Bundle { public function getParent() { return 'LyssalUtilisateurBundle'; } }
Ensuite, vous devez créer dans votre bundle les entités nécessaires héritant celles de 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 }
Vous devez ensuite redéfinir les paramètres suivants :
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
Exemple avec sur Acme/UtilisateurBundle/Resources/config/services.xml
:
<?xml version="1.0" ?> <container xmlns="http://symfony.com/schema/dic/services" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/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>
Si vous utilisez SonataAdmin
, ajoutez dans les services de votre 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>
Les paramètres suivants, gérés par FOSUser
, doivent également être définis (reportez-vous à la documentation de FOSUserBundle
pour plus d'informations) :
fos_user.model.user.class
fos_user.model.group.class
Managers
Les services sont :
fos_user.user_manager
fos_user.group_manager
lyssal.utilisateur.manager.civilite
lyssal.utilisateur.manager.utilisateur
lyssal.utilisateur.manager.utilisateur_groupe
À noter que les managers fos_user.user_manager
et fos_user.group_manager
sont hérités des managers de FOSUser
.
SonataAdmin
Les entités seront automatiquement intégrées à SonataAdmin
si vous l'avez installé.
Si vous souhaitez redéfinir les classes Admin
, il suffit de surcharger les paramètres suivants :
lyssal.utilisateur.admin.utilisateur.class
lyssal.utilisateur.admin.utilisateur_groupe.class
lyssal.utilisateur.admin.civilite.class
Installation
- Mettez à jour votre
composer.json
:
"require": { "lyssal/utilisateur-bundle": "*" }
- Installez le bundle :
php composer.phar update
- Mettez à jour
AppKernel.php
:
new Lyssal\UtilisateurBundle\LyssalUtilisateurBundle(),
- Créez les tables en base de données :
php app/console doctrine:schema:update --force
- Mettez à jour le
routing.yml
:
lyssal_utilisateur:
resource: "@LyssalUtilisateurBundle/Resources/config/routing.yml"
prefix: /