myzero1/yii2-rbacp

为yii2提供简单的验证码。只需在配置文件中添加模块并使用小部件即可。

安装次数: 286

依赖: 0

建议者: 0

安全性: 0

星标: 1

关注者: 2

分支: 0

开放问题: 0

类型:yii2模块

1.1.6 2020-12-27 08:03 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); 来设置角色。