Yii框架ACF(accessController)简单权限控制操作示例


Posted in PHP onApril 26, 2019

本文实例讲述了Yii框架ACF(accessController)简单权限控制操作。分享给大家供大家参考,具体如下:

use yii\filters\AccessControl;
class SiteController extends Controller
{
  public function behaviors()
  {
    return [
      'access' =>[
        'class' => AccessControl::className(),
        'rules' => [
          [
            'allow' => true,
            'actions' => ['index', 'view'],
            'roles' => ['?'],
          ],
          [
            'allow' => true,
            'actions' => ['view','index','create','update'],
            'roles' => ['@'],
          ],
[
'actions' => ['special-callback'],
//'only' => ['special-callback'],
'allow' => true,
'matchCallback'=>function($rule,$action){
return date('Y-m-d') === '2017-02-14';//只有2017年2月14号才可以访问
},
'denyCallback'=>function($rule,$action){ //禁止访问的规则
},
'ips'=>[],//允许的ip
'verbs'=>['GET','POST','DELETE'],//请求的方式
],
        ],
      ],
    ];
  }
  // ...
}

访问规则通过如下的上下文参数设置:

actions: 设置哪个动作匹配此规则。

roles: 设定哪个角色匹配此规则。

*: 任何用户,包括匿名和验证通过的用户。

?: 匿名用户。

@: 验证通过的用户。

ips: 设定哪个客户端IP匹配此规则。

verbs: 设定哪种请求类型(例如:GET, POST)匹配此规则。

matchCallback:指定一个PHP回调,以确定应用该规则。

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

public function actionSpecialCallback()
{
  return $this->render('happy-halloween');
}

以上代码可以用来控制博客系统的访客和登录用户的相关权限

希望本文所述对大家基于Yii框架的PHP程序设计有所帮助。

PHP 相关文章推荐
第十一节 重载 [11]
Oct 09 PHP
PHP 和 MySQL 开发的 8 个技巧
Jan 02 PHP
php中cookie的作用域
Mar 27 PHP
超级简单的php+mysql留言本源码
Nov 11 PHP
PHP mcrypt可逆加密算法分析
Jul 19 PHP
深入PHP empty(),isset(),is_null()的实例测试详解
Jun 06 PHP
ThinkPHP CURD方法之limit方法详解
Jun 18 PHP
PHP base64编码后解码乱码的解决办法
Jun 19 PHP
FastCGI 进程意外退出造成500错误
Jul 26 PHP
Yii2中使用join、joinwith多表关联查询
Jun 30 PHP
PHP编写文件多服务器同步程序
Jul 02 PHP
Laravel框架实现的批量删除功能示例
Jan 16 PHP
YII框架实现自定义第三方扩展操作示例
Apr 26 #PHP
PHP中PCRE正则解析代码详解
Apr 26 #PHP
通过PHP设置BugFree获取邮箱通知
Apr 25 #PHP
PHP实现字符串的全排列详解
Apr 24 #PHP
PHP实现二维数组按照指定的字段进行排序算法示例
Apr 23 #PHP
Laravel5.0+框架邮件发送功能实现方法图文与实例详解
Apr 23 #PHP
一文掌握PHP Xdebug 本地与远程调试(小结)
Apr 23 #PHP
You might like
Zerg兵种介绍
2020/03/14 星际争霸
PHP5.5在windows安装使用memcached服务端的方法
2014/04/16 PHP
PHP给文字内容中的关键字进行套红处理
2016/04/12 PHP
php实现JWT(json web token)鉴权实例详解
2019/11/05 PHP
javascript网页关键字高亮代码
2008/07/30 Javascript
解析javascript 数组以及json元素的添加删除
2013/06/26 Javascript
javascript自定义的addClass()方法
2014/05/28 Javascript
JavaScript window.location对象
2014/11/14 Javascript
JS实现的网页倒计时数字时钟效果
2015/03/02 Javascript
基于jQuery实现的QQ表情插件
2015/08/25 Javascript
JS实现超精简响应鼠标显示二级菜单代码
2015/09/12 Javascript
基于javascript实现动态显示当前系统时间
2016/01/28 Javascript
轻松实现js选项卡切换效果
2016/09/24 Javascript
JavaScript中的 attribute 和 jQuery中的 attr 方法浅析
2017/01/04 Javascript
Vue.js开发环境快速搭建教程
2017/03/17 Javascript
详解nodejs微信jssdk后端接口
2017/05/25 NodeJs
vue用Object.defineProperty手写一个简单的双向绑定的示例
2018/07/09 Javascript
浅谈vue方法内的方法使用this的问题
2018/09/15 Javascript
关于单文件组件.vue的使用
2018/09/20 Javascript
基于Vue插入视频的2种方法小结
2019/04/02 Javascript
Vue实现滑动拼图验证码功能
2019/09/15 Javascript
原生js+css调节音量滑块
2020/01/15 Javascript
Node.js学习之内置模块fs用法示例
2020/01/22 Javascript
Python写的一个简单DNS服务器实例
2014/06/04 Python
Python使用Turtle库绘制一棵西兰花
2019/11/23 Python
Python+Xlwings 删除Excel的行和列
2020/12/19 Python
Bootstrap File Input文件上传组件
2020/12/01 HTML / CSS
高品质和独特的产品世界:Creations and Collections
2018/01/07 全球购物
Delphi笔试题
2016/11/14 面试题
测绘工程系学生的自我评价
2013/11/30 职场文书
保护环境的建议书
2014/03/12 职场文书
转让协议书
2015/01/27 职场文书
用电申请报告范文
2015/05/18 职场文书
redis三种高可用方式部署的实现
2021/05/11 Redis
JavaScript中isPrototypeOf函数
2021/11/07 Javascript
Python测试框架pytest高阶用法全面详解
2022/06/01 Python