`

thinkphp中RBAC示例中登录没有权限的问题

    博客分类:
  • php
 
阅读更多

今天从thinkphp官网下载RBAC示例,准备移植我做的项目中。

但是移植完之后,发现只有admin可以登陆,其他用户登陆提示没有权限。

从RBAC.class.php中看到

static public function AccessDecision($appName=APP_NAME) {
        //检查是否需要认证
        if(RBAC::checkAccess()) {
            //存在认证识别号,则进行进一步的访问决策
            $accessGuid   =   md5($appName.MODULE_NAME.ACTION_NAME);
            if(empty($_SESSION[C('ADMIN_AUTH_KEY')])) {
                if(C('USER_AUTH_TYPE')==2) {
                    //加强验证和即时验证模式 更加安全 后台权限修改可以即时生效
                    //通过数据库进行访问检查
                    $accessList = RBAC::getAccessList($_SESSION[C('USER_AUTH_KEY')]);
                }else {
                    // 如果是管理员或者当前操作已经认证过,无需再次认证
                    if( $_SESSION[$accessGuid]) {
                        return true;
                    }
                    //登录验证模式,比较登录后保存的权限访问列表
                    $accessList = $_SESSION['_ACCESS_LIST'];
                }
                //判断是否为组件化模式,如果是,验证其全模块名
                $module = defined('P_MODULE_NAME')?  P_MODULE_NAME   :   MODULE_NAME;
                if(!isset($accessList[strtoupper($appName)][strtoupper($module)][strtoupper(ACTION_NAME)])) {
                    $_SESSION[$accessGuid]  =   false;
                    return false;
                }
                else {
                    $_SESSION[$accessGuid]	=	true;
                }
            }else{
                //管理员无需认证
				return true;
			}
        }
        return true;
    }

 发现要用到APP_NAME,而我的项目名为App。而从数据库中get的名称为Rbac。

所以只要把think_node中name字段为Rbac改为App,就可以了。

 

分享到:
评论

相关推荐

    thinkphp rbac 实例

    thinkphp rbac 实例基于角色的访问控制(Role-Based Access Control)作为传统访问控制(自主访问,强制访问)的有前景的代替受到广泛的关注。 在RBAC中,权限与角色相关联,用户通过成为适当角色的成员而得到这些...

    ThinkPHP(RBAC)权限管理系统_第6讲_添加角色

    在本节教程“ThinkPHP(RBAC)权限管理系统_第6讲_添加角色”中,我们将深入探讨如何在基于ThinkPHP框架的系统中实现角色(Role-Based Access Control,RBAC)的管理,尤其是如何添加新的角色。RBAC是一种广泛使用的...

    thinkphp3.1 rbac

    在ThinkPHP3.1中,RBAC主要通过`Auth`类实现,它提供了丰富的接口供开发者进行权限判断和管理。该类主要包括以下功能: 1. 用户角色分配:可以将用户分配到不同的角色,实现权限的批量授予。 2. 权限管理:可以对...

    ThinkPHP2.1 RBAC使用和示例操作

    在`ThinkPHP2.1 RBAC使用和示例操作.chm`文件中,可能包含了详细的教程和代码示例,帮助开发者了解如何在实际项目中运用RBAC机制。文件可能涵盖了从数据库设计、权限规则设置、角色管理到权限判断的全过程,通过实例...

    ThinkPHP(RBAC)权限管理系统_第8讲_添加权限

    在本节课程“ThinkPHP(RBAC)权限管理系统_第8讲_添加权限”中,我们将深入探讨如何在基于ThinkPHP框架的系统中实现RBAC(Role-Based Access Control,基于角色的访问控制)机制,以及如何添加新的权限。RBAC是一种...

    THINKPHP的 RBAC材料

    在提供的压缩包文件中,"Thinkphp教程.doc"可能包含了关于如何在THINKPHP框架下实现RBAC的详细步骤和示例代码。"web"目录可能包含了相关的前端资源,如HTML、CSS和JavaScript文件,用于构建权限管理的用户界面。而...

    ThinkPHP(RBAC)权限管理系统_第25讲_RBAC认证配置信息

    在本节课程“ThinkPHP(RBAC)权限管理系统_第25讲_RBAC认证配置信息”中,我们将深入探讨如何在ThinkPHP框架下构建一个基于RBAC(Role-Based Access Control,角色基础的访问控制)的权限管理系统。RBAC是一种常用的...

    ThinkPHP(RBAC)权限管理系统视频教程课件.zip

    1. **理论讲解**:这部分可能涵盖RBAC的基本概念,如角色、权限、用户的关系,以及在ThinkPHP框架中实现RBAC的原理。 2. **环境搭建**:介绍如何安装和配置ThinkPHP框架,以及必要的开发环境,如PHP、数据库等。 3. ...

    ThinkPHP2.1 RBAC使用和示例操作.pdf

    #### RBAC示例操作演示 ##### 理论介绍 RBAC的核心理念是基于角色进行权限分配,而不是直接对用户进行权限分配。这样做的好处是可以更方便地管理和调整权限,同时保持系统的灵活性和安全性。 ##### 准备工作 在...

    ThinkPHP(RBAC)权限管理系统_第24讲_角色管理之配置权限

    在本节课程“ThinkPHP(RBAC)权限管理系统_第24讲_角色管理之配置权限”中,我们将深入探讨如何在基于ThinkPHP框架的RBAC(Role-Based Access Control,基于角色的访问控制)系统中进行角色管理和权限配置。RBAC是一...

    ThinkPHP(RBAC)权限管理系统_第10讲_添加权限

    在视频资源“雪狐ThinkPHP(RBAC)权限管理系统_第10讲_添加权限.avi”中,讲师将会详细讲解如何在实际项目中实现这些步骤,包括具体的代码示例和注意事项,帮助你更好地理解和应用RBAC权限管理。

    thinkphp中比rbac更好用的auth权限认证;测试地址:http:--dem-thinkphp_auth.zip

    Auth权限认证是ThinkPHP框架中的一种高级权限控制模式,相比于传统的RBAC,它具有更多的自定义性和灵活性。Auth机制的核心思想是基于用户、规则和权限进行控制,而不是基于角色。这使得开发者可以对每个用户或用户组...

    ThinkPHP开发文档

    `ThinkPHP 2.1 RBAC示例操作演示.pdf`提供了实际操作的步骤和案例,帮助读者理解并实践RBAC的实现过程,增强实战能力。 `ThinkPHP 2.1 自定义标签示例说明.pdf`讲述了如何在框架中自定义标记,这对于扩展框架功能和...

    PHP.zip_php后台_thinkPHP rbac_前端框架

    在ThinkPHP框架中,RBAC是一种常用的身份验证和授权机制。通过定义角色(Role)、权限(Permission)和角色与权限的关系,我们可以灵活地控制不同用户对系统的访问权限。RBAC模型不仅降低了权限管理的复杂度,还使得...

    thinkphpRBAC

    本文将详细介绍ThinkPHP 2.1版本中RBAC类的具体使用方法,包括相关的数据表设计以及关键文件的介绍,并结合具体的代码示例进行解析。 #### 二、数据表设计 RBAC机制的核心在于合理的数据表设计,以下是在ThinkPHP ...

    thinkPHP6接口编写示例

    在本示例中,我们将深入探讨`thinkPHP6`框架如何用于编写接口,特别是与小程序商城和后台管理系统相关的接口设计。`thinkPHP6`是一款基于`Swoole`的高性能PHP框架,它提供了丰富的功能和优秀的性能,适用于构建API、...

    thinkphp RABC使用和示例操作

    #### RBAC示例操作演示 ##### 理论介绍 RBAC是一种常用的访问控制模型,通过将用户与不同的角色关联起来,进而控制用户可以访问的资源和执行的操作。在ThinkPHP框架中,我们可以利用提供的工具类和方法来实现RBAC...

    RBAC使用和示例操作

    #### RBAC示例操作演示 ##### 理论介绍 RBAC是一种非常常见的访问控制机制,在企业级应用中广泛使用。它通过将用户分为不同的角色,然后为这些角色分配相应的权限,从而实现对资源的访问控制。在ThinkPHP框架中...

    PHP_THINKPHP_study14_RBAC

    虽然描述中没有提供具体信息,但从提供的博文链接(https://hefengjun1.iteye.com/blog/2335818)我们可以推测,这个项目可能是博主HeFengjun分享的一个学习资源,旨在帮助开发者了解如何在ThinkPHP框架中实现RBAC...

    ThinkPHP基于角色的访问控制

    在提供的`TP201501Demo04`项目中,我们可以看到一个简单的RBAC示例: - `Role`、`Permission`、`UserRole`数据库表的定义和模型文件。 - `Auth`类的实现,用于权限验证。 - 控制器中的权限检查代码,例如在`...

Global site tag (gtag.js) - Google Analytics