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 相关文章推荐
php下一个阿拉伯数字转中文数字的函数
Jul 16 PHP
创建配置文件 用PHP写出自己的BLOG系统 2
Apr 12 PHP
解析如何通过PHP函数获取当前运行的环境 来进行判断执行逻辑(小技巧)
Jun 25 PHP
php 启动报错如何解决
Jan 17 PHP
PHP同时连接多个mysql数据库示例代码
Mar 17 PHP
php中Y2K38的漏洞解决方法实例分析
Sep 22 PHP
PHP文件锁函数flock()详细介绍
Nov 18 PHP
超详细的php用户注册页面填写信息完整实例(附源码)
Nov 17 PHP
PHP使用mkdir创建多级目录的方法
Dec 22 PHP
php常用图片处理类
Mar 16 PHP
Docker配置PHP开发环境教程
Dec 21 PHP
php数组指针函数功能及用法示例
Feb 11 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
利用PHP制作简单的内容采集器的原理分析
2008/10/01 PHP
PHP jQuery表单,带验证具体实现方法
2014/02/15 PHP
PHP中使用localhost连接Mysql不成功的解决方法
2014/08/20 PHP
PHP操作FTP类 (上传、下载、移动、创建等)
2016/03/31 PHP
原生Js页面滚动延迟加载图片实现原理及过程
2013/06/24 Javascript
JavaScript中的undefined学习总结
2013/11/30 Javascript
js整数字符串转换为金额类型数据(示例代码)
2013/12/26 Javascript
如何使用jQuery技术开发ios风格的页面导航菜单
2015/07/29 Javascript
教你用javascript实现随机标签云效果_附代码
2016/03/16 Javascript
jQuery实现Select下拉列表进行状态选择功能
2017/03/30 jQuery
js遍历获取表格内数据的方法(必看)
2017/04/06 Javascript
基于vuejs实现一个todolist项目
2017/04/11 Javascript
vuejs+element-ui+laravel5.4上传文件的示例代码
2017/08/12 Javascript
bootstrap table方法之expandRow-collapseRow展开或关闭当前行数据
2020/08/09 Javascript
Three.js开发实现3D地图的实践过程总结
2017/11/20 Javascript
element-ui中select组件绑定值改变,触发change事件方法
2018/08/24 Javascript
element上传组件循环引用及简单时间倒计时的实现
2018/10/01 Javascript
简单易扩展可控性强的Jquery转盘抽奖程序
2019/03/16 jQuery
jQuery实现移动端笔触canvas电子签名
2020/05/21 jQuery
vue 扩展现有组件的操作
2020/08/14 Javascript
微信小程序实现身份证取景框拍摄
2020/09/09 Javascript
vue项目配置 webpack-obfuscator 进行代码加密混淆的实现
2021/02/26 Vue.js
[44:51]2018DOTA2亚洲邀请赛 4.4 淘汰赛 VP vs Liquid 第二场
2018/04/05 DOTA
[02:10]DOTA2 TI10勇士令状玩法及不朽Ⅰ展示:焕新世界,如你所期
2020/05/29 DOTA
python面向对象多线程爬虫爬取搜狐页面的实例代码
2018/05/31 Python
深入了解和应用Python 装饰器 @decorator
2019/04/02 Python
分享8个非常流行的 Python 可视化工具包
2019/06/05 Python
python调用百度AI接口实现人流量统计
2021/02/03 Python
Web页面中八种创建多列等高(等高列布局)的实现技术
2012/12/24 HTML / CSS
美国鞋类购物网站:Shiekh Shoes
2016/08/21 全球购物
美国最大的宠物药店:1-800-PetMeds
2016/10/02 全球购物
美国宠物商店:Wag.com
2016/10/25 全球购物
菜篮子工程实施方案
2014/03/08 职场文书
研究生简历自我评
2015/03/11 职场文书
村党总支部公开承诺书2016
2016/03/25 职场文书
Android基础入门之dataBinding的简单使用教程
2022/06/21 Java/Android