PHP code example of carono / yii2-rbac

1. Go to this page and download the library: Download carono/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/ */

    

carono / yii2-rbac example snippets


'components' => [ 
       'authManager' => [ 
            // Настраиваем менеджер, чтобы можно было в консоли работать с правами
            'class'        => 'yii\rbac\DbManager',
            'defaultRoles' => ['guest', 'user'],
        ],
],        
'controllerMap' => [
        'rbac' => [
            'class'       => 'carono\yii2rbac\RbacController',
            'roles'       => [
                'guest'    => null,
                'user'     => null,
                'manager'  => 'user',
                'director' => ['parent' => 'manager', 'description' => 'Директор'], // Наследование директора от менеджера
                'root'     => null
            ],
            'permissions' => [
                '*:*:*'                => ['root'], // Для рута доступны все контроллеры
                'Basic:Site:*'         => ['guest'], // Для гостя разрешены все actions у SiteController
                'Basic:Director:*'     => ['director'],
                'updater_perm'         => ['director'], // Простые доступы тоже можно создавать как обычно
                'Basic:Manager:*'      => ['manager'], // Будет доступно и директору, т.к. наследуется
                'Basic:Director:Index' => ['manager'], // Только один action у DirectorController
                'Ajax:*:*'             => ['user'] // Модуль Ajax, все контроллеры разрешаем авторизованным
            ]
        ],
    ]

  public function behaviors()
    {
        return [
            'access' => [
                'class' => RoleManagerFilter::className(),
            ]
        ];
    }

public function behaviors()
    {
        return [
            'access' => [
                'class' => AccessControl::className(),
                'rules' => [
                    [
                        'allow'         => true,
                        'matchCallback' => function ($rule, $action) {
                            return RoleManager::checkAccess($action);
                        }
                    ],
                ],
            ],
        ];
    }

'controllerMap' => [
        'rbac' => [
            'class'       => 'carono\yii2rbac\RbacController',
            'roles'       => [
                'guest'    => null,
                'user'     => null,
                'manager'  => 'user',
                'director' => ['parent' => 'manager', 'description' => 'Директор'], // Наследование директора от менеджера
                'root'     => null
            ],
            'permissions' => [
                '*:*:*'                 => ['root'], // Для рута доступны все контроллеры как во frontend так и в backend
                'AppFrontend:Site:*'    => ['guest'], // Для гостя разрешены все actions у SiteController во frontend
                'AppBackend:Director:*' => ['director'],
                'AppFrontend:Ajax:*:*'  => ['user'] // Модуль Ajax, все контроллеры разрешаем во frontend
                '*:Site:Index'          => ['guest'] // Разрешаем SiteController->index как во frontend так и backend
            ]
        ],
    ]