新聞中心
導(dǎo)讀:

成都創(chuàng)新互聯(lián)公司堅(jiān)持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:做網(wǎng)站、成都做網(wǎng)站、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿(mǎn)足客戶(hù)于互聯(lián)網(wǎng)時(shí)代的烏魯木齊網(wǎng)站設(shè)計(jì)、移動(dòng)媒體設(shè)計(jì)的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!
一個(gè)用戶(hù)登錄系統(tǒng)之后,可以訪(fǎng)問(wèn)哪些站點(diǎn),那些菜單,那些模塊,那些頁(yè)面,那些按鈕,都是可以通過(guò)權(quán)限進(jìn)行控制的。 一個(gè)權(quán)限做的比較完整的項(xiàng)目,一般人員管理,消息管理,菜單管理,站點(diǎn)管理,日志管理,部件管理,權(quán)限管理等等都是受權(quán)限控制的,這么多模塊每個(gè)功能點(diǎn)是如何在權(quán)限管理下跑的井井有條呢?最近老是看到很多人在發(fā)愁權(quán)限,所以把自己的一些見(jiàn)解寫(xiě)出來(lái),供大家參考,也只是自己的一點(diǎn)點(diǎn)思路,不足的地方,謝謝指出。
問(wèn)題:剛開(kāi)始做模塊的時(shí)候,模塊寫(xiě)好了,被測(cè)試提過(guò)來(lái)“你的日志模塊功能點(diǎn)不受權(quán)限控制”,當(dāng)時(shí)就很模糊,什么是權(quán)限呀,去問(wèn)測(cè)試人員,她打開(kāi)一個(gè)頁(yè)面,上面有棵功能樹(shù)(很大,顯示各個(gè)模塊,以及模塊下面的操作),你的所有的功能點(diǎn)都沒(méi)在功能點(diǎn)樹(shù)上顯示,只有顯示在樹(shù)上的才可以把功能點(diǎn)分配給人,自己查去吧。回來(lái)看了下別人的代碼,呵呵原來(lái)一個(gè)模塊開(kāi)發(fā)完之后需要給當(dāng)前模塊所有功能點(diǎn)注冊(cè)權(quán)限。帶著測(cè)試出的這個(gè)BUG,跟大家一起分享下一些知識(shí)點(diǎn),以及權(quán)限的核心思想吧。
1.什么是權(quán)限?
“權(quán)限就是有票你就進(jìn)”
去游樂(lè)園,去乘大巴,去坐地鐵,必須的買(mǎi)票吧?權(quán)限就像你手里的那張票。
“權(quán)限就是認(rèn)證不認(rèn)人”
權(quán)是"權(quán)力,制度",限是“限制,管理”,連起來(lái)就是:XXXX通過(guò)權(quán)力,制度去管理XXX,在現(xiàn)在中國(guó)有12多人口,政府也給每個(gè)人發(fā)了證“身份證”,抗日時(shí)期小日本通過(guò)“良民證”去管理“中國(guó)人民”,看來(lái)受管理的都有一個(gè)特點(diǎn)就是“他有證”。
2.你要給誰(shuí)設(shè)權(quán)限----誰(shuí)就是我們所說(shuō)的功能點(diǎn)
我們要清楚的明白,我們要給系統(tǒng)里的用戶(hù)角色站點(diǎn)日志等等模塊設(shè)權(quán)限,讓有權(quán)限的人去管理自己權(quán)限下面的操作。
“你要用誰(shuí)要去控制誰(shuí),你的功能點(diǎn)的粒度有多大”
第一個(gè)誰(shuí)一般是用戶(hù);第二個(gè)誰(shuí)很可能是一個(gè)模塊(日志模塊),一個(gè)表對(duì)象,一個(gè)表里面的一條記錄,甚至是一個(gè)頁(yè)面的一個(gè)方法,甚至是一個(gè)安牛,你所謂的 功能點(diǎn)可以是上面的所有東西,但是你一定要明白誰(shuí)要控制是誰(shuí)?一般可以細(xì)化到一個(gè)模塊,一個(gè)頁(yè)面,頁(yè)面的一個(gè)“刪除”,“添加”按鈕。
3.怎樣去控制?
怎樣去唯一標(biāo)識(shí)這個(gè)“控件”,“方法”,“類(lèi)”(也就是我說(shuō)的功能點(diǎn))
"給每個(gè)'按鈕'一個(gè)身份證"既然權(quán)限是“權(quán)限就是認(rèn)證不認(rèn)人”,那么當(dāng)然的給沒(méi)個(gè)功能點(diǎn)加一個(gè)唯一標(biāo)識(shí)了。唯一標(biāo)識(shí)一般的方法是“模塊名稱(chēng)+控件的ID”。
天呀,這不是要?dú)⒘宋覇??這么多,沒(méi)辦法,嘻嘻,你必須這么干
4.權(quán)限管理模塊一直在干什么樣的工作【核心】
1.)當(dāng)一個(gè)用戶(hù)進(jìn)系統(tǒng)之后,可以拿到這個(gè)用戶(hù)所有有可以控制功能點(diǎn)的信息
比如可以拿到有權(quán)限的站點(diǎn),有權(quán)限的菜單,有權(quán)限的模塊,有權(quán)限的頁(yè)面等等。
2.)拿到系統(tǒng)里面所有的功能點(diǎn),然后把它分配給希望分配的角色或者用戶(hù)
權(quán)限管理模塊必須可以拿到系統(tǒng)里面你配置的所有的功能點(diǎn)(最好以一棵功能樹(shù)的形式展現(xiàn)出來(lái)),并且可以把權(quán)限分配給一些人員,角色,有權(quán)限的用戶(hù)可以把自己的權(quán)限分配給別人,權(quán)限大的用戶(hù)可以控制所有信息。
3.)當(dāng)開(kāi)發(fā)人員開(kāi)發(fā)一個(gè)新的模塊的時(shí)候,只要做簡(jiǎn)單的操作就可以把新的功能點(diǎn)注冊(cè)到權(quán)限里面,權(quán)限模塊必須提供一個(gè)可擴(kuò)展的功能,當(dāng)系統(tǒng)里面多一個(gè)模塊的時(shí)候,可以讓開(kāi)發(fā)人員迅速的注冊(cè)功能點(diǎn)(一般是XML格式)。
4.)當(dāng)用戶(hù)發(fā)送一個(gè)請(qǐng)求的時(shí)候,能返回當(dāng)前用戶(hù)是否能操作該按鈕(控件,對(duì)象)
開(kāi)發(fā)人員只要把當(dāng)前用戶(hù)的Id與功能點(diǎn)的ID給權(quán)限服務(wù)就可以返回當(dāng)前用戶(hù)是否有操作當(dāng)前對(duì)象的權(quán)限
5.)權(quán)限管理模塊有自己內(nèi)置的潛規(guī)則,也就是優(yōu)先級(jí)
當(dāng)兩個(gè)權(quán)限發(fā)生沖突的時(shí)候,靠我們自己定義的優(yōu)先級(jí)進(jìn)行匹配
5.程序開(kāi)發(fā)人員開(kāi)發(fā)一個(gè)新的模塊如何注冊(cè)權(quán)限的?
1.)寫(xiě)你的模塊代碼
2.)把你模塊的功能點(diǎn)都注冊(cè)到權(quán)限樹(shù)上(把你功能點(diǎn)寫(xiě)到XML上),各個(gè)功能點(diǎn)進(jìn)行驗(yàn)證【如果沒(méi)有這個(gè)驗(yàn)證,功能點(diǎn)雖然掛到權(quán)限上了,但實(shí)際上是沒(méi)受權(quán)限限制的】
3.)超級(jí)管理員進(jìn)來(lái),可以操作權(quán)限樹(shù),把你的功能點(diǎn)權(quán)限分配給別人
5.)分配你權(quán)限的賬戶(hù)可以訪(fǎng)問(wèn)你頁(yè)面上的操作
解決問(wèn)題:“你消息模塊的刪除按鈕不受權(quán)限控制”如何修這個(gè)BUG?一個(gè)按鈕不受權(quán)限限制?怎么受權(quán)限限制呀?
1.)首先的把當(dāng)前按鈕的ID注冊(cè)到權(quán)限(模塊名+功能點(diǎn)名)一般這個(gè)就可以唯一標(biāo)識(shí)你當(dāng)前的ID
2.)然后在你當(dāng)前控件代碼里面寫(xiě),根據(jù)這個(gè)身份證去權(quán)限請(qǐng)求一個(gè)服務(wù),if(有權(quán)限)按鈕可用ELSE按鈕不可用【如果沒(méi)有這個(gè)驗(yàn)證,功能點(diǎn)雖然掛到權(quán)限上了,但實(shí)際上是沒(méi)受權(quán)限限制的】
3.)最后權(quán)限好用不好用只有測(cè)試人員去測(cè)了
備注:對(duì)于以些小的網(wǎng)站,其實(shí)我認(rèn)為權(quán)限設(shè)置到頁(yè)面級(jí)就可以了,沒(méi)必要注冊(cè)到所有的操作
文章題目:淺談如何設(shè)置項(xiàng)目中每個(gè)功能點(diǎn)的權(quán)限
文章URL:http://fisionsoft.com.cn/article/ccsghep.html


咨詢(xún)
建站咨詢(xún)
