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中取得image按钮传递的name值
Oct 09 PHP
php-accelerator网站加速PHP缓冲的方法
Jul 30 PHP
PHP连接MongoDB示例代码
Sep 06 PHP
解析thinkphp中的导入文件标签
Jun 20 PHP
处理(php-cgi.exe - FastCGI 进程超过了配置的请求超时时限)的问题
Jul 03 PHP
PHP向浏览器输出内容的4个函数总结
Nov 17 PHP
Docker配置PHP开发环境教程
Dec 21 PHP
php使用Jpgraph创建3D饼形图效果示例
Feb 15 PHP
Nginx下ThinkPHP5的配置方法详解
Aug 01 PHP
PHP实现二维数组中的查找算法小结
Jun 09 PHP
ThinkPHP中获取指定日期后工作日的具体日期方法
Oct 14 PHP
PHP队列场景以及实现代码实例详解
Feb 26 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获取字段名示例分享
2014/03/03 PHP
PHP以mysqli方式连接类完整代码实例
2014/07/15 PHP
php判断数组中是否存在指定键(key)的方法
2015/03/17 PHP
php上传图片并压缩的实现方法
2015/12/22 PHP
thinkPHP实现基于ajax的评论回复功能
2018/06/22 PHP
关于PHP中interface的用处详解
2020/07/26 PHP
Extjs实现进度条的两种便捷方式
2013/09/26 Javascript
在百度知道团队中快速审批新成员的js脚本
2014/02/02 Javascript
js过滤特殊字符输入适合输入、粘贴、拖拽多种情况
2014/03/22 Javascript
javascript修改IMG标签的src问题
2014/03/28 Javascript
如何解决ligerUI布局时Center中的Tab高度大小
2015/11/24 Javascript
Javascript中匿名函数的调用与写法实例详解(多种)
2016/01/26 Javascript
Javascript基于jQuery UI实现选中区域拖拽效果
2016/11/25 Javascript
Vue 2.x教程之基础API
2017/03/06 Javascript
将Sublime Text 3 添加到右键中的简单方法
2017/12/12 Javascript
webpack引入eslint配置详解
2018/01/22 Javascript
JavaScript创建对象的常用方式总结
2018/08/10 Javascript
微信小程序实现左滑修改、删除功能
2020/10/19 Javascript
Python线性回归实战分析
2018/02/01 Python
Php多进程实现代码
2018/05/07 Python
Python中@property的理解和使用示例
2019/06/11 Python
python turtle 绘制太极图的实例
2019/12/18 Python
在python中利用dict转json按输入顺序输出内容方式
2020/02/27 Python
解决pyPdf和pyPdf2在合并pdf时出现异常的问题
2020/04/03 Python
Python3合并两个有序数组代码实例
2020/08/11 Python
全球酒店预订网站:Hotels.com
2016/08/10 全球购物
Otticanet澳大利亚:最顶尖的世界名牌眼镜, 能得到打折季的价格
2018/08/23 全球购物
马来西亚网上花店:FlowerAdvisor马来西亚
2020/01/03 全球购物
W Hamond官网:始于1979年的钻石专家
2020/07/20 全球购物
《彭德怀和他的大黑骡子》教学反思
2014/04/12 职场文书
见习报告格式范文
2014/11/08 职场文书
先进事迹材料范文
2014/12/29 职场文书
2015年安全生产工作总结范文
2015/04/02 职场文书
加班费申请报告
2015/05/15 职场文书
如何让vue长列表快速加载
2021/03/29 Vue.js
深入理解go缓存库freecache的使用
2022/02/15 Golang