2017 © Pedro Peláez
 

yii2-extension yii2-rbac

Silmple RBAC (like in Yii)

image

m00nk/yii2-rbac

Silmple RBAC (like in Yii)

  • Friday, August 7, 2015
  • by m00nk
  • Repository
  • 1 Watchers
  • 0 Stars
  • 34 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 9 Versions
  • 0 % Grown

The README.md

Упрощенная версия RBAC, основанная на файлах (аналог файлового RBAC из Yii)

Мне не понравилась стандартная реализация RBAC в Yii2, слишком уж они все усложнили. В частности, для не очень больших проектов, где прав доступа не очень много и они в процессе жизни приложения практически не меняются, этот подход на мой взгляд слишком громоздок. Поэтому я решил запилить реализацию RBAC на основе файлов, похожую на ту, что была в первом Yii., (*1)

Этот код служит только для проверки прав доступа. Здесь нет возможности программно создавать иерархию прав и сохранять ее. Иерархия описывается вручную в файле настроек., (*2)

Инсталляция

Устанавливается с посощью composer., (*3)

Для установки выполняем команду, (*4)

php composer.phar require --prefer-dist m00nk/yii2-rbac  "*"

или добавляем, (*5)

"m00nk/yii2-rbac": "*"

в разделе require вашего composer.json файла., (*6)

Настройка

'components' => [
    ...
    'authManager' => [
          'class' => 'm00nk\rbac\AuthManager',
          'authFile' => '@app/config/auth.php' // путь к файлу с описанием иерархии прав доступа
        ],
        ...
],

Пример файла прав доступа (@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'
        ]
    ],

];

Начиная с версии 2.1.0 можно в качестве правил использовать инлайн-функции:, (*7)

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

Проверка прав в коде

Проверка осуществлается стандартным способом:, (*8)

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

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

The Versions

07/08 2015

dev-master

9999999-dev

Silmple RBAC (like in Yii)

  Sources   Download

MIT

The Requires

 

by Dmitrij Sheremetjev

07/08 2015

2.1.1

2.1.1.0

Silmple RBAC (like in Yii)

  Sources   Download

MIT

The Requires

 

by Dmitrij Sheremetjev

07/08 2015

2.1.0

2.1.0.0

Silmple RBAC (like in Yii)

  Sources   Download

MIT

The Requires

 

by Dmitrij Sheremetjev

01/08 2015

2.0.0

2.0.0.0

Silmple RBAC (like in Yii)

  Sources   Download

MIT

The Requires

 

by Dmitrij Sheremetjev

01/07 2015

1.2.1

1.2.1.0

Silmple RBAC (like in Yii)

  Sources   Download

MIT

The Requires

 

by Dmitrij Sheremetjev

30/06 2015

1.2.0

1.2.0.0

Silmple RBAC (like in Yii)

  Sources   Download

MIT

The Requires

 

by Dmitrij Sheremetjev

07/05 2015

1.1.0

1.1.0.0

Silmple RBAC (like in Yii)

  Sources   Download

MIT

The Requires

 

by Dmitrij Sheremetjev

06/05 2015

1.0.2

1.0.2.0

Silmple RBAC (like in Yii)

  Sources   Download

MIT

The Requires

 

by Dmitrij Sheremetjev

06/05 2015

1.0.1

1.0.1.0

Silmple RBAC (like in Yii)

  Sources   Download

MIT

The Requires

 

by Dmitrij Sheremetjev