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');