RBAC: как получить свойство 'description'

Общие вопросы по использованию фреймворка. Если не знаете как что-то сделать и это про Yii, вам сюда.
Закрыто
Аватара пользователя
XAKEPEHOK
Сообщения: 38
Зарегистрирован: 2012.08.16, 13:11
Откуда: КМВ
Контактная информация:

RBAC: как получить свойство 'description'

Сообщение XAKEPEHOK »

Подскажите пожалуйста, у меня auth.php имеет следующий код

Код: Выделить всё

<?php
return array(
    'guest' => array(
        'type' => CAuthItem::TYPE_ROLE,
        'description' => 'Гость',
        'bizRule' => null,
        'data' => null
    ),
    'user' => array(
        'type' => CAuthItem::TYPE_ROLE,
        'description' => 'Пользователь',
        'children' => array(
            'guest', 
        ),
        'bizRule' => null,
        'data' => null
    ),
    'admin' => array(
        'type' => CAuthItem::TYPE_ROLE,
        'description' => 'Администратор',
        'children' => array(
            'user',
        ),
        'bizRule' => null,
        'data' => null
    ),
);
 
Вопрос: как мне в коде получать свойство 'description', соответствующее роли пользователя?

WebUser.php

Код: Выделить всё

class WebUser extends CWebUser {

    private $_model;

    function getGroupID(){
        $user = $this->loadUser(Yii::app()->user->id);
        return $user->groupID;
    }

    function getRole() {       
        if ($this->isGuest) return 'guest';

        $role = $this->getGroupID();
        if ($role == 1) return 'user';
        if ($role == 2) return 'administrator';
    }

    // Load user model.
    protected function loadUser($id=null)
    {
        if($this->_model===null)
        {
            if($id!==null)
                $this->_model=Users::model()->findByPk($id);
        }
        return $this->_model;
    }

}
?>
В любом представлении я использую просто

Код: Выделить всё

echo Yii::app()->user->role;
Для того, чтобы вывести description, я так понял нужно использовать Yii::app()->authManager, но я ним я не разобрался. Подскажите пожалуйста
Большинство неправильных шагов совершаются стоя на месте
Аватара пользователя
TranceSmile
Сообщения: 562
Зарегистрирован: 2011.06.27, 19:04
Откуда: Украина
Контактная информация:

Re: RBAC: как получить свойство 'description'

Сообщение TranceSmile »

смотрите в обсуждении к рецепту RBAC я описал как это сделать
Изображение
Аватара пользователя
XAKEPEHOK
Сообщения: 38
Зарегистрирован: 2012.08.16, 13:11
Откуда: КМВ
Контактная информация:

Re: RBAC: как получить свойство 'description'

Сообщение XAKEPEHOK »

Спасибо, сделал так:

Код: Выделить всё

$roleList = CHtml::listData(Yii::app()->authManager->AuthItems,'name','description');
echo $roleList[Yii::app()->user->role]; 
Большинство неправильных шагов совершаются стоя на месте
Закрыто