YII设置用户访问过滤
设置用户访问过滤
1、哪个控制器设置访问过滤,就在哪个控制器中添加如下代码
class XxxController extends Controller
{
//当前控制器是否使用过滤功能
public function filters()
{
return array(
"accessControl"//针对当前控制器的所有方法起作用
"accessControl+方法名"//只针对当前控制器的指定方法起作用
"accessControl+方法名,方法名,方法名..."//只针对当前控制器的指定方法起作用
"accessControl-方法名"//对所有方法起作用,除了这个指定的方法
"accessControl-方法名,方法名,方法名..."//对所有方法起作用,除了这个指定的方法
);
}
//设置可以被访问的方法
public function accessRules()
{
return array(
array(
"allow",//允许访问
"actions"=>array("方法名","方法名","方法名"...),
"users"=>array("@")//只有登陆用户可以访问
),
array(
"allow",//允许访问
"actions"=>array("方法名","方法名","方法名"...),
"users"=>array("admin","hello","test")//只允许指定用户来访问
),
array(
"allow",//允许访问
"actions"=>array("方法名","方法名","方法名"...),
"users"=>array("?")//只允许匿名用户来访问
),
array(
"deny",//禁止访问
"users"=>array("*")//所有用户
)
);
}
}
因为没有权限访问指定页面,所以程序会自动跳转到系统指定的登陆页面
2、设置系统默认指定的登陆页面(打开main.php全局配置文件)
'components'=>array(
'user'=>array(
// enable cookie-based authentication
'allowAutoLogin'=>true,
"loginUrl"=>__APP__."/index.php/Login/index",//指定系统的默认登陆页面
),
)