tangoman/role-bundle

Symfony 角色包

安装: 103

依赖: 0

建议者: 0

安全: 0

星级: 3

关注者: 2

分支: 0

开放问题: 0

类型:symfony-bundle

2.0.2 2018-04-08 21:13 UTC

This package is auto-updated.

Last update: 2024-09-16 23:24:45 UTC


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

License-MIT MIT 许可证下分发。

如果您喜欢 TangoMan 角色包,请给它加星!并在 GitHub 上关注我:[TangoMan75](https://github.com/TangoMan75) ... 还可以查看我的其他酷项目。

Matthias Morin | LinkedIn