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 Undefined index和Undefined variable的解决方法
Mar 27 PHP
ExtJS与PHP、MySQL实现存储的方法
Apr 02 PHP
php删除与复制文件夹及其文件夹下所有文件的实现代码
Jan 23 PHP
php时间戳格式化显示友好的时间函数分享
Oct 21 PHP
php中mt_rand()随机数函数用法
Nov 24 PHP
php中实现获取随机数组列表的自定义函数
Apr 02 PHP
php遍历树的常用方法汇总
Jun 18 PHP
php实现源代码加密的方法
Jul 11 PHP
PHP实现的多文件上传类及用法示例
May 06 PHP
PHP编程实现csv文件导入mysql数据库的方法
Apr 29 PHP
理清PHP在Linxu下执行时的文件权限方法
Jun 07 PHP
PHP使用观察者模式处理异常信息的方法详解
Sep 24 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+MYSQL开发工具及资源收藏
2007/01/02 PHP
PHP抓取、分析国内视频网站的视频信息工具类
2014/04/02 PHP
php将服务端的文件读出来显示在web页面实例
2016/10/31 PHP
form表单传递数组数据、php脚本接收的实例
2017/02/09 PHP
JavaScript 中的replace方法说明
2007/04/13 Javascript
jQuery开发者都需要知道的5个小技巧
2010/01/08 Javascript
JQUERY操作JSON实例代码
2010/02/09 Javascript
理解Javascript_06_理解对象的创建过程
2010/10/15 Javascript
JavaScript动态操作表格实例(添加,删除行,列及单元格)
2013/11/25 Javascript
js实现的点击数量加一可操作数据库
2014/05/09 Javascript
jquery实现在网页指定区域显示自定义右键菜单效果
2015/08/25 Javascript
jQuery常用的一些技巧汇总
2016/03/26 Javascript
基于jQuery实现表格内容的筛选功能
2016/08/21 Javascript
nodejs redis 发布订阅机制封装实现方法及实例代码
2016/12/15 NodeJs
基于JavaScript实现复选框的全选和取消全选
2017/02/09 Javascript
Vuex之理解Store的用法
2017/04/19 Javascript
vue中SPA单页面应用程序详解
2017/11/07 Javascript
简单易扩展可控性强的Jquery转盘抽奖程序
2019/03/16 jQuery
Vue设置长时间未操作登录自动到期返回登录页
2020/01/22 Javascript
深度解读vue-resize的具体用法
2020/07/08 Javascript
基于Python实现的百度贴吧网络爬虫实例
2015/04/17 Python
Python标准库之Sys模块使用详解
2015/05/23 Python
python检查指定文件是否存在的方法
2015/07/06 Python
Python删除windows垃圾文件的方法
2015/07/14 Python
Python 中 Meta Classes详解
2016/02/13 Python
Python正则表达式知识汇总
2017/09/22 Python
pyqt5 获取显示器的分辨率的方法
2019/06/18 Python
Python字典推导式将cookie字符串转化为字典解析
2019/08/10 Python
pytorch绘制并显示loss曲线和acc曲线,LeNet5识别图像准确率
2020/01/02 Python
Jupyter Notebook安装及使用方法解析
2020/11/12 Python
Europcar葡萄牙:葡萄牙汽车和货车租赁
2017/10/13 全球购物
德国家具、照明、家居用品网上商店:Wayfair.de
2020/02/13 全球购物
节约电力资源的建议书
2014/03/12 职场文书
护理医院见习报告
2014/11/03 职场文书
党员评议自我评价
2015/03/03 职场文书
vue项目打包后路由错误的解决方法
2022/04/13 Vue.js