Yii中配置Srbac模块

2024-05-31 03:32
文章标签 配置 模块 yii srbac

本文主要是介绍Yii中配置Srbac模块,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Srbac 可以在如下地址下载:
Yii 扩展页面: http://www.yiiframework.com/extension/srbac/


要安装 srbac 模块,首先解压压缩文件到Yii应用的模块目录,如果把srbac作为一个模块的话,就要在protected文件夹下新建一个文件夹modules,然后把解压得到的文件夹复制过来。

在配置模块之前,首先我们需要建立一个用户信息的user表,用来存储我们需要权限操作的用户,并生成user表的Model,Model名称与Srbac配置中的'userclass'相同。

然后编辑配置文件如下:

在protected/config/main中

 

1.首先应该有db的配置:

'db'=>array(
'connectionString' => 'mysql:host=localhost;dbname=test,//请修改为项目的数据库名称
'emulatePrepare' => true,
'username' => 'root',//请修改为项目的数据库用户名
'password' => '',//请修改为项目的数据库密码
'charset' => 'utf8',
'tablePrefix' => 'tbl_',//请修改为项目的数据库表前缀
),

2.配置authManager组件:

 

在components下添加

//配置authManager,使用Srbac的SDbAuthManager'authManager'=>array('class'=>'application.modules.srbac.components.SDbAuthManager',//'class'=>'CDbAuthManager',// Manager 的类型'defaultRoles'=>array('guest'),//默认角色'itemTable' => 'item',//认证项表名称(可修改)'itemChildTable' => 'itemchild',//认证项父子关系(可修改)'assignmentTable' => 'assignment',//认证项赋权关系(可修改)),

items,assignments,itemchildren三个表的名字可随意改动。表结构请到framework/web/auth/schema-mysql.sql中查看


3.继续添加srbac配置

 

添加以下配置代码


