PHP code example of kak / rbac
1. Go to this page and download the library: Download kak/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');
/* Start to develop here. Best regards https://php-download.com/ */
kak / rbac example snippets
interface PermissionConst
{
const
ItemView = 'ItemView',
ItemUpdate = 'ItemUpdate',
ItemCreate = 'ItemCreate',
ItemDelete = 'ItemDelete',
UpdateOwn = 'UpdateOwn',
DeleteOwn = 'DeleteOwn',
AuthorRule = 'AuthorRule';
}
public function behaviors()
{
return [
'access' => [
'class' => yii\filters\AccessControl::className(),
'rules' => [
[
'actions' => ['index', 'create'],
'allow' => true,
'roles' => [User::ROLE_ADMIN,User::ROLE_MANAGER],
],[
'actions' => ['update'],
'allow' => true,
'roles' => [User::ROLE_ADMIN, User::ROLE_MANAGER ],
],[
'actions' => ['delete'],
'allow' => true,
'roles' => [User::ROLE_ADMIN],
],[
'actions' => ['about'],
'allow' => true,
'roles' => ["?" , "@"],
]
],
],
];
}
public function behaviors()
{
return [
'access' => [
'class' => AccessControl::className(),
'rules' => [
[
'actions' => ['index', 'create'],
'allow' => true,
'roles' => ['@'],
],[
'class' => 'kak\rbac\rules\ContextAccessRule',
'modelClass' => 'app\models\Stream',
'actions' => ['update'],
'roles' => [PermissionConst::UpdateOwn],
],[
'class' => 'kak\rbac\rules\ContextAccessRule',
'modelClass' => 'app\models\Stream',
'actions' => ['delete'],
'roles' => [PermissionConst::DeleteOwn],
]
],
],
];
}
$isAccess = Yii::$app->user->can(PermissionConst::ItemCreate)
&& Yii::$app->user->can(User::ROLE_ADMIN);
php composer.phar
$config['modules']['rbac'] = [
'class' => 'kak\rbac\Module',
// set custom Layout
'mainLayout' => '@app/modules/dashboard/views/layouts/main.php',
'layout' => 'main',
'userAttributes' => [
'username',
'email'
]
// desable check rbac - default true
'checkAccessPermissionAdministrateRbac' => false
];