十年網(wǎng)站開發(fā)經(jīng)驗(yàn) + 多家企業(yè)客戶 + 靠譜的建站團(tuán)隊(duì)
量身定制 + 運(yùn)營(yíng)維護(hù)+專業(yè)推廣+無憂售后,網(wǎng)站問題一站解決
權(quán)限管理基本是作為網(wǎng)站的標(biāo)配了;
成都創(chuàng)新互聯(lián)服務(wù)項(xiàng)目包括金臺(tái)網(wǎng)站建設(shè)、金臺(tái)網(wǎng)站制作、金臺(tái)網(wǎng)頁(yè)制作以及金臺(tái)網(wǎng)絡(luò)營(yíng)銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢(shì)、行業(yè)經(jīng)驗(yàn)、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,金臺(tái)網(wǎng)站推廣取得了明顯的社會(huì)效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到金臺(tái)省份的部分城市,未來相信會(huì)繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!除非是像博客這類個(gè)人使用的;否則權(quán)限管理的重要性不言而喻;
今個(gè)就來寫寫auth權(quán)限管理;
thinkphp已經(jīng)內(nèi)置了auth權(quán)限類位于:/ThinkPHP/Library/Think/Auth.class.php
執(zhí)行里面的sql生成3張表auth_rule、auth_group、auth_group_access;
然后自己再建一張users表;當(dāng)然起其他的名字也是可以的;不過是需要在配置項(xiàng)中說明;
先對(duì)各表的作用簡(jiǎn)單介紹;
users:用戶表;這個(gè)不廢話;
auth_group:用戶組表;比如說超級(jí)管理員組、普通管理員組、編輯等等;同時(shí)記錄每個(gè)管理組有哪些權(quán)限;
auth_group_access:用戶、群組關(guān)聯(lián)表;比如說用戶1屬于超級(jí)管理員、用戶2屬于普通管理員和編輯;
auth_rule:權(quán)限表;具體的每條權(quán)限是什么;
如果還沒看過權(quán)限管理;那建議先看源代碼;透徹學(xué)習(xí)一樣?xùn)|西;最好的方法就是研究源代碼;
這里重點(diǎn)不是要講auth的原理;而是要給一個(gè)auth的demo;
git源代碼:http://git.oschina.net/shuaibai123/thinkphp-bjyadmin
1:先下載項(xiàng)目并安裝;
完成后分別點(diǎn)超級(jí)管理員登錄和文章管理員登錄;
你會(huì)發(fā)現(xiàn)他們的權(quán)限是不同的;看到的后臺(tái)菜單是不一樣的;
2:菜單管理
為了控制每種管理員都能看到那些菜單;所以要有菜單的管理;
操作的是demo中的admin_nav表
3:權(quán)限管理
具體的每項(xiàng)權(quán)限的名稱和內(nèi)容;我這里一般都是和菜單對(duì)應(yīng)的;
但是會(huì)比菜單管理多出一些;對(duì)比兩張圖即可看出來;多出來的一般都是些對(duì)菜單的增刪改;
操作的是demo中的auth_rule表;
4:用戶組管理
這里就是增加管理組;并為每個(gè)管理組分配權(quán)限了;選中的就表示有權(quán)限看到或者操作了;
5:管理員列表
把所有的管理員都列出來;可以添加管理員或者修改管理員的管理組;
當(dāng)構(gòu)建好這樣一個(gè)結(jié)構(gòu)后;權(quán)限管理簡(jiǎn)單其實(shí)只需要AdminBaseController.class.php中如下一段代碼就完成了;
/Application/Common/Controller/AdminBaseController.class.php
$auth=new \Think\Auth(); $rule_name=MODULE_NAME.'/'.CONTROLLER_NAME.'/'.ACTION_NAME; $result=$auth->check($rule_name,$_SESSION['user']['id']); if(!$result){ $this->error('您沒有權(quán)限訪問'); }這也是在 thinkphp的目錄結(jié)構(gòu)設(shè)計(jì)經(jīng)驗(yàn)總結(jié) 中講述 /Application/Common/Controller中建各種BaseController的原因;
本文為白俊遙原創(chuàng)文章,轉(zhuǎn)載無需和我聯(lián)系,但請(qǐng)注明來自白俊遙博客http://baijunyao.com
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。