JAVA、PHP、前端、APP、网站开发 - 开发技术学习

开发技术学习 » 编程开发 » ThinkPHP后台设置,ThinkPHP权限配置及后台功能

ThinkPHP后台设置,ThinkPHP权限配置及后台功能

此文被围观3418日期: 2012-07-10 分类 : 编程开发  标签:  ········
今天在做那个ThinkPHP后台登录验证的时候遇到这个问题,在多个后台项目和前台项目共同在根目录下如何来判断是否有权限。 看如果代码,作者是将后台和前台放到不同的目录下的,后台所有操作在一个项目下,前台也是在一个目录下,作者用的是调用公共方法,代码如下: [php] class GlobalAction extends Action{ private $groupId; private $userId; private $userName; function _initialize() { //初始化时获取用户ID和用户组ID $this->groupId=intval(Session::get('groupid')); $this->userId=intval(Session::get(C('USER_AUTH_KEY'))); $this->userName=Session::get('username'); //dump($this->groupId); /* 限制允许进入后台的用户组,默认禁用此功能 $allowAdmin=array(1,2); if(!isset($_SESSION[C('USER_AUTH_KEY')]) || !in_array($this->groupId,$allowAdmin,true) ) */ if($this->userId==false ||$this->groupId==false ) { $this->redirect('login','Public'); } } /* 获取用户ID */ Protected function getUid(){ //$uid=intval($_SESSION[C('USER_AUTH_KEY')]); return $this->userId; } /* 获取用户组ID */ Protected function getGid(){ //$gid=intval($_SESSION['groupid']); return $this->groupId; } /* 获取用户名 */ Protected function getName(){ //$gid=intval($_SESSION['groupid']); return $this->userName; } } [/php] 然后根据class IndexAction extends GlobalAction{}这个来判断的 在看另外一个,根据RBAC来做的: [php] <?php if (!defined('THINK_PATH')) exit(); $config = require '../config.php'; $array = array( 'SESSION_AUTO_START' => true, 'USER_AUTH_ON' => true, 'USER_AUTH_TYPE' => 1, // 默认认证类型 1 登录认证 2 实时认证 'USER_AUTH_KEY' => 'authId', // 用户认证SESSION标记 'ADMIN_AUTH_KEY' => 'admin', 'USER_AUTH_MODEL' => 'User', // 默认验证数据表模型 'AUTH_PWD_ENCODER' => 'md5', // 用户认证密码加密方式 'USER_AUTH_GATEWAY' => '/Pub/login',// 默认认证网关 'NOT_AUTH_MODULE' => 'Pub', // 默认无需认证模块 'REQUIRE_AUTH_MODULE' => '', // 默认需要认证模块 'NOT_AUTH_ACTION' => '', // 默认无需认证操作 'REQUIRE_AUTH_ACTION' => '', // 默认需要认证操作 'GUEST_AUTH_ON' => false, // 是否开启游客授权访问 'GUEST_AUTH_ID' => 0, // 游客的用户ID // 'DB_LIKE_FIELDS' => 'title|remark', 'RBAC_ROLE_TABLE' => 'dlb_role', 'RBAC_USER_TABLE' => 'dlb_role_user', 'RBAC_ACCESS_TABLE' => 'dlb_access', 'RBAC_NODE_TABLE' => 'dlb_node', 'SHOW_PAGE_TRACE' => 0, //显示调试信息 // 'DB_CASE_LOWER' => true, //查询数组键值转换为小写 //自定义配置,是否系统管理员,默认不是 'IS_SYS_ADMIN' => 'is_admin', 'ADMIN_USER_TYPE' => 'user_type', ); return array_merge($config,$array); [/php] 前面一种好理解,后面一种就不是很清楚。

站点声明:部分内容源自互联网,为传播信息之用,如有侵权,请联系我们删除。

© Copyright 2011-2024 www.kfju.com. All Rights Reserved.
超级字帖 版权所有。蜀ICP备12031064号