evilband7/rbac-user-doctrine-orm

一个集成 zfc-rbac 和 zfc-user 的模块

dev-master 2016-09-13 19:24 UTC

This package is not auto-updated.

Last update: 2024-09-23 12:56:03 UTC


README

ZF 模块,它将 ZfcUserDoctrineOrmZfcRbac 集成。受 https://github.com/esserj/RbacUserDoctrineOrm 启发

依赖关系

安装

使用 composer 安装 RbacUserDoctrineOrm 模块

{
    ...,
    "require": {
        ...,
        "evilband7/rbac-user-doctrine-orm" : "~0.1 || dev-master"
    }
}

ps. 如果您使用 ZF2,请将 zf-commons/zfc-user-doctrine-orm 添加到您的 composer 依赖项中。对于 ZF3,请手动安装 ZfcUserDoctrineOrm,将模块克隆到您的项目中。

对于 ZF3 项目,您的 composer 应该如下所示。

{
    ...,
    "require": {
        ...,
        "zendframework/zend-mvc" : "~3.0",
        "zendframework/zend-servicemanager" : "~3.0",
        "zendframework/zend-eventmanager" : "~3.0",
        "zendframework/zend-router" : "~3.0",
        "zf-commons/zfc-rbac" : "~2.5 || dev-master",
        "zf-commons/zfc-user" : "~2.0 || 2.x-dev",
        "doctrine/doctrine-module" : "~1.0 || dev-master",
        "doctrine/doctrine-orm-module" : "~1.0 || dev-master",
        "evilband7/rbac-user-doctrine-orm" : "~0.1 || dev-master"
    }
}

然后,在 config/application/application.config.php 中设置您的模块,如下所示

'modules' => array(
    'DoctrineModule',
    'DoctrineORMModule',
    'ZfcBase',
    'ZfcUser',
    'ZfcUserDoctrineORM',
    'RbacUserDoctrineOrm',
    'Application',
),

现在,您可以使用 doctrine-module 来设置您的数据库表(首先配置您的连接 Doctrine 连接设置)。

vendor/bin/doctrine-module orm:schema-tool:update --dump-sql

如果 SQL 查看正常,执行

vendor/bin/doctrine-module orm:schema-tool:update --force

角色

RbacUserDoctrineOrm 提供了两种角色的来源。

  1. dbRoles 字段,这是一个层次结构角色。您可以在数据库表 ( auth_user, auth_role, auth_permission, auth_users_roles and auth_roles_permissions ) 中定义 dbRoles

  2. providerRoles 字段,它在 auth_user.provider_roles 列中逗号分隔。除非您提供自己的 RoleProvder,否则来自此源的角色将不起作用

自定义用户实体

首先,将 config/rbac-user-doctrine.global.php.dist 复制到 autoload 文件夹中。(不要忘记删除 .dist)然后自定义您的实体类名称

 return [
      'rbac-user-doctrine-orm' => [
          'enable_default_user_entity' => false,
      ],
      'zfcuser' => [
          'userEntityClass' => 'YourUserEntityClass' //TODO
      ],
  ];

并且您的用户类必须扩展 RbacUserDoctrineOrm\Domain\AbstractRbacUser

TODO

  • 需要在依赖模块的不同版本上进行更多测试
  • 更多文档
  • 将很快发布 0.x 版本。

作者

Siwapun Siwaporn 先生 map.siwapun@gmail.com

随时提问或向我建议。 :)