'srbac' => array('userclass'=>'User', //可选,默认是 User'userid'=>'id', //可选,默认是 userid'username'=>'username', //可选,默认是 username'delimeter'=>' ',//模块中添加operation时,插入Srbac之后的字段'debug'=>true, //可选,默认是 false,只有当debug为false时,模块才能生效'pageSize'=>10, //可选,默认是 15'superUser' =>'Admin', //可选,建议将此名称改为超级管理员名称,有利于角色的统一'css'=>'srbac.css', //可选,默认是 srbac.css'layout'=>'application.views.layouts.main', //可选,默认是// application.views.layouts.main, 必须是一个存在的路径别名'notAuthorizedView'=>'srbac.views.authitem.unauthorized', // 可选,默认是 unauthorized.php//srbac.views.authitem.unauthorized, 必须是一个存在的路径别名'alwaysAllowed'=>array( //可选,默认是 gui'SiteLogin','SiteLogout','SiteIndex','SiteAdmin','SiteError', 'SiteContact'),'userActions'=>array(//可选,默认是空数组'Show','View','List'),'listBoxNumberOfLines' => 15, //可选,默认是10'imagesPath' => 'srbac.images', //可选,默认是 srbac.images'imagesPack'=>'noia', //可选,默认是 noia'iconText'=>true, //可选,默认是 false'header'=>'srbac.views.authitem.header', //可选,默认是// srbac.views.authitem.header, 必须是一个存在的路径别名'footer'=>'srbac.views.authitem.footer', //可选,默认是// srbac.views.authitem.footer, 必须是一个存在的路径别名'showHeader'=>true, //可选,默认是false'showFooter'=>true, //可选,默认是false'alwaysAllowedPath'=>'srbac.components', //可选,默认是 srbac.components// 必须是一个存在的路径别名),

4.导入模块Controller路径:

 

查看srbac属性列表可以得到每个属性的详细信息

导入 SbaseController(for using the auto checking access feature):

'import'=>array('application.modules.srbac.models.*','application.modules.srbac.controllers.SBaseController',),

5.安装完成

 

你可以访问http://localhost/app/index.php?r=srbac/authitem

进入安装页面后如果有变红的项目,说明你的配置有问题,请修改为正确的配置。然后点击安装。

然后完成安装,显示成功后,你进入项目,找到protected\modules\srbac \views\authitem\install可以把这个文件夹删掉,也可以重命名。然后找到protected\modules\srbac \controllers\AuthitemController.php

注释掉beforeAction方法中的:

//if(!$this->module->isInstalled() && $action->id != "install") {// $this->redirect(array("install"));// $this->actionInstall();// return false;//}

因为这个地方判断每次都是新安装srbac。当你安装完成后,这里就没用了。可以注释掉了。

再访问链接http://localhost/app/index.php?r=srbac/authitem/authitem

就可以看到管理界面了。

http://images.cnitblog.com/blog/465954/201404/031111375621725.jpg


6.项目配置

对于Srbac的基本安装完成之后,我们可以使用其自带的基础权限操作功能,但为使之更加符合我们实际项目的操作要求,我们还需要按照我们的习惯为其修改部分细节以及增加一些功能:

6.1 在我们的components文件夹中的Controller.php中,我们需要将本类的继承关系更改为:

class Controller extends SBaseController

http://images.cnitblog.com/blog/465954/201404/031111413905024.jpg

而我们其他的controller则继续继承Controller。

修改完成之后,我们的权限控制功能将由Srbac模块负责。

6.2 在Srbac中,我们将user的id作为判断该用户身份的唯一标识,如果在以前的项目中没有getId的方法,那我们需要在omponents的UserIdentity.php文件中重写getId的方法:

例:

public function getId(){   //重写getId()方法return $this->id;}

6.3 接口文件:

RBACUtility.php:

此文件应放入我们的Yii框架的extensions文件夹中,其中包含了我们项目中经常使用的几个与用户权限操作相关的接口。

6.4 数据库中的表:

为实现我们的权限的管理操作,我们在数据库中有三个表来存储我们角色、任务、操作的关系,我们可以根据项目的实际需求来修改或者合并部分数据表,表结构和每张表的作用请参见《Yii权限管理工具Srbac使用小结》。


文章来源于:http://www.cnblogs.com/lianche/category/520600.html

这篇关于Yii中配置Srbac模块的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1017320

相关文章

关于Maven中pom.xml文件配置详解

《关于Maven中pom.xml文件配置详解》pom.xml是Maven项目的核心配置文件,它描述了项目的结构、依赖关系、构建配置等信息,通过合理配置pom.xml,可以提高项目的可维护性和构建效率... 目录1. POM文件的基本结构1.1 项目基本信息2. 项目属性2.1 引用属性3. 项目依赖4. 构

龙蜥操作系统Anolis OS-23.x安装配置图解教程(保姆级)

《龙蜥操作系统AnolisOS-23.x安装配置图解教程(保姆级)》:本文主要介绍了安装和配置AnolisOS23.2系统,包括分区、软件选择、设置root密码、网络配置、主机名设置和禁用SELinux的步骤,详细内容请阅读本文,希望能对你有所帮助... ‌AnolisOS‌是由阿里云推出的开源操作系统,旨

mysql-8.0.30压缩包版安装和配置MySQL环境过程

《mysql-8.0.30压缩包版安装和配置MySQL环境过程》该文章介绍了如何在Windows系统中下载、安装和配置MySQL数据库,包括下载地址、解压文件、创建和配置my.ini文件、设置环境变量... 目录压缩包安装配置下载配置环境变量下载和初始化总结压缩包安装配置下载下载地址:https://d

多模块的springboot项目发布指定模块的脚本方式

《多模块的springboot项目发布指定模块的脚本方式》该文章主要介绍了如何在多模块的SpringBoot项目中发布指定模块的脚本,作者原先的脚本会清理并编译所有模块,导致发布时间过长,通过简化脚本... 目录多模块的springboot项目发布指定模块的脚本1、不计成本地全部发布2、指定模块发布总结多模

gradle安装和环境配置全过程

《gradle安装和环境配置全过程》本文介绍了如何安装和配置Gradle环境,包括下载Gradle、配置环境变量、测试Gradle以及在IntelliJIDEA中配置Gradle... 目录gradle安装和环境配置1 下载GRADLE2 环境变量配置3 测试gradle4 设置gradle初始化文件5 i

SpringCloud配置动态更新原理解析

《SpringCloud配置动态更新原理解析》在微服务架构的浩瀚星海中,服务配置的动态更新如同魔法一般,能够让应用在不重启的情况下,实时响应配置的变更,SpringCloud作为微服务架构中的佼佼者,... 目录一、SpringBoot、Cloud配置的读取二、SpringCloud配置动态刷新三、更新@R

MySQL中my.ini文件的基础配置和优化配置方式

《MySQL中my.ini文件的基础配置和优化配置方式》文章讨论了数据库异步同步的优化思路,包括三个主要方面:幂等性、时序和延迟,作者还分享了MySQL配置文件的优化经验,并鼓励读者提供支持... 目录mysql my.ini文件的配置和优化配置优化思路MySQL配置文件优化总结MySQL my.ini文件

C#读取本地网络配置信息全攻略分享

《C#读取本地网络配置信息全攻略分享》在当今数字化时代,网络已深度融入我们生活与工作的方方面面,对于软件开发而言,掌握本地计算机的网络配置信息显得尤为关键,而在C#编程的世界里,我们又该如何巧妙地读取... 目录一、引言二、C# 读取本地网络配置信息的基础准备2.1 引入关键命名空间2.2 理解核心类与方法

Python中构建终端应用界面利器Blessed模块的使用

《Python中构建终端应用界面利器Blessed模块的使用》Blessed库作为一个轻量级且功能强大的解决方案,开始在开发者中赢得口碑,今天,我们就一起来探索一下它是如何让终端UI开发变得轻松而高... 目录一、安装与配置:简单、快速、无障碍二、基本功能:从彩色文本到动态交互1. 显示基本内容2. 创建链

最新版IDEA配置 Tomcat的详细过程

《最新版IDEA配置Tomcat的详细过程》本文介绍如何在IDEA中配置Tomcat服务器,并创建Web项目,首先检查Tomcat是否安装完成,然后在IDEA中创建Web项目并添加Web结构,接着,... 目录配置tomcat第一步,先给项目添加Web结构查看端口号配置tomcat    先检查自己的to