当前位置: 网学 > 编程文档 > PHP > 正文

深入解析yii权限分级式访问控制的实现(非RBAC法)

来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 13/06/18
;
else
return $user->role == "管理员";
}

// Load user model.
protected function loadUser($id=null)
{
if($this->_model===null)
{
if($id!==null)
$this->_model=User::model()->findByPk($id);
}
return $this->_model;
}
}
?></strong>

2.在config/main.php找到如下代码,添加标红色的代码。
复制代码 代码如下:
''components''=>array(
''user''=>array(
// enable cookie-based authentication
''allowAutoLogin''=>true,
''class''=>''WebUser'',
),

3.找到需要更改权限的controller类,对accessRules()函数做修改,比如对前文的accessRules()函数做如下修改:
复制代码 代码如下:
public function accessRules() //这里就是访问规则的设置。 {
return array(
array(''allow'', // 允许所有用户执行index,view动作。
''actions''=>array(''index'',''view''),
''users''=>array(''*''), //*号标识所有用户包括注册的、没注册的、一般的、管理员级的
),
array(''allow'', // 只允许经过验证的用户执行create, update动作。
''actions''=>array(''create'',''update''),
''users''=>array(''@''), // @号指所有注册的用户
),
array(''allow'', // 只允许用户名是admin的用户执行admin,delete动作
''actions''=>array(''admin'',''delete''),
''expression''=>''yii::app()->user->isAdmin()'',
//这样只有标识为“管理员”的用户才能访问admin,delete动作
),
array(''deny'', // 拒绝所有的访问。
''users''=>array(''*''),
),
);

工作完成!

网学推荐

免费论文

原创论文

浏览:
设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
湘ICP备09003080号