1. Go to this page and download the library: Download m00nk/yii2-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/ */
m00nk / yii2-rbac example snippets
'components' => [
...
'authManager' => [
'class' => 'm00nk\rbac\AuthManager',
'authFile' => '@app/config/auth.php' // путь к файлу с описанием иерархии прав доступа
],
...
],
return [
// PERMISSIONS
//-------------------------
'permCreatePost' => [
'type' => 0, // permission
'description' => 'право на создание поста в блоге'
],
'permUpdatePost' => [
'type' => 0,
'description' => 'право на редактирование поста в блоге'
],
// TASKS
//-------------------------
'permUpdateOwnPost' => [
'type' => 1, // task
'description' => 'право на редактирование СЫВОЕГО поста в блоге'
'rule' => 'return app\\models\\Post::mayEditPost($params["id"]);',
'children' => [
'permUpdatePost'
]
],
// ROLES
//-------------------------
'author' => [
'type' => 2, // role
'description' => 'автор - может только создавать посты и редактировать только свои'
'children' => [
'permCreatePost',
'permUpdateOwnPost'
]
],
'moderator' => [
'type' => 2, // role
'description' => 'модератор - может только редактировать посты, зато чьи угодно'
'children' => [
'permUpdatePost'
]
],
];
// проверяем, может ли юзер создавать посты
if(\Yii::$app->user->can('permCreatePost')) ...
// проверяем, может ли юзер редактировать текущий пост
// обратите внимание, что проверяется именно permUpdatePost, а не permUpdateOwnPost
if(\Yii::$app->user->can('permUpdatePost', ['id' => $post->id])) ...
php composer.phar
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.