Yii — можно ли создать такой фильтр который бы запретил все действия кроме разрешенных?

Здравствуйте. Yii-зеры.



Как вы знаете по гаиду, что бы запретить определенные действия контроллера требуется определить запрещающее правило в фильтре:

return array(<br>
    // … разные правила …<br>
    // это правило полностью запрещает действие 'delete'<br>
    array('deny',<br>
        'actions'=>array('delete'),<br>
    ),<br>
);<br>


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



Вопрос: есть ли какие-нибудь «официальные средства» подобного запрета, в моем понимании, что-то вроди этого:

return array(<br>
    // … разные правила …<br>
    // это правило полностью запрещает все действия<br>
    array('deny',<br>
        'actions'=>'*',<br>
    ),<br>
);<br>


Если нет, то есть ли какие-нибудь готовые расширения класса системы фильтрации?



Судя по коду фреймворка я вроде не нашел встроенной функциональности, но может быть я чего-нибудь упустил?



Спасибо за внимание.
  • Вопрос задан
  • 4411 просмотров
Решения вопроса 1
wartur
@wartur Автор вопроса
Ох господа, как всегда помогает разговор с уткой =).

 *   // optional, list of action IDs (case insensitive) that this rule applies to
 *   // if not specified, rule applies to all actions
 *   'actions'=>array('edit', 'delete'),


Всем спасибо. Удачи. Надеюсь кому помог.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
samizdam
@samizdam
RBAC. Использую в виде модуля Rights, там есть неплохой для среднего размера приложений GUI.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы