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

 更新时间:2015年12月28日 10:46:28   作者:yuhui_fish  
这篇文章主要介绍了yii权限控制的方法,结合实例形式分析了通过accessControl,插件机混合模式三种方法实现权限控制的实现技巧,需要的朋友可以参考下

本文实例讲述了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程序设计有所帮助。

相关文章

  • composer安装的方法步骤(图文)

    composer安装的方法步骤(图文)

    这篇文章主要介绍了composer安装的方法步骤(图文),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-01-01
  • laravel7学习之无限级分类的最新实现方法

    laravel7学习之无限级分类的最新实现方法

    这篇文章主要给大家介绍了关于laravel7学习之无限级分类的最新实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-09-09
  • php数组去重实例及分析

    php数组去重实例及分析

    这篇文章主要是介绍了php数组去重实例及分析。需要的朋友可以过来参考下,希望对大家有所帮助
    2013-11-11
  • CodeIgniter配置之routes.php用法实例分析

    CodeIgniter配置之routes.php用法实例分析

    这篇文章主要介绍了CodeIgniter配置之routes.php用法,结合实例形式分析了routes.php中常用配置参数的含义及具体使用技巧,需要的朋友可以参考下
    2016-01-01
  • Laravel 5 框架入门(一)

    Laravel 5 框架入门(一)

    本文给大家介绍的是Laravel5框架入门的第一篇文章,主要给大家介绍些基础的知识,包括安装配置,数据库的建立与迁移,模型介绍,是篇非常不错的入门文章,这里推荐给大家。
    2015-04-04
  • PHP 获取客户端 IP 地址的方法实例代码

    PHP 获取客户端 IP 地址的方法实例代码

    这篇文章主要介绍了PHP 获取客户端 IP 地址的方法,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值 ,需要的朋友可以参考下
    2018-11-11
  • Thinkphp将二维数组变为标签适用的一维数组方法总结

    Thinkphp将二维数组变为标签适用的一维数组方法总结

    这篇文章主要介绍了Thinkphp将二维数组变为标签适用的一维数组方法,总结了常见的转化数组方法,非常实用,需要的朋友可以参考下
    2014-10-10
  • Thinkphp5分页后携带参数跳转传递功能实现

    Thinkphp5分页后携带参数跳转传递功能实现

    这篇文章主要介绍了Thinkphp5分页后携带参数进行跳转传递,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-06-06
  • PHP调用FFmpeg实现视频切片

    PHP调用FFmpeg实现视频切片

    这篇文章主要为大家详细介绍了PHP如何调用FFmpeg实现视频切片功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2025-02-02
  • PHP 闭包获取外部变量和global关键字声明变量的区别讲解

    PHP 闭包获取外部变量和global关键字声明变量的区别讲解

    闭包是一个常见的概念,我们通常可以将其与回调函数配合使用,可以使代码更加简洁易读。这篇文章主要介绍了PHP 闭包获取外部变量和global关键字声明变量的区别,需要的朋友可以参考下
    2017-12-12

最新评论