權(quán)限系統(tǒng)

轉(zhuǎn)載自 http://blog.csdn.net/dyllove98/article/details/9414113


一蒋情、前言

之前的博客一直都還沒寫到框架的實(shí)現(xiàn)及權(quán)限系統(tǒng)怀各,今天開始寫我的權(quán)限系統(tǒng)枉长,我以前做過的項(xiàng)目基本上都有權(quán)限管理這個(gè)模塊饰豺,但各個(gè)系統(tǒng)都會(huì)有一些不太一樣连茧,有些簡(jiǎn)單點(diǎn)腹侣,有些稍微復(fù)雜一點(diǎn)乏德,一句話撤奸,我們做的系統(tǒng)都離不開這個(gè)權(quán)限系統(tǒng)吠昭。所以網(wǎng)上很多人嘗試做一個(gè)通用的權(quán)限系統(tǒng),不評(píng)論他們做的怎么樣胧瓜,只是說在網(wǎng)上能找到的直接能用的應(yīng)該不多矢棚,適用的并且能集成到項(xiàng)目中的就更少了,所以還是考慮自己做一個(gè)府喳,不一定很通用蒲肋,但足夠自己用的權(quán)限系統(tǒng)。

二钝满、需求分析

關(guān)于權(quán)限系統(tǒng)的文章網(wǎng)上多如牛毛兜粘,很多都是基于角色的訪問控制(RBAC)設(shè)計(jì)。但是發(fā)現(xiàn)完全實(shí)現(xiàn)RBAC的理論其實(shí)不一定好用,我想做一款適合自己的舱沧。所以首先我們必要明確我們要去實(shí)現(xiàn)哪些東西妹沙。

1、權(quán)限資源

a.菜單權(quán)限? 經(jīng)理和業(yè)務(wù)員登陸系統(tǒng)擁有的功能菜單是不一樣的

b.按鈕權(quán)限? 經(jīng)理能夠?qū)徟炖簦鴺I(yè)務(wù)員不可以

c.數(shù)據(jù)權(quán)限? A業(yè)務(wù)員看不到B業(yè)務(wù)員的單據(jù)

d.字段權(quán)限? 某些人查詢客戶信息時(shí)看不到客戶的手機(jī)號(hào)或其它字段

2距糖、用戶,應(yīng)用系統(tǒng)的具體操作者牵寺,我這里設(shè)計(jì)用戶是不能直接分配權(quán)限的悍引,必須要分配一個(gè)角色,角色中再分配權(quán)限帽氓,如果某個(gè)用戶權(quán)限比較特殊趣斤,可以為他專門建一個(gè)角色來應(yīng)用解決,因?yàn)槿绻脩粢部梢苑峙錂?quán)限系統(tǒng)就會(huì)復(fù)雜很多黎休。

3浓领、角色,為了對(duì)許多擁有相似權(quán)限的用戶進(jìn)行分類管理势腮,定義了角色的概念联贩,以上所有的權(quán)限資源都可以分配給角色,角色和用戶N:N的關(guān)系捎拯。

4泪幌、機(jī)構(gòu),樹形的公司部門結(jié)構(gòu)署照,國(guó)內(nèi)公司用的比較多祸泪,它實(shí)際上就是一個(gè)用戶組,機(jī)構(gòu)和角色N:N的關(guān)系建芙,機(jī)構(gòu)和用戶也設(shè)計(jì)成N:N的關(guān)系没隘,也就是說有時(shí)候一個(gè)用戶可以從屬于兩個(gè)部門,這種情況在我們客戶需求中的確都出現(xiàn)過禁荸。

當(dāng)然除了上面提到的主要對(duì)象還包括以下對(duì)象

5升略、菜單

6微王、按鈕

7、授權(quán)代碼以前我做的項(xiàng)目中控制數(shù)據(jù)權(quán)限有以下兩種:

a.用部門編碼來控制品嚣,只能查詢到自己所屬部門的數(shù)據(jù)

b.用項(xiàng)目編碼來控制炕倘,只能查詢到自己所屬項(xiàng)目的數(shù)據(jù)。

這樣就有一個(gè)問題翰撑,我到底要用什么字段來控制數(shù)據(jù)權(quán)限呢罩旋,所以我們就設(shè)計(jì)了一個(gè)授權(quán)代碼,如果你是用機(jī)構(gòu)來控制數(shù)據(jù)權(quán)限眶诈,那么你可以把授權(quán)代碼建成跟機(jī)構(gòu)一樣的樹涨醋,如果用項(xiàng)目編碼控制,可以把它建成項(xiàng)目樹逝撬,用其它字段控制都一樣浴骂,所以會(huì)比較靈活,也把機(jī)構(gòu)或項(xiàng)目解放出來了宪潮。

