喜的朋友,
我有一些accessRules问题。
我的目的是检查相关网页登录。
我写了一个控制器accessRules,说AccountsController为:
public function filters() {
return array(
'accessControl', // perform access control for CRUD operations
);
}
public function accessRules() {
return array(
array('allow', // allow all users to perform 'index' and 'view' actions
'actions' => array('index', 'forgotpassword', 'changepassword', 'register',
'captcha', 'login', 'confirmindividualuser',
'plans', 'confirmmerge', 'accountmerged', 'plandetails', 'individualaccount', 'registrationsuccess',
'forgotpasswordsuccess', 'individualprofile', 'invalid', 'company', 'companyprofile', 'logout'),
'users' => array('*'),
),
array('allow', // allow authenticated user to perform 'create' and 'update' actions
'actions' => array('companyprofilesuccess','changepasswordsuccess'),
'users' => array('@'),
),
array('allow', // allow admin user to perform 'admin' and 'delete' actions
'actions' => array('admin', 'delete'),
'users' => array('admin'),
),
array('deny', // deny all users
'users' => array('*'),
),
);
}
一旦登录我要重定向到另一种方法是在SurveyController。
所以我写了:
/**
* @return array action filters
*/
public function filters() {
return array(
'accessControl', // perform access control for CRUD operations
);
}
/**
* Specifies the access control rules.
* This method is used by the 'accessControl' filter.
* @return array access control rules
*/
public function accessRules() {
return array(
array('allow', // allow all users to perform 'index' and 'view' actions
'actions' => array(),
'users' => array('*'),
),
array('allow', // allow authenticated user to perform 'create' and 'update' actions
'actions' => array('index', 'main', 'contacts', 'commercial', 'documents',
'form', 'savequestions', 'formaddsection', 'formaddquestion',
'formeditquestion', 'formdeletesection', 'formdeletequestion',
'picksection', 'pickquestion', 'preview', 'send', 'createlink'),
'users' => array('@'),
),
array('allow', // allow admin user to perform 'admin' and 'delete' actions
'actions' => array('admin', 'delete'),
'users' => array('admin'),
),
array('deny', // deny all users
'users' => array('*'),
),
);
}
此外,我补充的loginUrl在配置文件(main.php)
'user' => array(
// enable cookie-based authentication
'allowAutoLogin' => true,
'loginUrl'=>array('accounts/login'),
),
但我的问题是当我在SurveyController,仍表现出不检查用户的登录页面的浏览器类型的方法。请给我一个解决方案…
这也许是因为你有一个空的“行动”的第一条规则:
于是,我就
public function accessRules() {
return array(
array('allow', // allow all users to perform 'index' and 'view' actions
'actions' => array('invalid'),
'users' => array('*'),
),
array('allow', // allow authenticated user to perform 'create' and 'update' actions
'actions' => array('index','main','contacts','commercial','documents','form','savequestions','formaddsection','formaddquestion','formeditquestion','formdeletesection','formdeletequestion','picksection','pickquestion','preview','send','createlink'),
'users' => array('@'),
),
array('allow', // allow admin user to perform 'admin' and 'delete' actions
'actions' => array('invalid2'),
'users' => array('admin'),
),
array('deny', // deny all users
'users' => array('*'),
),
);
}
但我得到了错误像“
页面不能正确重定向
Firefox已经检测到该服务器是一个永远无法完成的方式,将这个地址的请求重定向。
有时会造成这个问题可以通过禁用或拒绝接受
饼干。
“
我也删除Cookie的。仍然得到了类似的问题。请帮助我。
在此先感谢…