对于一个网站来说,访问权限控制包含2部分,
1:控制是否要用户登录,才可以访问到网站。
(在YII框架里,使用UserIdentity类来用户名,密码方式登录,再通过Yii::app()->user->login(UserIdentity实例)/logout()方法来登录和退出)
2:控制登录后的用户,符合哪些条件才能访问某些控制器或者某些方法。
(简单的访问控制过滤可以重载CController::filters 方法,这种方式基于用户名,客户IP地址,和访问类型)
public function filters()
{
return array(
‘accessControl‘,//这里是给filter命名,取个自己认识的名字
);
}
//之后,设置的accessControl这个过滤器将作用于该controller类里的每个public function action****
过滤器的具体授权规则通过重载CController::accessRules方法来指定
public function accessRules() { return array( array(‘deny‘, ‘actions‘=>array(‘create‘, ‘edit‘), ‘users‘=>array(‘?‘), ), array(‘allow‘, ‘actions‘=>array(‘delete‘), ‘roles‘=>array(‘admin‘),//这里通过roles角色来控制用户是否可以访问actionDelete,使用到基于角色的权限管理技术 ), array(‘deny‘, ‘actions‘=>array(‘delete‘), ‘users‘=>array(‘*‘), ), ); }
时间: 2024-10-05 03:25:22