摘要:管理員表用戶用戶名密碼添加時間最后登錄時間最后登錄權限角色角色表角色角色名稱權限列表角色描述功能菜單表權限名字所屬分組權限碼控制器動作刪除狀態刪除正常根據角色權限過濾菜單過濾菜單系統設置網站設置友情鏈接自定義導航區域管理權限資源列表
//管理員表 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 "添加時間", `last_login` int(11) NOT NULL DEFAULT "0" COMMENT "最后登錄時間", `last_ip` varchar(15) NOT NULL DEFAULT "" COMMENT "最后登錄ip", `nav_list` text NOT NULL COMMENT "權限", `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 "角色ID", `role_name` varchar(30) DEFAULT NULL COMMENT "角色名稱", `act_list` text COMMENT "權限列表", `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 "權限名字", `group` varchar(20) DEFAULT NULL COMMENT "所屬分組", `right` text COMMENT "權限碼(控制器+動作)", `is_del` tinyint(1) DEFAULT "0" COMMENT "刪除狀態 1刪除,0正常", PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=18 DEFAULT CHARSET=utf8;
function getMenuList($act_list){ //根據角色權限過濾菜單 $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"=>"系統設置","icon"=>"fa-cog","sub_menu"=>array( array("name"=>"網站設置","act"=>"index","control"=>"System"), array("name"=>"友情鏈接","act"=>"linkList","control"=>"Article"), array("name"=>"自定義導航","act"=>"navigationList","control"=>"System"), array("name"=>"區域管理","act"=>"region","control"=>"Tools"), array("name"=>"權限資源列表","act"=>"right_list","control"=>"System"), )), "access" => array("name" => "權限管理", "icon"=>"fa-gears", "sub_menu" => array( array("name" => "管理員列表", "act"=>"index", "control"=>"Admin"), array("name" => "角色管理", "act"=>"role", "control"=>"Admin"), array("name" => "供應商管理", "act"=>"supplier", "control"=>"Admin"), array("name" => "管理員日志", "act"=>"log", "control"=>"Admin"), )), "member" => array("name"=>"會員管理","icon"=>"fa-user","sub_menu"=>array( array("name"=>"會員列表","act"=>"index","control"=>"User"), array("name"=>"會員等級","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"), )) ); }
//權限驗證函數(TP), 入口初始化執行 public function check_priv() { $ctl = CONTROLLER_NAME; $act = ACTION_NAME; $act_list = session("act_list"); //無需驗證的操作 $uneed_check = array("login","logout","vertifyHandle","vertify","imageUp","upload","login_task"); if($ctl == "Index" || $act_list == "all"){ //后臺首頁控制器無需驗證,超級管理員無需驗證 return true; }elseif(strpos("ajax",$act) || in_array($act,$uneed_check)){ //所有ajax請求不需要驗證權限 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); //檢查是否擁有此操作權限 if(!in_array($ctl."Controller@".$act, $role_right)){ $this->error("您沒有操作權限,請聯系超級管理員分配權限",U("Admin/Index/index")); } } }
//權限分配,給角色添加、修改權限 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; } //權限組(對應數據表里面的group字段) $group = array("system"=>"系統管理","access"=>"權限管理",article"=>"文章管理","member"=>"會員管理"); $this->assign("group",$group); $this->assign("modules",$modules); $this->display(); } //權限分配保存 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")); } }
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/22415.html
摘要:即基于拿來即用高性能后臺管理系統官方文檔地址在線體驗地址賬戶密碼線上倉庫在線地址源代碼下載克隆直接下載本地部署運行環境要求建議配置虛擬域名若不清楚,請自行解決之,方便接下來開展你的開發工作。 新版本在線體驗地址已經上線,歡迎體驗? ---2017-01-14 喜歡就Star,不只是Fork; 想要分享的動機才是驅動力,而技術僅僅是一種方法。 ====================...
摘要:即基于拿來即用高性能后臺管理系統官方文檔地址在線體驗地址賬戶密碼線上倉庫在線地址源代碼下載克隆直接下載本地部署運行環境要求建議配置虛擬域名若不清楚,請自行解決之,方便接下來開展你的開發工作。 新版本在線體驗地址已經上線,歡迎體驗? ---2017-01-14 喜歡就Star,不只是Fork; 想要分享的動機才是驅動力,而技術僅僅是一種方法。 ====================...
摘要:數據庫文件已經上傳,安裝配置就可以使用簡稱即基于的后臺管理系統官方文檔地址在線體驗地址賬戶密碼線上倉庫在線地址源代碼下載克隆直接下載本地部署運行環境要求建議配置虛擬域名若不清楚,請自行解決之,方便接下來開展你的開發工作。 喜歡就Star,不只是Fork; 想要分享的動機才是驅動力,而技術僅僅是一種方法。 數據庫文件已經上傳,安裝配置就可以使用 showImg(https://seg...
摘要:數據庫文件已經上傳,安裝配置就可以使用簡稱即基于的后臺管理系統官方文檔地址在線體驗地址賬戶密碼線上倉庫在線地址源代碼下載克隆直接下載本地部署運行環境要求建議配置虛擬域名若不清楚,請自行解決之,方便接下來開展你的開發工作。 喜歡就Star,不只是Fork; 想要分享的動機才是驅動力,而技術僅僅是一種方法。 數據庫文件已經上傳,安裝配置就可以使用 showImg(https://seg...
閱讀 3353·2021-11-22 15:22
閱讀 2879·2021-10-12 10:12
閱讀 2172·2021-08-21 14:10
閱讀 3841·2021-08-19 11:13
閱讀 2857·2019-08-30 15:43
閱讀 3238·2019-08-29 16:52
閱讀 458·2019-08-29 16:41
閱讀 1446·2019-08-29 12:53