myzero1/yii2-rbacp
为yii2提供简单的验证码。只需在配置文件中添加模块并使用小部件即可。
1.1.6
2020-12-27 08:03 UTC
Requires
- yiisoft/yii2: ~2.0
This package is not auto-updated.
Last update: 2024-09-16 03:44:00 UTC
README
访问模块,包括功能访问和数据访问。
显示时间
安装
安装此模块的最佳方式是通过 composer。
运行以下命令:
php composer.phar require myzero1/yii2-rbacp:1.*
或者将以下内容添加到你的 composer.json
文件的 require 部分:
"myzero1/yii2-rbacp": "~1"
设置
扩展安装后,只需按照以下方式修改你的应用程序配置:
return [ ...... 'bootstrap' => [ ...... 'rbacp' => [ 'class' => '\myzero1\rbacp\Bootstrap', // for rbacp function 'params' => [ 'urlManager' => [ 'rules' => [ // 'rate/area/index' => 'rate/jf-core-area/index', ], ], 'rbacp' => [ 'model' => 'rbac',//everyone,logined,rbac,rbacp 'develop' => 1,//The id of the developer 'rbacpTester' => 2,//The id of the tester of rbacp 'denyCallbackUri' => '/rbacp/default/rbacp403', 'loginUri' => '/site/login', // 'beforeCheckActionFunc' => function(){ // $url = \yii\helpers\Url::to(['/site/error403','isLocked'=>1], true); // $uri = '/site/error403'; // if ( strpos($_SERVER['REQUEST_URI'], $uri) === false) { // if (!\Yii::$app->user->isGuest && Yii::$app->user->identity->isLocked) { // \Yii::$app // ->getResponse() // ->redirect($url) // ->send(); // } // } // }, // 'afterCheckActionFunc' => function(){}, 'accessRules' => [ 'excludeUri' => [ '/rbacp/default/index', '/rbacp/default/rbacp403', '/site/captcha', '/site/login-ajax', ], 'developUri' => [ '/rbacp/default/migrate-up', '/rbacp/default/migrate-down', ], 'loginedExcludeUri' => [ '/site/logout', '/site/index', '/adminlteiframe/layout', ], ], ], ], ], ...... ], 'modules' => [ ...... 'rbacp' => [ // you should seting it,when you are developing. 'class' => '\myzero1\rbacp\Module', 'theme' => 'adminlteiframe', // adminlteiframe, adminlte ], ...... ], ...... ];
使用方法
您可以通过以下URL访问Demo:
http://localhost/path/to/index.php?r=rbacp/default/index
或者如果您已启用美观的URL,您可以使用以下URL:
http://localhost/path/to/index.php/rbacp/default/index
使用rbacp的rbac
Setting 'model' => 'rbac',//everyone,logined,rbac,rbacp
everyone: veryone can access.
logined: Only the logined can access.
rbac: Control access by rbac,you should to setting more.
Add tables by "/rbacp/default/migrate-up".
Add privilege by "rbacp-privilege/index".
Add role by "rbacp/rbacp-role/index".
Assign role by "rbacp/rbacp-user-view/index".
The rbac it working,now.
使用rbacp的rbacp
Setting 'model' => 'rbacp',//everyone,logined,rbac,rbacp
rbacp: Control access by rbacp,you should to setting more.
Add tables by "/rbacp/default/migrate-up".
Add privilege by "rbacp-privilege/index".
Add policy by "rbacp/rbacp-policy/index".//to control the access of data
Add role by "rbacp/rbacp-role/index".
Assign role by "rbacp/rbacp-user-view/index".
You can use rbacp as flow.
Use it by andFilterWhere
RbacpRole::find()->andFilterWhere([
'<>',
'rbacp_role.id',
'rbacp_policy_sku=rbacp|rbacp-role|index|rbacpPolicy|read|角色列表'// to use rbacp, set policy_sku.
])
Use it by GridView::widget
GridView::widget([
'dataProvider' => $dataProvider,
'options' => [
'rbacp_policy_sku' => 'rbacp|rbacp-role|index|rbacpPolicy|list|角色列表'// to use rbacp, set policy_sku.
],
'columns' => [...],
]);
Use it by BaseHtml::tag
yii\helpers\BaseHtml::tag('a', '创建', array(
'href' => yii\helpers\Url::toRoute(['create']),
'class' => 'btn btn-success btn-sm',
'rbacp_policy_sku' => 'rbacp|rbacp-role|index|rbacpPolicy|tag|角色列表创建按钮'// to use rbacp, set policy_sku.
));
设置角色ID
\myzero1\rbacp\components\Rbac::setRoleId($roleId);
通过用户ID设置和获取角色ID
\myzero1\rbacp\components\Rbac::getRoleByUid($userId);
注意:
rbacp模块会默认调用 \myzero1\rbacp\components\Rbac::getRoleByUid(\Yii::$app->user->id);
来设置角色。