yii权限控制的方法(三种方法)


Posted in PHP onDecember 28, 2015

本文实例讲述了yii权限控制的方法。分享给大家供大家参考,具体如下:

这里摘录以下3种:

1. 通过accessControl:

public function filters()
{
  return array(
    'accessControl', // perform access control for CRUD operations
  );
}
/**
 * Specifies the access control rules.
 * This method is used by the 'accessControl' filter.
 * @return array access control rules
 */
public function accessRules()
{
  return array(
    array('allow', // allow authenticated users to access all actions
      'users'=>array('@'),
    ),
    array('deny', // deny all users
      'users'=>array('*'),
    ),
  );
}

2. 通过插件(如:right)

public function filters()
{
  return array(
    'rights',
  );
}

3. 混合模式:

/**
 * @return array action filters
 */
public function filters()
{
  return array(
    'updateOwn + update', // Apply this filter only for the update action.
    'rights',
  );
}
/**
 * Filter method for checking whether the currently logged in user
 * is the author of the post being accessed.
 */
public function filterUpdateOwn($filterChain)
{
  $post=$this->loadModel();
  // Remove the 'rights' filter if the user is updating an own post
  // and has the permission to do so.
  if(Yii::app()->user->checkAccess('PostUpdateOwn', array('userid'=>$post->author_id)))
    $filterChain->removeAt(1);
  $filterChain->run();
}

如果有权限的基础上,开放某些动作的权限,可以通过allowedActions:

public function allowedActions()
{
  return 'autocomplate,autocomplate2';
}

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

PHP 相关文章推荐
PHP日期处理函数 整型日期格式
Jan 12 PHP
PHP Session_Regenerate_ID函数双释放内存破坏漏洞
Jan 27 PHP
PHP最常用的2种设计模式工厂模式和单例模式介绍
Aug 14 PHP
跟我学Laravel之路由
Oct 15 PHP
PHP会话处理的10个函数
Aug 11 PHP
PHP函数超时处理方法
Feb 14 PHP
Zend Framework自定义Helper类相关注意事项总结
Mar 14 PHP
Linux php 中文乱码的快速解决方法
May 13 PHP
替换php字符串中的单引号为双引号的方法
Feb 16 PHP
Redis构建分布式锁
Mar 28 PHP
phpStudy配置多站点多域名和多端口的方法
Sep 01 PHP
PHP实现数组转JSon和JSon转数组的方法示例
Jun 14 PHP
Yii使用Captcha验证码的方法
Dec 28 #PHP
yii使用activeFileField控件实现上传文件与图片的方法
Dec 28 #PHP
yii实现使用CUploadedFile上传文件的方法
Dec 28 #PHP
Yii中Model(模型)的创建及使用方法
Dec 28 #PHP
yii数据库的查询方法
Dec 28 #PHP
yii分页组件用法实例分析
Dec 28 #PHP
PHP读取文件内容的五种方式
Dec 28 #PHP
You might like
搜索附近的人PHP实现代码
2018/02/11 PHP
php-fpm服务启动脚本的方法
2018/04/27 PHP
CI框架网页缓存简单用法分析
2018/12/26 PHP
PHP常用函数之base64图片上传功能详解
2019/10/21 PHP
Jquery ajaxsubmit上传图片实现代码
2010/11/04 Javascript
Jquery 例外被抛出且未被接住原因介绍
2013/09/04 Javascript
在jquery boxy中添加百度地图坐标拾取注意流程
2014/04/03 Javascript
纯js实现div内图片自适应大小(已测试,兼容火狐)
2014/06/16 Javascript
jQuery实现拖动调整表格单元格大小的代码实例
2015/01/13 Javascript
jQuery实现鼠标滑向当前图片高亮显示并且其它图片变灰的方法
2015/07/27 Javascript
每天一篇javascript学习小结(属性定义方法)
2015/11/19 Javascript
详解JavaScript中localStorage使用要点
2016/01/13 Javascript
Node.js的Express框架使用上手指南
2016/03/12 Javascript
js调用webservice构造SOAP进行身份验证
2016/04/27 Javascript
jQuery动态生成Bootstrap表格
2016/11/01 Javascript
实例分析nodejs模块xml2js解析xml过程中遇到的坑
2017/03/18 NodeJs
angular写一个列表的选择全选交互组件的示例
2018/01/22 Javascript
详解如何在Vue里建立长按指令
2018/08/20 Javascript
在Vant的基础上实现添加表单验证框架的方法示例
2018/12/05 Javascript
Vue中使用Lodop插件实现打印功能的简单方法
2019/12/19 Javascript
vue-cli3访问public文件夹静态资源报错的解决方式
2020/09/02 Javascript
Python中使用第三方库xlrd来读取Excel示例
2015/04/05 Python
Python with用法实例
2015/04/14 Python
Python最基本的输入输出详解
2015/04/25 Python
python妹子图简单爬虫实例
2015/07/07 Python
Python统计一个字符串中每个字符出现了多少次的方法【字符串转换为列表再统计】
2019/05/05 Python
python实现屏保程序(适用于背单词)
2019/07/30 Python
django实现用户注册实例讲解
2019/10/30 Python
Python实现哲学家就餐问题实例代码
2020/11/09 Python
德国的大型美妆个护电商:Flaconi
2020/06/26 全球购物
请写出一段Python代码实现删除一个list里面的重复元素
2015/12/29 面试题
电气工程及其自动化学生实习自我鉴定
2013/09/19 职场文书
2015年煤矿工作总结
2015/04/28 职场文书
冰雪公主观后感
2015/06/16 职场文书
2015年度女工工作总结
2015/10/22 职场文书