yii2.0权限控制 ACF权限

ACF是一种通过yii\filters\AccessControl类来实现的简单授权

有两种角色 ?:未经认证的游客用户

      @:已认证的用户

ACF可同过对角色设置权限控制访问

1)记得引入yii\filters\AccessControl;

use yii\filters\AccessControl;

2)设置behaviors方法

class PostController extends Controller
{
    /**
     * @inheritdoc
     */
    public function behaviors()
    {
        return [
            'verbs' => [
                'class' => VerbFilter::className(),
                'actions' => 
                [
                    'delete' => ['POST'],
                ],
             ],
            'access'=>[
                    'class'=>AccessControl::className(),
                    'rules'=>[
                        [
                            'actions'=>['index','view'],  //赋予权限页面
                            'allow'=>true,     //允许访问
                            'roles'=>['?'],    //角色
                        ],
                        [
                            'actions'=>['creat','view','update'],
                            'allow'=>true,
                            'roles'=>['@'],
                        ],
                    ],

                 ],
        ];
    }

 除了以上基本规则,ACF其他规则

ips:浏览器的IP地址 可使用通配符*,为空则匹配所有用户

verbs:匹配请求方式(GET,POST)

matchCallback:PHP回调,以确定应用该规则

denyCallback:PHP回调,当规则禁止访问时候会调用

[
            'actions'=>['gift'],
            'allow'=>true,
            'matchCallback'=>function($rule,$action){
             return date('d-m')==='11-11';  //只允许11.11号访问
               }

 ]

 

posted @ 2017-02-20 21:06  Young_G  阅读(1006)  评论(0编辑  收藏  举报