Yii rbac или yii user

нужен контроль доступа для разных ролей. сделал корявенько по видяшке на основании этого http://yiiframework.ru/doc/cookbook/ru/access.rbac.file

но есть такой подход http://habrahabr.ru/post/177873/

или такой http://habrahabr.ru/post/127052/

вот по второй ссылке вроде интреснее (ну типа создание роли - контейенра ролей).

а вот у меня сейчас по факту проходит такая проверка


if (Yii::app()->user->checkAccess('admin'))

{

    $this->menu = array(

        array('label' => 'List Engine', 'url' => array('index')),

        array('label' => 'Create Engine', 'url' => array('create')),

        array('label' => 'Update Engine', 'url' => array('update', 'id' => $model->e_id)),

        array('label' => 'Delete Engine', 'url' => '#', 'linkOptions' => array('submit' => array('delete', 'id' => $model->e_id), 'confirm' => 'Вы уверены что хотите удалить мотор?')),

        array('label' => 'Manage Engine', 'url' => array('admin')),

    );

}

else if (Yii::app()->user->checkAccess('director'))

{

    $this->menu = array(

        array('label' => 'List Engine', 'url' => array('index')),

        array('label' => 'Manage Engine', 'url' => array('admin')),

    );

}

ну оно вроде и правильно - че хорошего человека по 403 адресу слать то?

и вот checkAccess вроде отрабатывает - значит роли нормально установились?


    public function accessRules()

    {

        return array(

            array('allow', // allow all users to perform 'index' and 'view' actions

                'actions' => array('index', 'view'),

                'roles' => array('@'),

            ),

            array('allow', // allow authenticated user to perform 'create' and 'update' actions

                'actions' => array('index', 'view', 'admin'),

                'roles' => array('director'),

            ),

            array('allow', // allow authenticated user to perform 'create' and 'update' actions

                'actions' => array('create', 'index', 'view', 'update'),

                'roles' => array('master'),

            ),

            array('allow', // allow authenticated user to perform 'create' and 'update' actions

                'actions' => array('create'),

                'roles' => array('electric'),

            ),            

            array('allow', // allow admin user to perform 'admin' and 'delete' actions

                'actions' => array('create', 'admin', 'delete', 'update'),

                // 'users' => array('admin'),

                'roles' => array('admin'),

            ),

            array('deny', // deny all users

                'roles' => array('*'),

            ),

        );

    }

и вот даже если я снимаю у электрика апдейт - то он все равно может делать его. почему? где может быть ошибка?

вот в чем ошибка была

array(‘deny’, // deny all users

            'users' => array('*'),


        ),