PHP code example of developeruz / yii2-db-rbac
1. Go to this page and download the library: Download developeruz/yii2-db-rbac library . Choose the download type require .
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once ('vendor/autoload.php' );
developeruz / yii2-db-rbac example snippets
'components' => [
'authManager' => [
'class' => 'yii\rbac\DbManager' ,
],
...
]
'modules' => [
'permit' => [
'class' => 'developeruz\db_rbac\Yii2DbRbac' ,
],
],
'modules' => [
'permit' => [
'class' => 'developeruz\db_rbac\Yii2DbRbac' ,
'layout' => '//admin'
],
],
'<module:\w+>/<controller:\w+>/<action:(\w|-)+>' => '<module>/<controller>/<action>' ,
'<module:\w+>/<controller:\w+>/<action:(\w|-)+>/<id:\d+>' => '<module>/<controller>/<action>' ,
'modules' => [
'permit' => [
'class' => 'app\modules\db_rbac\Yii2DbRbac' ,
'params' => [
'userClass' => 'app\models\User'
]
],
],
use developeruz \db_rbac \interfaces \UserRbacInterface ;
class User extends ActiveRecord implements IdentityInterface , UserRbacInterface
{
...
public function getUserName ()
{
return $this ->username;
}
}
echo GridView::widget([
'dataProvider' => $dataProvider,
'columns' => [
['class' => 'yii\grid\SerialColumn' ],
'id' ,
'username' ,
'email:email' ,
['class' => 'yii\grid\ActionColumn' ,
'template' => '{view} {update} {permit} {delete}' ,
'buttons' =>
[
'permit' => function ($url, $model) {
return Html::a('<span class="glyphicon glyphicon-wrench"></span>' , Url::to(['/permit/user/view' , 'id' => $model->id]), [
'title' => Yii::t('yii' , 'Change user role' )
]); },
]
],
],
]);
$userRole = Yii::$app->authManager->getRole('name_of_role' );
Yii::$app->authManager->assign($userRole, $user->getId());
Yii::$app->user->can($permissionName);
'modules' => [
'permit' => [
'class' => 'app\modules\db_rbac\Yii2DbRbac' ,
'params' => [
'userClass' => 'app\models\User' ,
'accessRoles' => ['admin' ]
]
],
],
use developeruz \db_rbac \behaviors \AccessBehavior ;
'as AccessBehavior' => [
'class' => \developeruz\db_rbac\behaviors\AccessBehavior::className(),
]
'as AccessBehavior' => [
'class' => \developeruz\db_rbac\behaviors\AccessBehavior::className(),
'redirect_url' => '/forbidden' ,
'login_url' => Yii::$app->user->loginUrl
]
'as AccessBehavior' => [
'class' => \developeruz\db_rbac\behaviors\AccessBehavior::className(),
'rules' =>
['site' =>
[
[
'actions' => ['login' , 'index' ],
'allow' => true ,
],
[
'actions' => ['about' ],
'allow' => true ,
'roles' => ['admin' ],
],
]
]
]
'as AccessBehavior' => [
'class' => \developeruz\db_rbac\behaviors\AccessBehavior::className(),
'protect' => ['admin' , 'user' , 'site/about' ],
'rules' => [
'user' => [['actions' => ['login' ], 'allow' => true ],
['actions' => ['logout' ], 'roles' => ['@' ], 'allow' => true ]]
]
],
bash
$ php composer.phar