johnitvn/yii2-rbac-plus

yii2的数据库角色基于访问控制管理器

安装次数: 49,911

依赖关系: 3

建议者: 3

安全性: 0

星标: 48

关注者: 13

分支: 51

开放问题: 21

类型:yii2-extension

1.0.6 2016-02-16 16:57 UTC

This package is auto-updated.

Last update: 2024-08-27 02:13:41 UTC


README

Latest Stable Version License Total Downloads Monthly Downloads Daily Downloads

yii2的数据库角色基于访问控制管理器

功能

  • 角色、权限和规则的CRUD操作
  • 允许将多个角色分配给用户
  • 方便集成的视图
  • Yii2-user-plus集成 - 灵活的用户管理模块

Yii2 RBAC manager

安装

安装此扩展的首选方式是通过composer

运行以下命令:

php composer.phar require --prefer-dist amintado/yii2-module-rbac-plus"*"

或添加以下内容到您的composer.json文件的require部分。

"amintado/yii2-module-rbac-plus": "*"

使用方法

  1. 让我们将以下内容添加到主配置文件中的模块配置
'components' => [
    'authManager' => [
        'class' => 'yii\rbac\DbManager',
    ],
],
'modules' => [
    'rbac' =>  [
        'class' => 'amintado\rbacplus\Module'
    ]       
]

接下来,更新数据库模式

$ php yii migrate/up --migrationPath=@yii/rbac/migrations

好了。完成了。现在可用的路由

  • /rbac/rule
  • /rbac/permission
  • /rbac/role
  • /rbac/assignment
  1. 模块配置可用
'modules' => [
    'rbac' =>  [
        'class' => 'johnitvn\rbacplus\Module',
        'userModelClassName'=>null,
        'userModelIdField'=>'id',
        'userModelLoginField'=>'username',
        'userModelLoginFieldLabel'=>null,
        'userModelExtraDataColumls'=>null,
        'beforeCreateController'=>null,
        'beforeAction'=>null
    ]       
]
  • userModelClassName: 用户模型类。
    如果您未设置或设置为null,则RBAC Plus将从Yii::$app->getUser()->identityClass获取
  • userModelIdField: 用户模型ID字段。
    默认ID字段为'id',如果您数据库中用户表的主键不是'id',则必须设置此配置
  • userModelLoginField 用户模型登录字段。
    默认登录字段为'username'。也许您使用电子邮件字段或其他字段进行登录。因此,您必须更改此配置
  • userModelLoginFieldLabel 用户模型登录字段标签。
    如果您设置为null,则标签将从$userModelClass->attributeLabels()[$userModelLoginField]获取
  • userModelExtraDataColumns 您想在用户分配视图中显示的额外数据列。
    默认情况下,分配数据网格视图仅显示id和登录列数据。如果您想添加created_at列,可以添加
'userModelExtraDataColumls'=>[
    [
        'attributes'=>'created_at',
        'value'=>function($model){
            return date('m/d/Y', $model->created_at);
        }
    ]
]
  • beforeCreateControllerRbac Plus模块的所有控制器创建之前可调用的函数。默认为null。当您想限制对Rbac Plus模块的访问时,需要配置此设置。
    示例
'beforeCreateController'=>function($route){
    /**
    *@var string $route The route consisting of module, controller and action IDs.
    */    
}
  • beforeAction Rbac Plus模块中所有控制器中动作之前可调用的函数。
    默认为null。当您想限制对Rbac Plus模块中某些控制器中任何动作的访问时,需要配置此设置。
    示例
'beforeAction'=>function($action){
    /**
    *@var yii\base\Action $action the action to be executed.
    */    
}