国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

yotaku的開發日志(1)

2019-11-14 14:35:36
字體:
來源:轉載
供稿:網友

2015-12-18 21:17:46

連續看了幾天的Thinkphp框架,目前看到基于角色的用戶訪問權限控制。

 相關代碼如下:

數據庫

用戶表(管理員)

 

mg_idmg_namemg_pwdmg_timemg_role_id
0creatint12325874135471
1yotaku1232587449844
CREAATE TABLE `sw_manager` (    `mg_id` int(11) NOT NULL AUTO_INCREMENT,    `mg_name` varchar(32) NOT NULL,    `mg_pwd` varchar(32) NOT NULL,     `mg_time` int(10) unsigned NOT NULL COMMENT '時間',    `mg_role_id` tinyint(3) unsigned NOT NULL DEFAULT '0' COMMENT '角色id',    PRIMARY KEY (`mg_id`)) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

權限表

auth_id(權限ID)auth_name(權限名稱)auth_pid(父id)auth_c(控制器)auth_a(操作方法)auth_path(全路徑)auth_level(權限級別)
100產品中心0''''1000
101產品展示100ManagerControllershow100-1011
CREATE TABLE `sw_auth` (    `auth_id` smallint(6) unsigned NOT NULL AUTO_INCREMENT,    `auth_name` varchar(20) NOT NULL COMMENT '權限名稱',    `auth_pid` smallint(6) unsigned NOT NULL COMMENT'父id',    `auth_c` varchar(32) NOT NULL DEFAULT '' COMMENT '控制器',    `auth_a` varchar(32) NOT NULL DEFAULT '' COMMENT '操作方法',    `auth_path` varchar(32) NOT NULL COMMENT '全路徑',    `auth_level` tinyint(4) NOT NULL DEFAULT '0' COMMENT '級別',    PRIMARY KEY(`auth_id`)) ENGING-InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

角色表

role_idrole_namerole_auth_idsrole_auth_ac
0站主1,3,9操作器-控制器,操作器-控制器,...
1高級管理員1,2,3,9,12操作器-控制器,操作器-控制器,...
CREATE TABLE `sw_role` (    `role_id` smallint(6) unsigned NOT NULL AUTO_INCREMENT,    `role_name` varchar(20) NOT NULL COMMENT '角色名稱',    `role_auth_ids` varchar(128) NOT NULL DEFAULT '' COMMENT '權限id,1,3,..',    `role_auth_ac` text COMMENT '控制器2-操作3,控制器1-操作6,...',    PRIMARY KEY(`role_id`)) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

 


數據模擬

1.權限數據

  產品中心(產品展示,最新產品,分類管理,子類管理) 高級管理(用戶留言,留言簿,產品訂購,文件管理) 系統管理(基本設置,樣式管理,首頁設置,管理員列表)

頂級權限insert into sw_auth values ( 100,'產品中心',0,'','',100,0 );insert into sw_auth values ( 101,'高級管理',0,'','',101,0 );insert into sw_auth values ( 102,'系統管理',0,'','',102,0 );insert into sw_auth values ( 103,'權限管理',0,'','',103,0 );次級權限insert into sw_auth values ( 104,'產品展示',100,'Goods','show','100-104',1 );insert into sw_auth values ( 105,'最新產品',100,'Goods','showlist','100-105',1 );insert into sw_auth values ( 106,'分類管理',100,'Goods','cate','100-106',1 );insert into sw_auth values ( 107,'用戶留言',101,'Goods','Words','101-107',1 );insert into sw_auth values ( 108,'留言簿',  101,'Goods','wordsbook','101-108',1 );insert into sw_auth values ( 109,'基本設置',102,'Goods','set','102-109',1 );insert into sw_auth values ( 110,'樣式管理',102,'Goods','CSS','102-110',1 );insert into sw_auth values ( 111,'用戶列表',103,'Goods','userlist','103-111',1 );insert into sw_auth values ( 112,'角色管理',103,'Goods','role','103-112',1 );insert into sw_auth values ( 113,'權限列表',103,'Goods','auth','103-113',1 );

2.角色數據

  sw_role 站主 所有權限(103,104,105,106,107,108,109) 管理員 部分權限(104,105,109) 版主 部分權限(103,108)

角色insert into sw_role values (10,'站主','100,101,102,103,104,105,106,107,108,109,110,111,112,113','Goods-show,Goods-showlist,Goods-cate,Goods-words,Goods-wordsbook,Goods-set,Goods-css');insert into sw_role values (11,'管理員','100,102,104,105,109','Goods-showlist,Goods-cate,Goods-css');insert into sw_role values (12,'版主','100,101,103,106,108,113','Goods-show,Goods-set');

3.流程說明

  Index控制器內 獲取用戶的角色id,進而獲得角色權限 進行判斷是否展現數據 Index控制器--->left方法--->left.html模板 Index控制器

//(1)根據用戶id獲取本身記錄信息
        $mg_id = session('admin_id');        
//D('Manager')實例化了一個Manager的Model對象
        $manager_info = D('Manager')->find($mg_id);        $role_id = $manager_info['mg_role_id'];        
//(2)根據role_id 獲得本身記錄信息
        $role_info = D('Role')->find($role_id);        $auth_ids = $role_info['role_auth_ids'];        
//(3)根據$auth_ids 獲得具體權限
        $auth_infoA = D('Auth')->where("auth_level=0 and auth_id in($auth_ids)")->select();
//父級
        $auth_infoB = D('Auth')->where("auth_level=1 and auth_id in($auth_ids)")->select();
//子級
        $this->assign('auth_infoA',$auth_infoA);        $this->assign('auth_infoB',$auth_infoB);        
//傳到模板中
        $this->assign('auth_info',$auth_info);        $this->display();

4.模板 left.html

  {foreach $auth_infoA as $k=>$v}
    <table cellspacing=0 cellpadding=0 width=150 border=0> <tr height=22><td style="padding-left: 30px;"
      background={$smarty.const.ADMIN_IMG_URL}/menu_bt.jpg ><a class=menuparent onclick=expand({$v.auth_id})

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 昌都县| 东海县| 德安县| 商城县| 巴林左旗| 鞍山市| 宜阳县| 阿克| 呼玛县| 克什克腾旗| 金昌市| 辽源市| 肥城市| 鄄城县| 滕州市| 如皋市| 嘉黎县| 博客| 什邡市| 临澧县| 沧州市| 清远市| 宁晋县| 建始县| 横山县| 房山区| 玉田县| 嘉义县| 南涧| 和政县| 黔东| 靖边县| 隆回县| 永州市| 宽甸| 玉田县| 北票市| 阿城市| 永福县| 安福县| 巩义市|