欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
實(shí)現業(yè)務(wù)系統中的用戶(hù)權限管理--實(shí)現篇
 

 

實(shí)現業(yè)務(wù)系統中的用戶(hù)權限管理--實(shí)現篇

  在設計篇中,我們已經(jīng)為大家闡述了有關(guān)權限管理系統的數據庫設計,在本篇中,我們將重點(diǎn)放在其實(shí)現代碼部分。為了讓你能夠更直接更有效的看到全部動(dòng)作的代碼,我們使用“動(dòng)作分解列表”的方式來(lái)陳述每個(gè)動(dòng)作以及相關(guān)資源。

實(shí)現權限管理功能的動(dòng)作

動(dòng)作分解 動(dòng)作名 相關(guān)表名 操作集類(lèi)型
(S,U,I,D,SQL)
表單 模組 字符資源 是否分頁(yè)? 返回提示? 權限檢測
權限初始化安裝 setup 無(wú) 無(wú) 無(wú) setup setupok
顯示添加管理組界面 addnewgroup 無(wú) 無(wú) addgroup checkuserpurview 無(wú)
執行添加管理員動(dòng)作 addnewgroup_ex gorupmanager、gorupmanager、mastergroup S、I、I 無(wú) checkuserpurview

addok
adderror

顯示所有管理組列表以執行設置權限動(dòng)作 setgroupinfo 無(wú) 無(wú) 無(wú) checkuserpurview

viewtitle
list_allgroup

顯示設置管理組權限界面 setgroupinfo_input 無(wú) 無(wú) 無(wú) checkuserpurview

viewtitle
list_allgrouppurview
del_confirm

執行設置管理組權限動(dòng)作 setgroupinfo_ex actiongroup、action、actiongroup D、S、I 無(wú) checkuserpurview

setgrouppurview
loginjumpframe

 

執行刪除管理組動(dòng)作 delgroup_ex groupmaster、actiongroup D、D 無(wú)

checkuserpurview checkpointid

viewtitle
do_ok
list_allgroup

顯示所有管理組列表以執行查看管理組成員動(dòng)作 viewgroupmaster 無(wú) 無(wú) 無(wú) checkuserpurview

viewtitle
list_allgroup

查看所選擇管理組下的所有成員

viewmaster 無(wú) 無(wú) 無(wú) checkuserpurview

viewtitle
list_groupmaster

顯示添加管理員界面

addnewmaster 無(wú) 無(wú) addnewmaster checkuserpurview 無(wú)
執行添加管理員動(dòng)作 addnewmaster_ex master、master、mastergroup S、I、I 無(wú) checkuserpurview

addok
adderror

顯示所有管理員列表以執行設置管理員權限動(dòng)作 setmasterpurview 無(wú) 無(wú) 無(wú) checkuserpurview

viewtitle
list_allmaster

查看所選擇管理員所在管理組 setmasterpurview_input 無(wú) 無(wú) 無(wú) checkuserpurview

viewtitle
list_mastergroup

執行設置所選管理員權限

setmasterpurview_ex mastergroup、mastergroup D、I 無(wú) checkuserpurview viewtitle
do_ok
loginjumpframe

 

顯示所有管理員列表以執行設置管理員密碼動(dòng)作 setmasterpass 無(wú) 無(wú) 無(wú) checkuserpurview

viewtitle
list_allmaster

顯示密碼修改界面

setmasterpass_input 無(wú) 無(wú) masterpassword checkuserpurview 無(wú)

執行修改管理員密碼動(dòng)作

setmasterpass_ex master SQL 無(wú) checkuserpurview viewtitle
do_ok

顯示所有管理員列表以執行修改管理員信息動(dòng)作

setmasterinfo 無(wú) 無(wú) 無(wú) checkuserpurview

viewtitle
list_allmaster

顯示所選擇管理員信息修改界面

setmasterinfo_input master S editmasterinfo checkuserpurview del_confirm

執行修改管理員信息動(dòng)作

setmasterinfo_ex master U 無(wú) checkuserpurview viewtitle
do_ok
list_allmaster

 

執行刪除管理組動(dòng)作 delmaster_ex master、actiongroup D、D 無(wú)

checkuserpurview checkpointid

viewtitle
do_ok
list_allmaster

執行修改當前管理員密碼動(dòng)作 setmyinfo_ex master U 無(wú) 無(wú)

viewtitle
do_ok

顯示修改當前管理員信息界面 setmyinfo master S editmasterinfo 無(wú) 無(wú)
執行修改當前管理員密碼動(dòng)作 setmypass_ex master SQL 無(wú) 無(wú)

