PHP code example of m00nk / yii2-rbac

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'
		]
	],

];

'rule' => function($params){ return app\models\Post::mayEditPost($params["id"]); },

// проверяем, может ли юзер создавать посты
if(\Yii::$app->user->can('permCreatePost')) ...

// проверяем, может ли юзер редактировать текущий пост
// обратите внимание, что проверяется именно permUpdatePost, а не permUpdateOwnPost
if(\Yii::$app->user->can('permUpdatePost', ['id' => $post->id])) ...


php composer.phar