摘要:管理員表用戶用戶名密碼添加時(shí)間最后登錄時(shí)間最后登錄權(quán)限角色角色表角色角色名稱權(quán)限列表角色描述功能菜單表權(quán)限名字所屬分組權(quán)限碼控制器動(dòng)作刪除狀態(tài)刪除正常根據(jù)角色權(quán)限過濾菜單過濾菜單系統(tǒng)設(shè)置網(wǎng)站設(shè)置友情鏈接自定義導(dǎo)航區(qū)域管理權(quán)限資源列表
//管理員表 CREATE TABLE `qz_admin` ( `admin_id` smallint(5) unsigned NOT NULL AUTO_INCREMENT COMMENT "用戶id", `admin_name` varchar(60) NOT NULL DEFAULT "" COMMENT "用戶名", `email` varchar(60) NOT NULL DEFAULT "" COMMENT "email", `password` varchar(32) NOT NULL DEFAULT "" COMMENT "密碼", `add_time` int(11) NOT NULL DEFAULT "0" COMMENT "添加時(shí)間", `last_login` int(11) NOT NULL DEFAULT "0" COMMENT "最后登錄時(shí)間", `last_ip` varchar(15) NOT NULL DEFAULT "" COMMENT "最后登錄ip", `nav_list` text NOT NULL COMMENT "權(quán)限", `role_id` smallint(5) DEFAULT NULL COMMENT "角色id", PRIMARY KEY (`admin_id`), KEY `user_name` (`user_name`) USING BTREE ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8; //角色表 CREATE TABLE `qz_admin_role` ( `role_id` smallint(6) unsigned NOT NULL AUTO_INCREMENT COMMENT "角色I(xiàn)D", `role_name` varchar(30) DEFAULT NULL COMMENT "角色名稱", `act_list` text COMMENT "權(quán)限列表", `role_desc` varchar(255) DEFAULT NULL COMMENT "角色描述", PRIMARY KEY (`role_id`) ) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8; //功能菜單表 CREATE TABLE `qz_system_menu` ( `id` smallint(6) unsigned NOT NULL AUTO_INCREMENT, `name` varchar(50) DEFAULT NULL COMMENT "權(quán)限名字", `group` varchar(20) DEFAULT NULL COMMENT "所屬分組", `right` text COMMENT "權(quán)限碼(控制器+動(dòng)作)", `is_del` tinyint(1) DEFAULT "0" COMMENT "刪除狀態(tài) 1刪除,0正常", PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=18 DEFAULT CHARSET=utf8;
function getMenuList($act_list){ //根據(jù)角色權(quán)限過濾菜單 $menu_list = getAllMenu(); if($act_list != "all"){ $right = M("system_menu")->where("id in ($act_list)")->cache(false)->getField("right",true); $role_right = ""; foreach ($right as $val){ $role_right .= $val.","; } $role_right = explode(",", $role_right); foreach($menu_list as $k=>$mrr){ foreach ($mrr["sub_menu"] as $j=>$v){ if(!in_array($v["control"]."Controller@".$v["act"], $role_right)){ unset($menu_list[$k]["sub_menu"][$j]);//過濾菜單 } } } } return $menu_list; } function getAllMenu(){ return array( "system" => array("name"=>"系統(tǒng)設(shè)置","icon"=>"fa-cog","sub_menu"=>array( array("name"=>"網(wǎng)站設(shè)置","act"=>"index","control"=>"System"), array("name"=>"友情鏈接","act"=>"linkList","control"=>"Article"), array("name"=>"自定義導(dǎo)航","act"=>"navigationList","control"=>"System"), array("name"=>"區(qū)域管理","act"=>"region","control"=>"Tools"), array("name"=>"權(quán)限資源列表","act"=>"right_list","control"=>"System"), )), "access" => array("name" => "權(quán)限管理", "icon"=>"fa-gears", "sub_menu" => array( array("name" => "管理員列表", "act"=>"index", "control"=>"Admin"), array("name" => "角色管理", "act"=>"role", "control"=>"Admin"), array("name" => "供應(yīng)商管理", "act"=>"supplier", "control"=>"Admin"), array("name" => "管理員日志", "act"=>"log", "control"=>"Admin"), )), "member" => array("name"=>"會(huì)員管理","icon"=>"fa-user","sub_menu"=>array( array("name"=>"會(huì)員列表","act"=>"index","control"=>"User"), array("name"=>"會(huì)員等級(jí)","act"=>"levelList","control"=>"User"), )), "article" => array("name" => "文章管理", "icon"=>"fa-comments", "sub_menu" => array( array("name" => "文章列表", "act"=>"articleList", "control"=>"Article"), array("name" => "文章分類", "act"=>"categoryList", "control"=>"Article"), array("name" => "專題列表", "act"=>"topicList", "control"=>"Topic"), )) ); }
//權(quán)限驗(yàn)證函數(shù)(TP), 入口初始化執(zhí)行 public function check_priv() { $ctl = CONTROLLER_NAME; $act = ACTION_NAME; $act_list = session("act_list"); //無需驗(yàn)證的操作 $uneed_check = array("login","logout","vertifyHandle","vertify","imageUp","upload","login_task"); if($ctl == "Index" || $act_list == "all"){ //后臺(tái)首頁(yè)控制器無需驗(yàn)證,超級(jí)管理員無需驗(yàn)證 return true; }elseif(strpos("ajax",$act) || in_array($act,$uneed_check)){ //所有ajax請(qǐng)求不需要驗(yàn)證權(quán)限 return true; }else{ $role_right = ""; $right = M("system_menu")->where("id in ($act_list)")->cache(true)->getField("right",true); foreach ($right as $val){ $role_right .= $val.","; } $role_right = explode(",", $role_right); //檢查是否擁有此操作權(quán)限 if(!in_array($ctl."Controller@".$act, $role_right)){ $this->error("您沒有操作權(quán)限,請(qǐng)聯(lián)系超級(jí)管理員分配權(quán)限",U("Admin/Index/index")); } } }
//權(quán)限分配,給角色添加、修改權(quán)限 public function role_info(){ $role_id = I("get.role_id"); $tree = $detail = array(); if($role_id){ $detail = M("admin_role")->where("role_id=$role_id")->find(); $detail["act_list"] = explode(",", $detail["act_list"]); $this->assign("detail",$detail); } $right = M("system_menu")->order("id")->select(); foreach ($right as $val){ if(!empty($detail)){ $val["enable"] = in_array($val["id"], $detail["act_list"]); } $modules[$val["group"]][] = $val; } //權(quán)限組(對(duì)應(yīng)數(shù)據(jù)表里面的group字段) $group = array("system"=>"系統(tǒng)管理","access"=>"權(quán)限管理",article"=>"文章管理","member"=>"會(huì)員管理"); $this->assign("group",$group); $this->assign("modules",$modules); $this->display(); } //權(quán)限分配保存 public function roleSave(){ $data = I("post."); $res = $data["data"]; $res["act_list"] = is_array($data["right"]) ? implode(",", $data["right"]) : ""; if(empty($data["role_id"])){ $r = D("admin_role")->add($res); }else{ $r = D("admin_role")->where("role_id=".$data["role_id"])->save($res); } if($r){ adminLog("管理角色",__ACTION__); $this->success("操作成功!",U("Admin/Admin/role_info",array("role_id"=>$data["role_id"]))); }else{ $this->success("操作失敗!",U("Admin/Admin/role")); } }
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/22415.html
摘要:即基于拿來即用高性能后臺(tái)管理系統(tǒng)官方文檔地址在線體驗(yàn)地址賬戶密碼線上倉(cāng)庫(kù)在線地址源代碼下載克隆直接下載本地部署運(yùn)行環(huán)境要求建議配置虛擬域名若不清楚,請(qǐng)自行解決之,方便接下來開展你的開發(fā)工作。 新版本在線體驗(yàn)地址已經(jīng)上線,歡迎體驗(yàn)? ---2017-01-14 喜歡就Star,不只是Fork; 想要分享的動(dòng)機(jī)才是驅(qū)動(dòng)力,而技術(shù)僅僅是一種方法。 ====================...
摘要:即基于拿來即用高性能后臺(tái)管理系統(tǒng)官方文檔地址在線體驗(yàn)地址賬戶密碼線上倉(cāng)庫(kù)在線地址源代碼下載克隆直接下載本地部署運(yùn)行環(huán)境要求建議配置虛擬域名若不清楚,請(qǐng)自行解決之,方便接下來開展你的開發(fā)工作。 新版本在線體驗(yàn)地址已經(jīng)上線,歡迎體驗(yàn)? ---2017-01-14 喜歡就Star,不只是Fork; 想要分享的動(dòng)機(jī)才是驅(qū)動(dòng)力,而技術(shù)僅僅是一種方法。 ====================...
摘要:數(shù)據(jù)庫(kù)文件已經(jīng)上傳,安裝配置就可以使用簡(jiǎn)稱即基于的后臺(tái)管理系統(tǒng)官方文檔地址在線體驗(yàn)地址賬戶密碼線上倉(cāng)庫(kù)在線地址源代碼下載克隆直接下載本地部署運(yùn)行環(huán)境要求建議配置虛擬域名若不清楚,請(qǐng)自行解決之,方便接下來開展你的開發(fā)工作。 喜歡就Star,不只是Fork; 想要分享的動(dòng)機(jī)才是驅(qū)動(dòng)力,而技術(shù)僅僅是一種方法。 數(shù)據(jù)庫(kù)文件已經(jīng)上傳,安裝配置就可以使用 showImg(https://seg...
摘要:數(shù)據(jù)庫(kù)文件已經(jīng)上傳,安裝配置就可以使用簡(jiǎn)稱即基于的后臺(tái)管理系統(tǒng)官方文檔地址在線體驗(yàn)地址賬戶密碼線上倉(cāng)庫(kù)在線地址源代碼下載克隆直接下載本地部署運(yùn)行環(huán)境要求建議配置虛擬域名若不清楚,請(qǐng)自行解決之,方便接下來開展你的開發(fā)工作。 喜歡就Star,不只是Fork; 想要分享的動(dòng)機(jī)才是驅(qū)動(dòng)力,而技術(shù)僅僅是一種方法。 數(shù)據(jù)庫(kù)文件已經(jīng)上傳,安裝配置就可以使用 showImg(https://seg...
閱讀 3338·2021-11-22 15:22
閱讀 2862·2021-10-12 10:12
閱讀 2156·2021-08-21 14:10
閱讀 3822·2021-08-19 11:13
閱讀 2841·2019-08-30 15:43
閱讀 3223·2019-08-29 16:52
閱讀 438·2019-08-29 16:41
閱讀 1427·2019-08-29 12:53