viewtitle
do_ok

顯示修改當前管理員密碼界面 setmypass 無(wú) 無(wú) masterpassword 無(wú) 無(wú)

系統動(dòng)作

動(dòng)作分解 動(dòng)作名 相關(guān)表名 操作集類(lèi)型
(S,U,I,D,SQL)
表單 模組 字符資源 是否分頁(yè)? 返回提示? 權限檢測
當管理員第一次進(jìn)入管理系統時(shí)將使用該動(dòng)作 * 無(wú) 無(wú) login 無(wú) 無(wú)
系統登錄動(dòng)作,管理員登錄系時(shí)將使用該動(dòng)作 login master SQL 無(wú) 無(wú)

loginok
loginjumpframe
loginerror

顯示窗口TITLE信息 viewtoolstitle 無(wú) 無(wú) 無(wú) 無(wú) managertitle
顯示左工具條 list_tools 無(wú) 無(wú) 無(wú) 無(wú) 無(wú)
任務(wù)系統(預留) autoviewtask                
當用戶(hù)未進(jìn)行登錄而執行動(dòng)作時(shí)會(huì )引發(fā)該動(dòng)作 nosession 無(wú) 無(wú) 無(wú) 無(wú)

nosession
nosessionjumpframe

當用戶(hù)進(jìn)行刪除操作時(shí)未點(diǎn)擊確認時(shí)會(huì )引發(fā)該動(dòng)作 nopointid 無(wú) 無(wú) 無(wú) 無(wú) nopointid
當用戶(hù)試圖執行自己沒(méi)有權限執行的動(dòng)作時(shí)會(huì )引發(fā)該動(dòng)作 nopurview 無(wú) 無(wú) 無(wú) 無(wú) nopurview
退出系統 outlogin 無(wú) 無(wú) 無(wú) 無(wú)

loginout
nosessionjumpframe