8溯警、數(shù)據(jù)字典

9、系統(tǒng)參數(shù)

10狡相、日志查詢登陸日志梯轻、操作日志(xx人xx時(shí)間對(duì)xx對(duì)象做了xx操作 自定義的)、系統(tǒng)日志(系統(tǒng)運(yùn)行錯(cuò)誤記錄等 log4net輸出的)

三尽棕、設(shè)計(jì)實(shí)現(xiàn)

1喳挑、表結(jié)構(gòu)設(shè)計(jì)

2 程序設(shè)計(jì)

我還是采用mvc4.0 + web api + easyui + knockout去實(shí)現(xiàn)。實(shí)際上之前我就實(shí)現(xiàn)的差不多滔悉,最近也一直在花時(shí)間更新完善伊诵。

這個(gè)權(quán)限系統(tǒng)太大了,這一篇肯定是說不完的回官,我這里就先總體上說了一下設(shè)計(jì)思路曹宴,接下每一篇寫具體實(shí)現(xiàn),一篇一個(gè)功能孙乖,大家期待我的下一篇吧。

3份氧、UI設(shè)計(jì)

不多說了唯袄,先上圖吧,我在第一篇博客中貼過以前的版本蜗帜,最近也有一些更新恋拷,再貼一次吧,這次截圖比較詳細(xì)點(diǎn)厅缺,也配了一些文字的說明介紹蔬顾。

功能1:菜單導(dǎo)航

【菜單導(dǎo)航】1:包括新增修改刪除功能宴偿,直接在grid中編輯

【菜單導(dǎo)航】2:選擇圖標(biāo)

【菜單導(dǎo)航】3:選擇頁面按鈕 定義這個(gè)功能有只些按鈕

【菜單導(dǎo)航】4:管理按鈕庫(kù) 增刪改

功能2:組織結(jié)構(gòu)【組織結(jié)構(gòu)】1:圖形化的樹結(jié)構(gòu),可以新增編輯刪除節(jié)點(diǎn)

【組織結(jié)構(gòu)】2:編輯節(jié)點(diǎn)

【組織結(jié)構(gòu)】3:設(shè)置角色

功能3:授權(quán)代碼

【授權(quán)代碼】樹形grid 可以增添編輯刪除

功能4:角色管理【角色管理】1:直接在grid中 增添編輯刪除

【角色管理】2:點(diǎn)編輯權(quán)限彈出角色極限窗口诀豁,點(diǎn)擊選擇菜單權(quán)限

【角色管理】3:編輯按鈕權(quán)限窄刘,grid中只會(huì)出現(xiàn)菜單權(quán)限中選中的行,每個(gè)功能有哪些按鈕在菜單中已定義好舷胜,這里只要勾選按鈕即可

【角色管理】4:編輯數(shù)據(jù)權(quán)限 可以多選娩践,但只有一個(gè)默認(rèn)值,該角色新增的業(yè)務(wù)單據(jù)的授權(quán)代碼為默認(rèn)的授權(quán)代碼烹骨。

【角色管理】5:編輯字段權(quán)限 grid中只會(huì)出現(xiàn)菜單權(quán)限中選中的行翻伺,直接在允許或拒絕中輸入字段名,多個(gè)字段用逗號(hào)隔開

【角色管理】6:點(diǎn)擊管理成員沮焕,彈出此窗口

【角色管理】7:成員管理 點(diǎn)擊添加按鈕

功能5:用戶管理【用戶管理】1:左邊機(jī)構(gòu)可以過濾吨岭,直接在grid中增刪改查用戶

【用戶管理】2:設(shè)置機(jī)構(gòu) 可多選,這里機(jī)構(gòu)錄入的太多了峦树,出現(xiàn)了滾動(dòng)條辣辫,少些會(huì)好看點(diǎn)。

【用戶管理】3:設(shè)置角色 可多選

【用戶管理】4:用戶設(shè)置 用戶登陸后的一些配置信息空入,比如指定用戶的桌面络它,默認(rèn)的項(xiàng)目,不同的系統(tǒng)可能會(huì)有不同的需求歪赢,所以這里設(shè)計(jì)可添加刪除的化戳,右上角下拉出來的[個(gè)人設(shè)置]頁面也指向這里的數(shù)據(jù)

