前言
鑒于后臺(tái)的權(quán)限揍很,數(shù)據(jù)分級(jí)越來越細(xì)化,越來越錯(cuò)綜復(fù)雜辆雾,我對現(xiàn)有的項(xiàng)目后臺(tái)進(jìn)行了一個(gè)初步的升級(jí)懈玻。參照傳統(tǒng)的CRM管理系統(tǒng)改造了權(quán)限系統(tǒng)。
場景
在一套后臺(tái)管理系統(tǒng)中乾颁,系統(tǒng)通常會(huì)有多種需求的用戶登陸涂乌。例如系統(tǒng)維護(hù)人員、運(yùn)營分析人員英岭、文案編輯人員湾盒、部門管理人員等等,而系統(tǒng)維護(hù)人員登陸要看到日志界面和服務(wù)器監(jiān)控界面诅妹,文案編輯人員要看到文章界面等等罚勾,不同的用戶登陸到后臺(tái)還需要展示不同的菜單和界面毅人,
單單運(yùn)營分析人員,在系統(tǒng)中可以可能有A分公司運(yùn)營助理尖殃、B分公司運(yùn)營主管丈莺、C部門運(yùn)營經(jīng)理、華東大區(qū)運(yùn)營總監(jiān)等等類型送丰,A分公司的運(yùn)營助理只能看A公司的運(yùn)營數(shù)據(jù)缔俄,C部門運(yùn)營經(jīng)理只能看到C部門的運(yùn)營數(shù)據(jù),大區(qū)運(yùn)營總監(jiān)應(yīng)該要看到屬于華東大區(qū)的所有公司以及部門的數(shù)據(jù)器躏,不同人員能夠查看的數(shù)據(jù)范圍應(yīng)該是不同的
其次俐载,上述提到的的文案編輯人員,還會(huì)區(qū)分出總編輯登失,和文案撰稿人遏佣,雖然同樣能看到文章管理界面,但總編輯擁有添加揽浙、編輯状婶、刪除、審核馅巷、發(fā)布等功能膛虫,普通文案只有有添加、修改的權(quán)限令杈。
本文將對上述提到的場景提出一種基礎(chǔ)的解決方案走敌。
分析
【角色】:系統(tǒng)運(yùn)維碴倾、運(yùn)營分析逗噩、部門職員這類擁有不同權(quán)限功能的標(biāo)簽,我們稱之為“角色”跌榔。
【組織部門】:A分公司异雁、C部門、華東大區(qū)僧须、無論大小我們統(tǒng)稱為“組織部門”纲刀。
【崗位】:運(yùn)營助理、運(yùn)營主管担平、運(yùn)營經(jīng)理示绊、運(yùn)營總監(jiān)我們統(tǒng)稱為“崗位”。
【數(shù)據(jù)權(quán)限】:大區(qū)運(yùn)營和部門運(yùn)營所能看到的數(shù)據(jù)范圍不同暂论,我們稱之為“數(shù)據(jù)權(quán)限”面褐。
【資源權(quán)限】:文章管理撰稿人比總編輯少了審核、發(fā)布的功能取胎,這些功能我們稱之為“資源權(quán)限”展哭。
解決
有了角色湃窍,部門組織,崗位匪傍,數(shù)據(jù)權(quán)限您市,資源權(quán)限這5個(gè)概念的結(jié)合就可以結(jié)合出滿足一般使用場景的權(quán)限設(shè)計(jì)。
總覽
? ? ? 我們將數(shù)據(jù)權(quán)限役衡、資源權(quán)限接關(guān)聯(lián)在一個(gè)角色上茵休,然后將關(guān)聯(lián)好的角色與用戶綁定,這樣就完成了權(quán)限對用戶的分配映挂。另外泽篮,我們也可以將角色關(guān)聯(lián)在某個(gè)部門的崗位上,然后用戶只要填寫所屬部門和崗位即可獲得權(quán)限柑船。
角色
? ? ?比如文案總編輯帽撑、撰稿人、審稿人鞍时、編輯助理這類有特定的功能職能的用戶群體亏拉,我們能就可以創(chuàng)建成角色。但要注意的是逆巍,角色一般是可以多個(gè)同時(shí)并存的及塘。比如創(chuàng)建一個(gè)新文案負(fù)責(zé)人,組織允許他既可以自己撰稿锐极,也可以幫助別人審稿笙僚,這時(shí)候往往不會(huì)在當(dāng)獨(dú)為他設(shè)計(jì)一個(gè)撰稿審稿人角色,而是同時(shí)為他分配撰稿人+審稿人兩個(gè)角色灵再。這樣肋层,該用戶的權(quán)限就變成了他所有角色關(guān)聯(lián)的權(quán)限之和。從而減少因?yàn)闄?quán)限的交叉帶來的冗余角色翎迁。
崗位
? ? 崗位和角色的概念其實(shí)是挺相似的栋猖,一個(gè)崗位一定程度上代表了他在組織中的角色。然而同樣的崗位在不同的組織部很可能是不同的:? ?例如A部門的采購主管和B部門的采購主管汪榔。同樣是主管的崗位蒲拉,但A采購公司規(guī)定可以查看整個(gè)部門數(shù)據(jù)、不允許查看訂單痴腌,而B采購可以查看訂單數(shù)據(jù)雌团、但不允許查看部門其他采購主管的數(shù)據(jù),從而造成了同崗不同權(quán)士聪。
? ? 這時(shí)锦援,我們可以單獨(dú)為這些部門各自創(chuàng)建崗位,并將角色組直接關(guān)聯(lián)在各自的崗位上戚嗅。例如在A分公司中分配一個(gè)崗位叫做采購主管雨涛, 然后我們?yōu)檫@個(gè)崗位預(yù)設(shè)好 “采購數(shù)據(jù)分析員”枢舶,“采購數(shù)據(jù)錄入員”,“訂單審核人員”的角色替久。 這樣以來凉泄,當(dāng)A公司來了一位新的采購主管,我們只要為他創(chuàng)建好賬號(hào)蚯根,然后為他設(shè)置這個(gè)崗位就可以實(shí)現(xiàn)權(quán)限的綁定后众。
資源權(quán)限
? ??撰稿人可以編寫文章,審稿人只能查看和標(biāo)記審核結(jié)果颅拦,區(qū)分兩者權(quán)限不同蒂誉,依靠的就是資源權(quán)限的不同。我們可以在撰稿人角色上綁定“文章:編輯距帅、文章:查看右锨、文章:添加”這三個(gè)資源權(quán)限,為審稿人角色綁定“文章:查看碌秸、文章:審核”兩個(gè)資源權(quán)限绍移,然后在系統(tǒng)中判斷用戶的權(quán)限來控制相應(yīng)的入口顯示。例如判斷用戶的權(quán)限中不包括“文章:審核”權(quán)限讥电,頁面就隱藏掉審核的開關(guān)按鈕蹂窖。
數(shù)據(jù)權(quán)限
? ? 數(shù)據(jù)權(quán)限我們目前只分三種,“僅自己數(shù)據(jù)”恩敌,“部門數(shù)據(jù)”瞬测,“全部數(shù)據(jù)”。如字面含義一樣纠炮,“僅自己數(shù)據(jù)”只能查看與自己直接關(guān)聯(lián)的數(shù)據(jù)月趟,比如自己的銷售額,自己的考勤記錄抗碰∈ǘ罚“部門數(shù)據(jù)”允許用戶看到整個(gè)部門乃至下級(jí)部門的所有成員的數(shù)據(jù)绽乔,比如整個(gè)部門的銷售額弧蝇,部門中某個(gè)用戶的考勤記錄≌墼遥“全部數(shù)據(jù)”屬于最高級(jí)別的數(shù)據(jù)權(quán)限看疗,一般是平臺(tái)的總公司總經(jīng)理、或者某個(gè)系統(tǒng)的總負(fù)責(zé)人可以使用的到睦授。需要注意的是两芳,數(shù)據(jù)權(quán)限需要結(jié)合“資源權(quán)限“以及下面將提到的“組織部門“一起組合使用才能發(fā)揮效果。
組織部門
? ?組織部門可以區(qū)分用戶在系統(tǒng)中的不同組織去枷、不同等級(jí)關(guān)系怖辆。比如一個(gè)平臺(tái)往往可以接入眾多的公司是复,如圖
組織與組織之間有明顯的層級(jí)架構(gòu)關(guān)系,結(jié)合數(shù)據(jù)權(quán)限竖螃、資源權(quán)限淑廊、角色、崗位特咆、就可以靈活配置出例如圖中銷售部門A的銷售經(jīng)理權(quán)限季惩,以及銷售團(tuán)隊(duì)1的隊(duì)長權(quán)限等等。
總結(jié)
上述的結(jié)構(gòu)只是一種方案腻格,當(dāng)然方案不可能是萬能的画拾,具體的實(shí)現(xiàn)還需要結(jié)合實(shí)際項(xiàng)目需求進(jìn)行設(shè)計(jì)開發(fā)。