首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >访问控制列表或基于角色的访问控制

访问控制列表或基于角色的访问控制
EN

Stack Overflow用户
提问于 2014-09-29 10:42:14
回答 2查看 2.2K关注 0票数 2

我想知道什么是最好的方法,如果有一个简单的例子,因为我不能指定巫婆的巫婆

代码语言:javascript
运行
复制
public function accessRules()
{
    return array(
        array('allow',  // allow authenticated  to perform 'index' and 'view' actions
            'actions'=>array('index','view'),
            'users'=>array('@'),
        ),
        array('allow', // allow authenticated user to perform 'create' and 'update' actions
            'actions'=>array('create','update'),
            '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('*'),
        ),
    );
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-09-29 11:46:55

您可以根据用户角色指定,比如您想要的编辑器,只显示编辑用户特性,对于发布者,您只能提供对阻塞和取消阻塞用户的访问,等等。我们在我们的项目中使用了下面的代码

代码语言:javascript
运行
复制
public function accessRules()
    {
        if(isset(Yii::app()->user->role) && Yii::app()->user->role == "superadmin"){
            $arr = array('create','update','admin','delete','block','help','download','forgot');
        } elseif(isset(Yii::app()->user->role) && Yii::app()->user->role == "admin") {
            $arr = array('help','download','forgot');
        } elseif(isset(Yii::app()->user->role) && Yii::app()->user->role == "editor") {
            $arr = array('update');
        } elseif(isset(Yii::app()->user->role) && Yii::app()->user->role == "publisher") {
            $arr = array('block');
        } else {
            $arr = array('');
        }
        return array(
            array('allow', // allow admin user to perform 'admin' and 'delete' actions
                'actions'=>$arr,
                'users'=>array('@'),
            ),
            array('deny',  // deny all users
                'users'=>array('*'),
            ),
        );
    }

像wise一样,您希望只向注册用户显示页面,并为注册用户和来宾用户显示一些页面。我们可以在accessRules()函数中执行同样的操作

允许所有用户

代码语言:javascript
运行
复制
array('allow', 
            'actions'=>array('create','update'),
            'users'=>array('*'),
        ),

只允许注册用户

代码语言:javascript
运行
复制
array('allow', 
            'actions'=>array('create','update'),
            'users'=>array('@'),
        ),

根据用户名创建限制

代码语言:javascript
运行
复制
array('allow',
            'actions'=>array('create','update'),
            'users'=>array('username1','username2'),
        ),
票数 3
EN

Stack Overflow用户

发布于 2014-09-29 14:15:52

试试这个分机,也许这能帮到你-

http://www.yiiframework.com/extension/rbam

或者从- Yii framework : role based access control那里得到一个想法

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26097988

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档