thinkphp控制器权限 (在构造函数时统一加权限等)
来源:互联网 发布:simnow python 编辑:程序博客网 时间:2024/06/11 21:13
class CircleTopicController extends Controller{ //检查是否登录 public function _initialize() { check_login(); }
/* * 检查是否登录 */function check_login(){ if(!isset($_SESSION['loginstate']) || $_SESSION['loginstate']==0){ $_SESSION['loginstate'] = 0; unset($_SESSION['adminname']); $login_url = C('APP'); header('Location: '.$login_url.'/Index/Index/login'); }else{//否则检查权限 check_rbac(); }}
/* * 检查权限 */function check_rbac(){ $role_name = $_SESSION['adminname']; $rbac_id =explode(',',M('admins')->where("adminname = "."'$role_name'")->getField('rbac_id')); $rbac_controll_info = []; foreach($rbac_id as $key=>$value){ $rbac_controll_info[] = M('admins_rbac')->where("id = ".$value)->getField('controller'); } $rbac_controll_info = explode(',',implode(',',$rbac_controll_info)); if($rbac_controll_info){ $current_controll = explode('/',$_SERVER['PHP_SELF'])[2]; if(!in_array($current_controll,$rbac_controll_info)){ echo "<script>alert('You do not have permission to access!');history.go(-1);</script>"; exit(); } }else{ echo "<script>alert('You do not have permission to access!');history.go(-1);</script>"; exit(); }}
表
用户表,权限 表
SET FOREIGN_KEY_CHECKS=0;-- ------------------------------ Table structure for `admins`-- ----------------------------DROP TABLE IF EXISTS `admins`;CREATE TABLE `admins` ( `adminid` int(8) NOT NULL AUTO_INCREMENT, `adminname` varchar(50) DEFAULT NULL, `adminpass` varchar(32) DEFAULT NULL, `regtime` int(12) DEFAULT NULL, `sex` int(1) DEFAULT NULL, `settime` int(12) DEFAULT NULL, `email` varchar(50) DEFAULT NULL, `phone` varchar(20) DEFAULT NULL, `rbac_id` varchar(100) DEFAULT NULL COMMENT '权限表id (针对的是版块)', `rbac_user_power` varchar(20) DEFAULT NULL COMMENT '操作权限(针对的是 增、改、删)add,add,del', PRIMARY KEY (`adminid`)) ENGINE=InnoDB AUTO_INCREMENT=15 DEFAULT CHARSET=utf8;
SET FOREIGN_KEY_CHECKS=0;-- ------------------------------ Table structure for `admins_rbac`-- ----------------------------DROP TABLE IF EXISTS `admins_rbac`;CREATE TABLE `admins_rbac` ( `id` int(11) NOT NULL AUTO_INCREMENT, `menu_name` varchar(60) DEFAULT NULL COMMENT '后台 菜单名称', `controller` varchar(200) DEFAULT NULL COMMENT '允许访问控制器名称', PRIMARY KEY (`id`)) ENGINE=MyISAM AUTO_INCREMENT=14 DEFAULT CHARSET=utf8;-- ------------------------------ Records of admins_rbac-- ----------------------------INSERT INTO `admins_rbac` VALUES ('1', '用户列表', 'SiteUsers');INSERT INTO `admins_rbac` VALUES ('2', '商家入驻', 'Ruzhu');INSERT INTO `admins_rbac` VALUES ('3', '圈子问答', 'Ask,Answer');INSERT INTO `admins_rbac` VALUES ('4', '资料管理', 'DataExamine,Data');INSERT INTO `admins_rbac` VALUES ('5', '资讯列表', 'News');INSERT INTO `admins_rbac` VALUES ('6', '标签管理', 'labelClassify,label,Label');INSERT INTO `admins_rbac` VALUES ('7', '圈子管理', 'circleCategory,circle,CircleTopic,CircleTopicReply,Circle');INSERT INTO `admins_rbac` VALUES ('8', '系统用户管理', 'Users');INSERT INTO `admins_rbac` VALUES ('9', '首页信息推荐', 'IndexRecommend');INSERT INTO `admins_rbac` VALUES ('10', '退出', 'Index');INSERT INTO `admins_rbac` VALUES ('11', 'app轮播图', 'AppSlide');INSERT INTO `admins_rbac` VALUES ('12', 'web轮播图', 'WebSlide');INSERT INTO `admins_rbac` VALUES ('13', '中奖记录', 'DrawPrize');
0 0
- thinkphp控制器权限 (在构造函数时统一加权限等)
- ThinkPHP:R()方法请求控制器无权限
- ThinkPHP——RBAC父类控制器权限过滤(权限漏洞修复)
- php 通过基类和构造函数统一验证程序访问权限
- 构造函数、访问权限private
- Ocelot统一权限验证
- 在CI中的控制器需要使用构造函数时注意
- 提升进程权限-OpenProcessToken等函数的用法(转载)
- 默认构造函数的访问权限
- 默认构造函数的访问权限
- Android6.0仿IOS在欢迎页面统一请求权限
- 权限控制器AccessController
- 权限控制器shiro
- thinkphp的权限控制
- thinkphp Auth 权限认证
- Thinkphp RBAC权限配置
- thinkphp 权限验证
- ThinkPHP-4-权限管理
- 更新一些git命令
- oc-Block
- wireshark : 明确connect、client-close、server-close、data-send
- vs+qt uic rcc 系统找不到指定的路径
- 微信小程序开发
- thinkphp控制器权限 (在构造函数时统一加权限等)
- android设置软键盘搜索键以及监听搜索键点击事件
- spring 3.x整合ehcache 2.x
- CyclicBarrier 源码阅读
- AndroidMainfest.xml详解——<permission-group>
- Spring Security——退出登录logout
- 2416,LED驱动分析
- 每天一个linux命令(44):top命令
- Spring 定时器注解 与配置文件