Yii:restfullyii在restEvents上的扩展accessRules

时间:2014-08-23 13:31:07

标签: php rest yii

他在那里,

我现在已经使用restfullyii扩展了一段时间了,一切都很顺利。 (http://www.yiiframework.com/extension/restfullyii/

我只是想知道以下是否可行:

  • 允许管理员执行所有REST.GET,REST.PUT,REST.POST和REST.DELETE
  • 普通用户只能在restEvents中使用自己定义的用户。

accessRules看起来像这样:

public function accessRules()
{
    return array(
        array('allow', 
            'actions'=>array('REST.GET.SPECIAL'),
            'users'=>array('@'),
        ),
        array('allow', // allow admin user to perform 'admin' actions
            'actions'=>array('REST.GET', 'REST.PUT', 'REST.POST', 'REST.DELETE'),
            'users'=>Yii::app()->getModule('user')->getAdmins(),
        ),
        array('deny',  // deny all users
            'users'=>array('*'),
        ),
    );
}

restEvents看起来像这样:

public function restEvents()
{ 
    $this->onRest('req.get.special.render', function() {
        /// blabla code
    });
}

我似乎无法在文档中找到它。

非常感谢!

1 个答案:

答案 0 :(得分:0)

我想出了以下内容:

 /**
 * req.auth.uri
 *
 * return true to allow access to a given uri / http verb;
 * false to deny access to a given uri / http verb;
 *
 * @return (bool) default is true
 */ 
$this->onRest(req.auth.uri, function($uri, $verb) {
    return true;
});

这将允许您阻止/允许控制器中的特定用户。只需将其放在restEvents()方法中即可。