tangoman / role-bundle
Symfony 角色包
2.0.2
2018-04-08 21:13 UTC
Requires
- php: >=5.3.0
- symfony/framework-bundle: ^3.4
- tangoman/entity-helper: ^2.0
README
TangoMan 角色包 为用户角色/权限管理提供基础。
安装
步骤 1:下载包
打开命令行,进入您的项目目录,并执行以下命令以下载此包的最新稳定版本
$ composer require tangoman/role-bundle
此命令需要您已全局安装 Composer,如 Composer 文档中的 安装章节 所述。
步骤 2:启用包
然后,将包添加到项目中 app/AppKernel.php 文件中注册的包列表中,以启用该包
<?php // app/AppKernel.php // ... class AppKernel extends Kernel { // ... public function registerBundles() { $bundles = array( // ... new TangoMan\RoleBundle\TangoManRoleBundle(), ); // ... } }
用法
步骤 1:创建角色实体
您的角色实体必须继承自 TangoMan\RoleBundle\Model\Role。
<?php namespace AppBundle\Entity; use Doctrine\ORM\Mapping as ORM; use TangoMan\RoleBundle\Model\Role as TangoManRole; /** * Class Role * @ORM\Entity(repositoryClass="AppBundle\Repository\RoleRepository") * @ORM\Table(name="role") */ class Role extends TangoManRole { }
步骤 2:创建权限实体
您的权限实体必须继承自 TangoMan\RoleBundle\Model\Privilege。
<?php namespace AppBundle\Entity; use Doctrine\ORM\Mapping as ORM; use TangoMan\RoleBundle\Model\Privilege as TangoManPrivilege; /** * Class Privilege * @ORM\Entity(repositoryClass="AppBundle\Repository\PrivilegeRepository") * @ORM\Table(name="privilege") */ class Privilege extends TangoManPrivilege { }
步骤 3:创建角色和权限仓库
<?php namespace AppBundle\Repository; use Doctrine\ORM\EntityRepository; /** * Class RoleRepository * * @package AppBundle\Repository */ class RoleRepository extends EntityRepository { // ... }
<?php namespace AppBundle\Repository; use Doctrine\ORM\EntityRepository; /** * Class PrivilegeRepository * * @package AppBundle\Repository */ class PrivilegeRepository extends EntityRepository { // ... }
步骤 4:在用户实体内部
您的用户实体必须继承自 TangoMan\RoleBundle\Model\User。
<?php namespace AppBundle\Entity; use Doctrine\Common\Collections\ArrayCollection; use Doctrine\ORM\Mapping as ORM; use TangoMan\UserBundle\Model\User as TangoManUser; use TangoMan\RoleBundle\Relationships\UsersHavePrivileges; use TangoMan\RoleBundle\Relationships\UsersHaveRoles; /** * Class User * @ORM\Entity(repositoryClass="AppBundle\Repository\UserRepository") * @ORM\Table(name="user") */ class User extends TangoManUser { use UsersHavePrivileges; use UsersHaveRoles; // ... public function __construct() { parent::__construct(); $this->roles = new ArrayCollection(); $this->privileges = new ArrayCollection(); // ... } }
步骤 5:更新数据库模式
从您的项目文件夹
$ php bin/console doctrine:schema:update --force
步骤 6:加载默认角色和权限
$ php bin/console tangoman:roles $ php bin/console tangoman:privileges
弃用警告
对于 Symfony 3.4 和 Symfony 4 用户
用户弃用:The "TangoMan\RoleBundle\Model\Role" 类实现了 "Symfony\Component\Security\Core\Role\RoleInterface",该接口已弃用。RoleInterface 已从 3.3 版本开始弃用,并在 4.0 版本中将被删除。请改用 extend Symfony\Component\Security\Core\Role\Role 类。
注意
如果您发现任何错误,请在此处报告:问题
许可证
版权所有 (c) 2018 Matthias Morin
如果您喜欢 TangoMan 角色包,请给它加星!并在 GitHub 上关注我:[TangoMan75](https://github.com/TangoMan75) ... 还可以查看我的其他酷项目。