Авторизация с использованием ролей Yii

После того, как опять же - прочитали документацию - благо есть на русском
можно ещё ознакомиться(и это полезно) с данными творениями = http://www.vr-online.ru/content/yii-php-...
- можем конкретизировать наш опыт -
для начала добавляем в components (подраздел массива, возвращающего конфигурацию приложения) что-то вроде:

return array(
    'components'=>array(
        'db'=>array(
            'class'=>'CDbConnection',
            'connectionString'=>'sqlite:path/to/file.db',
        ),
        'authManager'=>array(
            'class'=>'CDbAuthManager',
            'connectionID'=>'db',
        ),
    ),
);

далее судя по всему надо так или иначе создать таблицы, которые использует компонент authManager

Затем напишем отдельный контроллер (как только роли "заработают" сделаем его доступным искл. администратору),
который (одно из его действий) будет выстраивать иерархию элементов авторизации ролей/задач/операций -
запускать это действие нужно только один раз - после каждого изменения его исходного кода.

(Здесь приводим пример действия\ этого контроллера) =

Как назначать роль -
будем назначать при каждом запуске=
используя родительский контроллер для всех контроллеров нашего приложения:

<?php

/**
этот класс призван стать родительским для всех 
контороллеров наешго приложения
 */
class ParentController extends CController
{
    // блок параметров, которые мы возьмём из Yii::app()->
    // в методу init данного контроллера
    protected $_authManager;
    protected $_request;
    protected $_session;
    protected $_twig;
    protected $_user;

    public $breadcrumbs = array();  // это необходимо (как стимул__)

    public function __construct($id, $module = null)
    {
        parent::__construct($id, $module);

        $this->_authManager = Yii::app()->authManager;
        $this->_request = Yii::app()->request;
        $this->_session = Yii::app()->session;
      //  $this->_twig = Yii::app()->viewRenderer->getTwig();
        $this->_user = Yii::app()->user;
    }   

   public function init()
    {
        /*ЗДЕСЬ МЫ БУДЕМ ПРИ КАЖДОМ ОБРАЩЕНИИ ПОЛЬЗОВАТЕЛЯ
        НАЗНАЧАТЬ ЕМУ роль - информация берётся из текущей сессии*/

        // проверяем залогинился ли вообще пользователь
        if (!$this->_user->isGuest) {
            // если да - читаем
            $role = $this->_user->getState('role');

            if ($role) {
                if ($this->_authManager->getAuthItem($role)) {
                    $this->_authManager->assign($role, $this->_user->id);
                } else {
                    // TODO: Log this. типа  - "отметим этот факт"
                }
            }
        }
    }

    /*подключаем фильтр проверяющий права доступа*/
    public function filters()
    {
        return array(
            'accessControl',
        );
    }

   

}

проверять можно как-то так:

if (!Yii::app()->user->checkAccess('createUser')) {
    throw new CHttpException(403, 'Forbidden');
}
//остальной код…