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数据库连接
Oct 09 PHP
php Smarty 字符比较代码
Feb 27 PHP
php excel reader读取excel内容存入数据库实现代码
Dec 06 PHP
Yii框架中memcache用法实例
Dec 03 PHP
smarty实现多级分类的方法
Dec 05 PHP
用PHP代码给图片加水印
Jul 01 PHP
php超快高效率统计大文件行数
Jul 05 PHP
php封装的smarty类完整实例
Oct 19 PHP
php中static和const关键字用法分析
Dec 07 PHP
Zend Framework入门教程之Zend_Config组件用法详解
Dec 09 PHP
php微信开发之关注事件
Jun 14 PHP
如何优雅的使用 laravel 的 validator验证方法
Nov 11 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
是否存在第一台收音机的说法
2021/03/01 无线电
PHP 日期时间函数的高级应用技巧
2009/10/10 PHP
深入解析PHP的Yii框架中的缓存功能
2016/03/29 PHP
PHP PDOStatement::fetch讲解
2019/01/31 PHP
CentOS7编译安装php7.1的教程详解
2019/04/18 PHP
jquery.fileEveryWhere.js 一个跨浏览器的file显示插件
2011/10/24 Javascript
js确定对象类型方法
2012/03/30 Javascript
javaScript让文本框内的最后一个文字的后面获得焦点实现代码
2013/01/06 Javascript
javascript表单验证 - Parsley.js使用和配置
2013/01/25 Javascript
js实现屏幕自适应局部代码分享
2015/01/30 Javascript
avalon js实现仿google plus图片多张拖动排序附源码下载
2015/09/24 Javascript
javascript设置和获取cookie的方法实例详解
2016/01/05 Javascript
AngularJS ng-template寄宿方式用法分析
2016/11/07 Javascript
JS排序之选择排序详解
2017/04/08 Javascript
JavaScript实现简单动态进度条效果
2018/04/06 Javascript
微信小程序获取音频时长与实时获取播放进度问题
2018/08/28 Javascript
微信小程序webview实现长按点击识别二维码功能示例
2019/01/24 Javascript
使用vue-cli3新建一个项目并写好基本配置(推荐)
2019/04/24 Javascript
如何让微信小程序页面之间的通信不再变困难
2019/06/03 Javascript
让 babel webpack vue 配置文件支持智能提示的方法
2019/06/22 Javascript
[01:11:37]完美世界DOTA2联赛PWL S2 SZ vs FTD.C 第一场 11.19
2020/11/19 DOTA
python进程管理工具supervisor的安装与使用教程
2017/09/05 Python
Python语言描述KNN算法与Kd树
2017/12/13 Python
python如何修改装饰器中参数
2018/03/20 Python
python3使用matplotlib绘制条形图
2020/03/25 Python
基于python的Paxos算法实现
2019/07/03 Python
将python2.7添加进64位系统的注册表方式
2019/11/20 Python
Python 如何实现访问者模式
2020/07/28 Python
美国保健品专家:Life Extension
2018/05/04 全球购物
DC Shoes荷兰官方网站:美国极限运动品牌
2019/10/22 全球购物
PHP高级工程师面试问题推荐
2013/01/18 面试题
卖车协议书
2014/04/21 职场文书
大学生党员批评与自我批评范文
2014/10/14 职场文书
离婚协议书格式
2015/01/26 职场文书
红色电影观后感
2015/06/18 职场文书
2019年鼓励无偿献血倡议书
2019/09/17 职场文书