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 中dirname(_file_)讲解
Mar 18 PHP
smarty 缓存控制前的页面静态化原理
Mar 15 PHP
PHP调用VC编写的COM组件实例
Mar 29 PHP
php实现的支持imagemagick及gd库两种处理的缩略图生成类
Sep 23 PHP
在Win7 中为php扩展配置Xcache
Oct 08 PHP
PHP封装的字符串加密解密函数
Dec 18 PHP
thinkPHP中多维数组的遍历方法
Jan 09 PHP
PHP入门教程之面向对象的特性分析(继承,多态,接口,抽象类,抽象方法等)
Sep 11 PHP
phpStudy中升级MySQL版本到5.7.17的方法步骤
Aug 03 PHP
PHP实现的多维数组去重操作示例
Jul 21 PHP
PHP时间函数使用详解
Mar 21 PHP
解决laravel5.4下的group by报错的问题
Oct 16 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 批量删除数据的方法分析
2009/10/30 PHP
php的ddos攻击解决方法
2015/01/08 PHP
如何批量清理系统临时文件(语言:C#、 C/C++、 php 、python 、java )
2016/02/01 PHP
Laravel中基于Artisan View扩展包创建及删除应用视图文件的方法
2016/10/08 PHP
Prototype Class对象学习
2009/07/19 Javascript
javascript闭包的高级使用方法实例
2013/07/04 Javascript
使用闭包对setTimeout进行简单封装避免出错
2013/07/10 Javascript
jquery 延迟执行实例介绍
2013/08/20 Javascript
extJS中常用的4种Ajax异步提交方式
2014/03/07 Javascript
AngularJS入门教程之Hello World!
2014/12/06 Javascript
JS获取时间的方法
2015/01/21 Javascript
js实现选中页面文字将其分享到新浪微博
2015/11/05 Javascript
javascript简单比较日期大小的方法
2016/01/05 Javascript
原生JavaScript实现Ajax的方法
2016/04/07 Javascript
详解react-router如何实现按需加载
2017/06/15 Javascript
微信小程序webview实现长按点击识别二维码功能示例
2019/01/24 Javascript
JS 获取文件后缀,判断文件类型(比如是否为图片格式)
2020/05/09 Javascript
JavaScript实现雪花飘落效果
2020/12/27 Javascript
详解Python3中yield生成器的用法
2015/08/20 Python
python 利用for循环 保存多个图像或者文件的实例
2018/11/09 Python
Python通过format函数格式化显示值
2020/10/17 Python
bareMinerals官网:矿物质化妆品和护肤品
2018/02/04 全球购物
JackJones官方旗舰店:杰克琼斯男装
2018/03/27 全球购物
Kendra Scott官网:美国领先的时尚配饰品牌
2020/10/22 全球购物
毕业生实习鉴定
2013/12/11 职场文书
微型企业创业投资计划书
2014/01/10 职场文书
英语教学随笔感言
2014/02/20 职场文书
扩大国家免疫规划实施方案
2014/03/21 职场文书
中药学专业求职信
2014/05/31 职场文书
2014年政协工作总结
2014/12/09 职场文书
2015年管理人员工作总结
2015/05/13 职场文书
宿舍卫生管理制度
2015/08/05 职场文书
2016年春季运动会广播稿
2015/08/19 职场文书
化工厂员工工作总结
2015/10/15 职场文书
Python实战之实现简易的学生选课系统
2021/05/25 Python
Python 居然可以在 Excel 中画画你知道吗
2022/02/15 Python