lyssal/utilisateur-bundle

Lyssal 用户管理Bundle

安装: 72

依赖者: 0

建议者: 0

安全: 0

星标: 0

关注者: 2

分支: 0

开放问题: 0

类型:symfony-bundle

0.1.3.1 2015-09-21 09:19 UTC

This package is auto-updated.

Last update: 2024-09-26 11:40:11 UTC


README

LyssalUtilisateurBundle 允许管理用户。该bundle基于 FOSUserDoctrine ORM

SensioLabsInsight

实体

所有实体都有其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\Civilite
  • lyssal.utilisateur.entity.utilisateur.class : Acme\UtilisateurBundle\Entity\Utilisateur
  • lyssal.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_managerfos_user.group_manager 是从 FOSUser 继承的管理器。

SonataAdmin

如果已安装,实体将自动集成到 SonataAdmin 中。

如果您想重新定义 Admin 类,只需覆盖以下参数:

  • lyssal.utilisateur.admin.utilisateur.class
  • lyssal.utilisateur.admin.utilisateur_groupe.class
  • lyssal.utilisateur.admin.civilite.class

安装

  1. 更新您的 composer.json
"require": {
    "lyssal/utilisateur-bundle": "*"
}
  1. 安装bundle
php composer.phar update
  1. 更新 AppKernel.php
new Lyssal\UtilisateurBundle\LyssalUtilisateurBundle(),
  1. 在数据库中创建表
php app/console doctrine:schema:update --force
  1. 更新 routing.yml
lyssal_utilisateur:
    resource: "@LyssalUtilisateurBundle/Resources/config/routing.yml"
    prefix: /