功能6:數(shù)據(jù)字典【數(shù)據(jù)字典】1:左邊類別樹可過濾,左邊是樹形grid,可以有層級(jí)關(guān)系埋凯,直接在grid中編輯

【數(shù)據(jù)字典】2:點(diǎn)擊管理類別点楼,類別可在彈出的grid中增刪改查

功能7:系統(tǒng)參數(shù)

【系統(tǒng)參數(shù)】直接grid中編輯,設(shè)計(jì)了一個(gè)是否可編輯字段白对,只能編輯 是否可編輯為true的參數(shù)

功能8:操作日志【操作日志】1:登陸日志

【操作日志】2:業(yè)務(wù)操作記錄

【操作日志】3:系統(tǒng)日志

【操作日志】4:系統(tǒng)日志 查看系統(tǒng)日志

四掠廓、后述

如果大家感興趣,就在右下角幫我【推薦】一下吧甩恼,謝謝大家了蟀瞧。我接下來就按照功能列表一篇一篇的來寫,下一篇就先開始寫菜單管理条摸。

這里整個(gè)系統(tǒng)都是采用我的zephyr.net框架開發(fā)悦污,應(yīng)用mvc4.0 webapi easyui knockoutjs開發(fā)的實(shí)現(xiàn)的。




----------

![關(guān)注我的公眾號(hào).jpg](http://upload-images.jianshu.io/upload_images/1428538-27b8b23065ed36aa.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末钉蒲,一起剝皮案震驚了整個(gè)濱河市切端,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌顷啼,老刑警劉巖踏枣,帶你破解...
    沈念sama閱讀 206,378評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件昌屉,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡茵瀑,警方通過查閱死者的電腦和手機(jī)间驮,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,356評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來瘾婿,“玉大人蜻牢,你說我怎么就攤上這事∑悖” “怎么了抢呆?”我有些...
    開封第一講書人閱讀 152,702評(píng)論 0 342
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)笛谦。 經(jīng)常有香客問我抱虐,道長(zhǎng),這世上最難降的妖魔是什么饥脑? 我笑而不...
    開封第一講書人閱讀 55,259評(píng)論 1 279
  • 正文 為了忘掉前任恳邀,我火速辦了婚禮,結(jié)果婚禮上灶轰,老公的妹妹穿的比我還像新娘谣沸。我一直安慰自己,他們只是感情好笋颤,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,263評(píng)論 5 371
  • 文/花漫 我一把揭開白布乳附。 她就那樣靜靜地躺著,像睡著了一般伴澄。 火紅的嫁衣襯著肌膚如雪赋除。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,036評(píng)論 1 285
  • 那天非凌,我揣著相機(jī)與錄音举农,去河邊找鬼。 笑死敞嗡,一個(gè)胖子當(dāng)著我的面吹牛颁糟,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播喉悴,決...
    沈念sama閱讀 38,349評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼棱貌,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了粥惧?” 一聲冷哼從身側(cè)響起键畴,我...
    開封第一講書人閱讀 36,979評(píng)論 0 259
  • 序言:老撾萬榮一對(duì)情侶失蹤最盅,失蹤者是張志新(化名)和其女友劉穎突雪,沒想到半個(gè)月后起惕,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,469評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡咏删,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,938評(píng)論 2 323
  • 正文 我和宋清朗相戀三年惹想,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片督函。...
    茶點(diǎn)故事閱讀 38,059評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡嘀粱,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出辰狡,到底是詐尸還是另有隱情锋叨,我是刑警寧澤,帶...
    沈念sama閱讀 33,703評(píng)論 4 323
  • 正文 年R本政府宣布宛篇,位于F島的核電站娃磺,受9級(jí)特大地震影響窄俏,放射性物質(zhì)發(fā)生泄漏刹勃。R本人自食惡果不足惜箕母,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,257評(píng)論 3 307
  • 文/蒙蒙 一酬滤、第九天 我趴在偏房一處隱蔽的房頂上張望玫霎。 院中可真熱鬧异剥,春花似錦桅狠、人聲如沸潮瓶。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,262評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至赛糟,卻和暖如春派任,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背璧南。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評(píng)論 1 262
  • 我被黑心中介騙來泰國(guó)打工掌逛, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人司倚。 一個(gè)月前我還...
    沈念sama閱讀 45,501評(píng)論 2 354
  • 正文 我出身青樓豆混,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親动知。 傳聞我的和親對(duì)象是個(gè)殘疾皇子皿伺,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,792評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容