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扩展ZF――Validate扩展
Jan 10 PHP
PHP ajax 分页类代码
Nov 13 PHP
phpmyadmin MySQL 加密配置方法
Jul 05 PHP
使用PHPMYADMIN操作mysql数据库添加新用户和数据库的方法
Apr 02 PHP
PHP统计nginx访问日志中的搜索引擎抓取404链接页面路径
Jun 30 PHP
PHP实现克鲁斯卡尔算法实例解析
Aug 22 PHP
PHP+jquery实时显示网站在线人数的方法
Jan 04 PHP
php使用explode()函数将字符串拆分成数组的方法
Feb 17 PHP
PHP SFTP实现上传下载功能
Jul 26 PHP
搜索附近的人PHP实现代码
Feb 11 PHP
laravel + vue实现的数据统计绘图(今天、7天、30天数据)
Jul 31 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 curl_init函数用法
2014/01/31 PHP
PHP编程开发怎么提高编程效率 提高PHP编程技术
2015/11/09 PHP
laravel 5异常错误:FatalErrorException in Handler.php line 38的解决
2017/10/12 PHP
Laravel jwt 多表(多用户端)验证隔离的实现
2019/12/18 PHP
document.open() 与 document.write()的区别
2007/08/13 Javascript
原生JS可拖动弹窗效果实例代码
2013/11/09 Javascript
javascript向后台传送相同属性的参数即数组参数
2014/02/17 Javascript
jquery如何把数组变为字符串传到服务端并处理
2014/04/30 Javascript
javascript 小数取整简单实现方式
2014/05/30 Javascript
jquery自定义表格样式
2015/11/23 Javascript
详解javascript表单的Ajax提交插件的使用
2016/12/29 Javascript
ES6扩展运算符的用途实例详解
2017/08/20 Javascript
vue结合Echarts实现点击高亮效果的示例
2018/03/17 Javascript
详解Angular5路由传值方式及其相关问题
2018/04/28 Javascript
JavaScript引用类型Array实例分析
2018/07/24 Javascript
Vue 路由切换时页面内容没有重新加载的解决方法
2018/09/01 Javascript
js实现录音上传功能
2019/11/22 Javascript
vue使用echarts实现水平柱形图实例
2020/09/09 Javascript
[43:18]NB vs Infamous 2019国际邀请赛淘汰赛 败者组 BO3 第一场 8.22
2019/09/05 DOTA
[01:35:13]DOTA2-DPC中国联赛 正赛 DLG vs PHOENIX BO3 第一场 1月18日
2021/03/11 DOTA
python批量修改文件名的实现代码
2014/09/01 Python
使用Python中PDB模块中的命令来调试Python代码的教程
2015/03/30 Python
说一说Python logging
2016/04/15 Python
Python操作Access数据库基本步骤分析
2016/09/19 Python
深入了解Python中pop和remove的使用方法
2018/01/09 Python
将python代码和注释分离的方法
2018/04/21 Python
django+mysql的使用示例
2018/11/23 Python
在pycharm上mongodb配置及可视化设置方法
2018/11/30 Python
Python如何应用cx_Oracle获取oracle中的clob字段问题
2019/08/27 Python
可自定义箭头样式的CSS3气泡提示框
2016/03/16 HTML / CSS
CSS3条纹背景制作的实战攻略
2016/05/31 HTML / CSS
HTML5 Canvas锯齿图代码实例
2014/04/10 HTML / CSS
C#笔试题和英文面试题
2013/02/07 面试题
小学新学期寄语
2014/04/02 职场文书
2014年英语教研组工作总结
2014/12/06 职场文书
2016年学校综治宣传月活动总结
2016/03/16 职场文书