詳解模組

  1.setup(數據庫初始化、權限設置模組)

  當布署好一個(gè)新的系統后,我們可以通過(guò)執行一個(gè)動(dòng)作setup來(lái)安裝數據庫和一些初始值,通過(guò)執行這個(gè)動(dòng)作系統可以正常運行。因為執行setup這個(gè)動(dòng)作時(shí)會(huì )調用到一個(gè)名稱(chēng)為setup的模組,這個(gè)模組的作用是初始化系統所用到的數據庫,并且在系統中設置動(dòng)作的權限,否則數據庫和有權限的動(dòng)作就沒(méi)辦法執行。下面我們來(lái)看一下setup模組的代碼,點(diǎn)擊這里查看代碼。這里我們把代碼拆分開(kāi)看一下,由于setup模組里有好多類(lèi)似的代碼,所以這里我們只找出不同功能的代碼做一下介紹:

  第一段:數據庫安裝

  在模組中首先調用了一個(gè)datebase_SQL_setup這個(gè)數據庫操作集,這個(gè)數據庫操作集用來(lái)為系統中的數據庫表(根據情況刪除或新建)做初始化。

  第二段:添加權限信息

  代碼中調用了action_I_newone這個(gè)數據庫操作集,在這個(gè)操作集中加入權限的名稱(chēng)和它的其它信息。

  第三段:添加一個(gè)管理員

  這部分代碼中調用了master_I_newone數據庫操作集在數據庫中添加了一個(gè)管理員的信息,這個(gè)信息是可以不寫(xiě)在這里的,可以直接在數據庫中添加,但是為了減少不必要的麻煩所以直接在這里添入了一個(gè)默認的管理員。

  第四段:添加管理員組

  通過(guò)調用groupmanager_I_newmaster這個(gè)數據庫操作集新建了一個(gè)管理員組,并加入了詳細的管理員組信息,可以把新用戶(hù)加入到此管理員組。

  第五段:添加新的工具分欄

  

  通過(guò)調用actioncolumn_I_newone數據庫操作集在工具欄里加入一個(gè)工具欄分欄選項。

  第六段:指定管理組

  通過(guò)調用mastergroup_I_newone數據庫操作集把admin這個(gè)用戶(hù)加入到第一個(gè)管理組里,使該用戶(hù)成為第一個(gè)管理組的成員。

  最后一段:指定管理組擁有的權限

  這段代碼首先調用了action_S_all數據庫操作集并使用Loop語(yǔ)句列出所有的動(dòng)作,然后調用actiongroup_I_newone這個(gè)數據庫操作集,把所有的動(dòng)作都加入到第一個(gè)管理組里,使第一個(gè)管理組擁有所有權限。

  這里之所以把數據庫的安裝和權限的設置都放在模組里面,是為了使用戶(hù)使用更加方便,不需要再去重新手動(dòng)建庫,以減不在數據庫這方面的錯誤,使系統更加簡(jiǎn)單流暢。如果其它系統也需要權限這方面的管理,可以把模組稍做修改就可以直接拿來(lái)用,這樣也體現出代碼的重用性。

 

  2.checkuserpurview(檢驗當前用戶(hù)能否執行該動(dòng)作的模組)

  在權限管理系統中,模組checkuserpurview得到了反復使用,該模組擔負著(zhù)檢測用戶(hù)權限的任務(wù),在所有需要進(jìn)行訪(fǎng)問(wèn)權限控制的動(dòng)作的開(kāi)始部分都調用了該模組,所以理解該模組的代碼也有一定難度。下面,我們來(lái)看一看該模組的代碼。

  我們將整段代碼拆分一下,首先看第一段,如下圖:

  判斷_SESSION.myloginid的值是否為空,如果為空,在當前頁(yè)面中執行nosession這個(gè)動(dòng)作。我們在用戶(hù)登陸的動(dòng)作中login會(huì )為登陸的用戶(hù)使用myloginid的SESSION變量記錄下該用戶(hù)的ID,因此如果用戶(hù)是正常登陸并在SESSION有效期內的話(huà),則_SESSION.myloginid的值是不可能為空的。通過(guò)此部分代碼檢測用戶(hù)是否已經(jīng)登陸成功并獲得合法的訪(fǎng)問(wèn)身份。

  然后看下面的代碼,如下圖:

  調用數據庫操作集mastergroup_S_bymasterid,使用邏輯層的Loop,使用當前執行的action以及查詢(xún)返回的groupid作為條件,調用數據庫操作集actiongroup_S_byactionandgroupid進(jìn)行循環(huán)查詢(xún),如果查詢(xún)返回值大于0(零),將局部變量purview的值設置為1。

  這段代碼的重點(diǎn)在于使用的Loop進(jìn)行循環(huán),由于actiongroup表中記錄著(zhù)用戶(hù)所處的管理組能夠執行的權限,并且一個(gè)用戶(hù)可能同時(shí)會(huì )屬于多個(gè)組,因此我們需要去檢驗用戶(hù)屬于的多個(gè)組中是否有對該動(dòng)作執行的權限,因此,我們使用當前需要執行的動(dòng)作action以及用戶(hù)所處的管理組groupid循環(huán)查詢(xún),當前用戶(hù)所屬于的組中只要有一個(gè)組具有執行該動(dòng)作的執行權限,則該用戶(hù)就可以執行該動(dòng)作。

  最后一部分代碼如下圖:

  再次使用判斷,如果purview的值不為1的話(huà),則在當前頁(yè)面執行nopurview動(dòng)作。

  由于之前的代碼中,如果用戶(hù)擁有執行動(dòng)作的權限的話(huà),會(huì )將局部變量purview的值設置為1,所以這里如果該變量值不為1,就說(shuō)明了此用戶(hù)沒(méi)有執行動(dòng)作的權限,故執行nopurview動(dòng)作。

總結

  從設計到實(shí)現,權限管理系統的教程到這里就全部結束了。在設計階段,最重要也是最難理解的是那兩張映射表的作用,理解了兩張映射表,基本上也就理解了整套數據庫的設計。而實(shí)現階段,比較難理解的就是上面說(shuō)到的模組checkuserpurview了。理解該模組,需要聯(lián)合數據庫設計,actiongroup表中記錄著(zhù)用戶(hù)組可以執行的權限,使用action字段和groupid字段進(jìn)行查詢(xún),返回的數大于1,說(shuō)明了用戶(hù)所在的組擁有執行該動(dòng)作的權限。

附錄

MYSQL版本權限管理系統源碼下載

MSSQL版本權限管理系統源碼下載


 

 

 




             NoahWeb因您而精彩!
 

 

本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
MySQL使用教程圖文詳解_數據庫技術(shù)_Linux公社
SQL注入攻擊的原理及其防范措施
六個(gè)建議防止SQL注入式攻擊|SQL,注入式攻擊,injection attack-中國源...
網(wǎng)站掛馬后的解決方法
提權技術(shù)研究_Discuz!管理員復制
tp5.1 Auth類(lèi)實(shí)現權限管理
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久