esempla/yii2-rbac
基于角色的访问控制
1.0.2
2018-12-10 10:09 UTC
Requires
- php: >=7.1.0
- 2amigos/yii2-arrayquery-component: >=1.0.3
- kartik-v/yii2-datecontrol: *
- kartik-v/yii2-dynagrid: >=1.4.1
- kartik-v/yii2-widget-datetimepicker: *
- kartik-v/yii2-widgets: *
- wbraganca/yii2-fancytree-widget: >=1.0.1
- yiisoft/yii2: >=2.0.1
- yiisoft/yii2-composer: >=2.0.1
This package is auto-updated.
Last update: 2024-09-17 23:30:22 UTC
README
安装
安装此扩展的首选方法是使用composer。
注意:请检查此扩展的composer.json文件以了解其要求和依赖关系。阅读有关设置应用程序的composer.json中的minimum-stability设置的web提示/维基。
运行以下命令之一:
$ php composer.phar require esempla/yii2-rbac "1.0.*"
或者添加以下内容到您的composer.json
文件的require
部分:
"esempla/yii2-rbac": "1.0.*"
到
迁移
此扩展已创建带有数据库表。您应执行数据库迁移。(推荐使用PostgreSQL®)
php yii migrate/up --migrationPath=vendor/esempla/yii2-rbac/src/migrations
模块
此扩展已作为模块创建。您应使用以下名称配置模块:authManager,如下所示
'modules' => [
...
'rbac' => [
'class' => 'esempla\rbac\Module',
]
...
],
并设置默认使用的authManager组件
'components' => [
'authManager' => [
'class' => 'yii\rbac\DbManager',
],
],
为根配置设置Url Manager(推荐使用common/config®)
'components' => [
...
'urlManager' => [
'class' => 'yii\web\UrlManager',
'showScriptName' => false, // Disable index.php
'enablePrettyUrl' => true, // Disable r= routes
'rules' => [
'<controller:[-\w]+>/<id:\d+>' => '<controller>/view',
'<controller:[-\w]+>/<action:[-\w]+>/<id:\d+>' => '<controller>/<action>',
'<controller:[-\w]+>/<action:[-\w]+>' => '<controller>/<action>',
'<module:\w+>/<controller:\w+>/<action:\w+>/<id:\d+>' =>'<module>/<controller>/<action>',
'<module:\w+>/<controller:\w+>/<action:\w+>' => '<module>/<controller>/<action>',
]
],
...
],
为启用Rewrite Module配置.config .htaccess(以重写index.php和获取参数)(推荐使用backend/web®或/和frontend/web®)
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php
允许的路由
(需要启用路由验证)
将'as access'添加到配置文件(后端或/和前端config.php)。要添加公共路由,请在新路由中添加allowActions部分。(后端或/和前端config.php)注意:此配置允许访客的路由
'as access' => [
'class' => esempla\rbac\filters\AccessControl::class,
'allowActions' => [
'site/*',
'rbac/*',
'test/*'
]
]
默认角色
要设置默认角色,请将参数添加到您的params.php(推荐使用common/params.php®)
return [
'default_roles' => json_encode(
[
[
"created_user" => "example_id",
"created_datetime" => "example_date",
"role" => "user",
"permissions" => [
"/site/index",
"/site/manage",
...
]
],
[
"created_user" => "example_id",
"created_datetime" => "example_date",
"role" => "user2",
"permissions" => [
"/site/index",
"/site/manage",
...
]
]
]),
];
国际化
'components' => [
...
'sourceLanguage' => 'en-US',
'i18n' => [
'translations' => [
'*' => [
'class' => 'yii\i18n\PhpMessageSource',
'basePath' => '@vendor/esempla/yii2-rbac/src/messages',
'sourceLanguage' => 'en-US',
'forceTranslation'=>true,
'fileMap' => [
'rbac' => 'rbac.php',
],
]
]
]
...
]
测试
将配置添加到您的后端/前端config/test.php
'components' => [
urlManager' => [
'showScriptName' => true,
],
'db' => [
'class' => 'yii\db\Connection',
'dsn' => 'pgsql:host=localhost;port=5432;dbname=secondday',
'username' => 'postgres',
'password' => 'postgres',
'charset' => 'utf8',
],
],
要访问RBAC,请转到/rbac/index
从终端执行以下操作
cd vendor/esempla/yii2-rbac &&
php ../../../vendor/bin/codecept run unit