yii之srbac详解

一、安装篇

1、下载http://www.yiiframework.com/extension/srbac/ 将解压得到的srbac文件夹放在moudles目录下。

2、在项目的主配置文件中mai.php:

‘modules‘=>array(
        // uncomment the following to enable the Gii tool

        ‘gii‘=>array(
            ‘class‘=>‘system.gii.GiiModule‘,
            ‘password‘=>‘123123‘,
            // If removed, Gii defaults to localhost only. Edit carefully to taste.
            ‘ipFilters‘=>array(‘127.0.0.1‘,‘::1‘),
        ),

        ‘srbac‘ => array(
            ‘userclass‘=>‘User‘, //default: User
            ‘userid‘=>‘userid‘, //default: userid
            ‘username‘=>‘username‘, //default:username
            ‘delimeter‘=>‘@‘, //default:-
            ‘debug‘=>false, //default :false
            ‘pageSize‘=>10, // default : 15
            ‘superUser‘ =>‘Authority‘, //default: Authorizer
            ‘css‘=>‘srbac.css‘, //default: srbac.css
            ‘layout‘=>
                ‘application.views.layouts.main‘, //default: application.views.layouts.main,
            //must be an existing alias
            ‘notAuthorizedView‘=> ‘srbac.views.authitem.unauthorized‘, // default:
            //srbac.views.authitem.unauthorized, must be an existing alias
            ‘alwaysAllowed‘=>array( //default: array()
                ‘SiteLogin‘,‘SiteLogout‘,‘SiteIndex‘,‘SiteAdmin‘,
                ‘SiteError‘, ‘SiteContact‘,‘UserIndex‘),
            ‘userActions‘=>array(‘Show‘,‘View‘,‘List‘), //default: array()
            ‘listBoxNumberOfLines‘ => 15, //default : 10 ‘imagesPath‘ => ‘srbac.images‘, // default: srbac.images ‘imagesPack‘=>‘noia‘, //default: noia ‘iconText‘=>true, // default : false ‘header‘=>‘srbac.views.authitem.header‘, //default : srbac.views.authitem.header,
            //must be an existing alias ‘footer‘=>‘srbac.views.authitem.footer‘, //default: srbac.views.authitem.footer,
            //must be an existing alias ‘showHeader‘=>true, // default: false ‘showFooter‘=>true, // default: false
            ‘alwaysAllowedPath‘=>‘srbac.components‘, // default: srbac.components
            // must be an existing alias )
        ),

    ),
‘import‘=>array(
        ‘application.models.*‘,
        ‘application.components.*‘,
        ‘application.modules.srbac.controllers.SBaseController‘,
    ),
