2014-10-28 2 views
0

Я хочу, чтобы применить фильтр AccessControl все действия в контроллере кроме двух,Yii управления 1.1.14 доступа задать действия

так, если я применить [-], как написано в коде, будет что будет хорошо .?

public function filters(){ 
    return array(
     'accessControl - actionId1, actionId2', 
    ); 
} 

Или есть некоторая ошибка в коде, и я делаю это каким-то другим способом?

+0

Не используйте Yii 1.1.14, потому что внутри есть ошибка безопасности. http://www.yiiframework.com/news/78/yii-1-1-15-is-released-security-fix/ Обновите свою Yii Framework до 1.1.15! – lin

+0

@lin Я не пользуюсь виджетами CDetailView .. и я не планирую делать это в ближайшем будущем, не делает ли это мой iii уязвимым для этой проблемы безопасности? – Himanshu97

+0

№. С тобой все будет хорошо. Но вам нужно помнить об этом, когда ваше программное обеспечение работает на 1.1.14. – lin

ответ

0

Это будет работать, но вы должны использовать

array(
'allow', 
'actions'=>array('actionId1', 'actionId2'), 
'users'=>array('*'), 
) 

в acessRules() для действий, для которых не требуется какое-либо правило

Примечание: -'users'=>array('*') обеспечивает доступ к ним действия для всех пользователей

+0

'public function filters() { \t \t return array ( 'application.filters.EnsureLiveUser - index, login, logout, upload); } '} Я создал класс и сделал это, должен ли я написать то, что предложил в методе accessRules() контроллера или в методе filter(). @Let me see – Himanshu97

+0

в accessRules() –

+0

accessRules() специально используется accessControl фильтр. поэтому любой пользовательский класс фильтра не будет использовать этот метод, я сделал это как и предложил и пришел к такому выводу после долгого отладочного сеанса. @let me see – Himanshu97

Смежные вопросы