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 相关文章推荐
福利彩票幸运号码自动生成器
Oct 09 PHP
php中通过smtp发邮件的类,测试通过
Jan 22 PHP
PHP初学者最感迷茫的问题小结
Mar 27 PHP
PHP学习笔记之三 数据库基本操作
Jan 17 PHP
PHP实现利用MySQL保存session的方法
Aug 23 PHP
PHP使用glob函数遍历目录或文件夹的方法
Dec 16 PHP
PHP学习笔记(二):变量详解
Apr 17 PHP
php实现文件上传及头像预览功能
Jan 15 PHP
php实现的XML操作(读取)封装类完整实例
Feb 23 PHP
php微信开发之关注事件
Jun 14 PHP
关于PHP5.6+版本“No input file specified”问题的解决
Dec 11 PHP
如何利用PHP实现上传图片功能详解
Sep 24 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屏蔽蜘蛛访问代码及常用搜索引擎的HTTP_USER_AGENT
2013/03/06 PHP
PHP代码实现表单数据验证类
2015/07/28 PHP
ThinkPHP表单数据智能写入create方法实例分析
2015/09/27 PHP
PHP设计模式之PHP迭代器模式讲解
2019/03/22 PHP
JS实现时间格式化的方式汇总
2013/10/16 Javascript
jquery通过select列表选择框对表格数据进行过滤示例
2014/05/07 Javascript
原生JS绑定滑轮滚动事件兼容常见浏览器
2014/06/30 Javascript
node.js使用npm 安装插件时提示install Error: ENOENT报错的解决方法
2014/11/20 Javascript
js使用Array.prototype.sort()对数组对象排序的方法
2015/01/28 Javascript
详解JavaScript中的forEach()方法的使用
2015/06/08 Javascript
javascript瀑布流布局实现方法详解
2016/02/17 Javascript
jquery 将当前时间转换成yyyymmdd格式的实现方法
2016/06/01 Javascript
使用伪命名空间封装保护独自创建的对象方法
2016/08/04 Javascript
JavaScript实现多栏目切换效果
2016/12/12 Javascript
通过命令行生成vue项目框架的方法
2017/07/12 Javascript
JavaScript实现图片切换效果
2017/08/12 Javascript
vue路由嵌套的SPA实现步骤
2017/11/06 Javascript
Vue使用Three.js加载glTF模型的方法详解
2020/06/14 Javascript
Python实现Tab自动补全和历史命令管理的方法
2015/03/12 Python
Python实现图像几何变换
2015/07/06 Python
Java多线程编程中ThreadLocal类的用法及深入
2016/06/21 Python
python获取程序执行文件路径的方法(推荐)
2018/04/26 Python
python监控进程状态,记录重启时间及进程号的实例
2019/07/15 Python
Python Django切换MySQL数据库实例详解
2019/07/16 Python
用Python实现校园通知更新提醒功能
2019/11/23 Python
使用python批量修改XML文件中图像的depth值
2020/07/22 Python
利用HTML5 Canvas API绘制矩形的超级攻略
2016/03/21 HTML / CSS
健康监测猫砂:Pretty Litter
2017/05/25 全球购物
财务信息服务专业自荐书范文
2014/02/08 职场文书
医师定期考核实施方案
2014/05/07 职场文书
2014年个人年终总结
2015/03/09 职场文书
社区挂职锻炼个人工作总结
2015/10/23 职场文书
Python3 使用pip安装git并获取Yahoo金融数据的操作
2021/04/08 Python
pytorch Dropout过拟合的操作
2021/05/27 Python
Java方法重载和方法重写的区别到底在哪?
2021/06/11 Java/Android
Nginx实现会话保持的两种方式
2022/03/18 Servers