控制器的filter 和accessrules 配合来控制权限是不错 怎么改装下来支持ajax 呢?

如果用户session 过期 提交评论 而postController.php 中的actrionCreate方法要求用户必须登入

因为我是ajax 提交

能不能 “验证后 没有access 权限时, postController。php就指定到一个函数来处理ajax结果 ”

而不是redirect到login 页面????

如果是通过filter判断权限,只需要在相应的filter里判断一下提交类型,如果是ajax的提交类型,则不跳转,返回一个特殊的标志来代表未登录。前端则对返回结果进行判断,如果返回是未登录的标志,则弹出登陆框。后面就按操作流程走了。

public function filters()

{		


	return array(


		'accessControl', // perform access control for CRUD operations


	);


}

能拿到filter 还能写逻辑么 ???

重构CAccessControlFilter的accessDenied方法

protected function accessDenied($user,$message,$errorCode)


{


	//只有请求为非ajax请求的时,才能跳转到登录页面


	if(	$user->getIsGuest() &&


		!Yii::app()->request->isAjaxRequest &&


		(!Yii::app()->getController()||!Yii::app()->getController()->isAjaxAction())


	)


		$user->loginRequired();


	else


		throw new CException($message,$errorCode);


}

多谢