‘components‘=>array(
        ‘user‘=>array(
            // enable cookie-based authentication
            ‘allowAutoLogin‘=>true,
        ),

        ‘authManager‘ => array(
            ‘class‘=>‘srbac.components.SDbAuthManager‘,
            // The database component used
            ‘connectionID‘=>‘db‘,
            // The itemTable name (default:authitem)
            ‘itemTable‘=>‘authitem‘,
            // The assignmentTable name (default:authassignment)
            ‘assignmentTable‘=>‘authassignment‘,
            // The itemChildTable name (default:authitemchild)
            ‘itemChildTable‘=>‘authitemchild‘,
        ),

        // uncomment the following to use a MySQL database

        ‘db‘=>array(
            ‘connectionString‘ => ‘mysql:host=localhost;dbname=demo4‘,
            ‘emulatePrepare‘ => true,
            ‘username‘ => ‘root‘,
            ‘password‘ => ‘root‘,
            ‘charset‘ => ‘utf8‘,
        ),

配置完毕,还需要一个User模型,至少含有userid,username两个选项,与上面的配置文件中保持一致。用gii工具生成User模型。通过域名/index.php/srbac进行访问进入安装界面,以上选项都具备时,安装成功。

二、使用篇

1、使用之前的几个小问题。

(1)界面中文化

将srbac/message下的zh文件夹复制一份为zh_cn,在main.php中添加配置选项‘language‘=>‘zh_cn‘即可。

(2)自动检测,如果没有自动检测,在需要调用权限的检查的方法时候都要进行添加代码的检测,如Yii::app()->user->checkAccess(‘createPost‘),满足了才继续向下执行。开启自动检测需要下面两个条件:

    将配置文件中的 ‘debug‘选项设置为false,如上所示;

    然后将components组件中的Controller.php中的:

class Controller extends CController

    改为:

class Controller extends SBaseController

  这样就会自动进行检测了。并且只有继承了SBaseController,才能在界面中使用自动生成opreation和task的功能。

(3)设置只有超级管理员才可以访问Srbac,安装完成后默认的都可以访问。

  在配置文件中有这个选项:‘superUser‘ =>‘Authority‘,  这个Authority就是一个管理srbac的唯一的一个角色,只要将这个角色分配给一个特定的用户,那么就只有这个用户可以访问srbac了。

2、srbac中是分了四层:操作、任务、角色、用户。

yii之srbac详解

时间: 2024-10-29 05:07:30

yii之srbac详解的相关文章

yii框架AR详解

yii框架AR详解 虽 然Yii DAO可以处理事实上任何数据库相关的任务,但很可能我们会花费90%的时间用来编写一些通用的SQL语句来执行CRUD操作(创建,读取,更新和删除). 同时我们也很难维护这些PHP和SQL语句混合的代码,要解决这些问题,我们可以使用Active Record.    Active Record(AR)是一种流行的对象关系映射(ORM)技术.每个AR类代表一个数据表(或视图),其字段作为AR类的属性,一个AR实例代表在表中的 一行.常见的CRUD操作被作为AR类的方法

Yii::app()方法详解

1.Yii::app()返回的是一个当前框架应用程序的对象 2.Yii::app()是framework/web/CWebApplication.php类实例化的对象,所以可以调用CWebApplication里的属性和方法 3.Yii::app()调用是的Yii类中的run()方法,通过该方法可以调用系统中的其他对象.方法.属性 4.建议不要通过Yii::app()来随便调用CWebApplication及父类CApplication里的相关属性和方法,会影响系统的稳定性 5.可以通过Yii:

Yii 框架里数据库操作详解-[增加、查询、更新、删除的方法 'AR模式']

public function getMinLimit () {        $sql = "...";        $result = yii::app()->db->createCommand($sql);        $query = $result->queryAll();         return array (                $query [0] ['max'],         );    } $connection=Yii::

YII model模型和登陆详解

模型是 CModel 或其子类的实例.模型用于保持数据以及与其相关的业务逻辑. 模型是单独的数据对象.它可以是数据表中的一行,或者一个用户输入的表单. 数据对象的每个字段对应模型中的一个属性.每个属性有一个标签(label), 并且可以通过一系列规则进行验证. Yii 实现了两种类型的模型:表单模型和 Active Record.二者均继承于相同的基类 CModel. 表单模型是 CFormModel 的实例.表单模型用于保持从用户的输入获取的数据. 这些数据经常被获取,使用,然后丢弃.例如,在

YII2框架详解

yii2框架的安装我们在之前文章中已经提到下面我们开始了解YII2框架 Yii2的应用结构: 目录篇: advance版本的特点是:根目录下预先分配了三个模块,分别是前台.后台.控制台模块. 1.backend 它主要用于管理后台,网站管理员来管理整个系统. assets 目录用于存放前端资源包PHP类. 这里不需要了解什么是前端资源包,只要大致知道是用于管理CSS.js等前端资源就可以了. config 用于存放本应用的配置文件,包含主配置文件 main.php 和全局参数配置文件 param

Yii2 教程 - yii2-redis 扩展详解

该教程已被合并到<Yii2 权威指南中文版>中!Yiichina 教程地址为<yii2-redis 扩展详解>! 一.简介 yii2-redis 扩展为 Yii2 框架提供了 redis 键值存储支持.包括缓存(Cache).会话存储处理(Session),并实现了 ActiveRecord 模式,允许您将活动记录存储在 redis 中. 相关链接 yii2-redis 扩展网址:https://github.com/yiisoft/yii2-redis 二.安装扩展 在 Yii2

Yii2.0中Mailer收发邮件详解

Yii2.0封装的类足够强大,Mailer的使用方法做一个总结:1.先在main-local.php中做好配置: return [//....'components' => ['mailer' => ['class' => 'yii\swiftmailer\Mailer',],],]; 详细如下: return [//....'components' => [ 'viewPath' => '@common/mail', 'useFileTransport' =>fals

Spring事务管理(详解+实例)

写这篇博客之前我首先读了<Spring in action>,之后在网上看了一些关于Spring事务管理的文章,感觉都没有讲全,这里就将书上的和网上关于事务的知识总结一下,参考的文章如下: Spring事务机制详解 Spring事务配置的五种方式 Spring中的事务管理实例详解 1 初步理解 理解事务之前,先讲一个你日常生活中最常干的事:取钱. 比如你去ATM机取1000块钱,大体有两个步骤:首先输入密码金额,银行卡扣掉1000元钱:然后ATM出1000元钱.这两个步骤必须是要么都执行要么都

转载:DenseNet算法详解

原文连接:http://blog.csdn.net/u014380165/article/details/75142664 参考连接:http://blog.csdn.net/u012938704/article/details/53468483 本文这里仅当学习笔记使用,具体细节建议前往原文细度. 论文:Densely Connected Convolutional Networks 论文链接:https://arxiv.org/pdf/1608.06993.pdf 代码的github链接:h