4個步驟教你:如何建立后臺通用權(quán)限管理系統(tǒng)?

73 評論 142843 瀏覽 652 收藏 15 分鐘

由于本人的工作方向偏向于后臺,同時也是技術(shù)出身轉(zhuǎn)崗產(chǎn)品經(jīng)理,在設(shè)計后臺時常會查閱后臺的相關(guān)資料,但是網(wǎng)上關(guān)于這方面的分享也比較少,于是利用空閑時間,把所經(jīng)歷的三家公司所設(shè)計過的后臺系統(tǒng)進行整理、總結(jié),輸出一套通用的完整解決方案。系統(tǒng)的跟大家一起來探討、分享,希望對大家有所裨益。

由于不同的后臺管理系統(tǒng)需求多樣化,此處所分享的是通用型,對于大多數(shù)的后臺管理系統(tǒng)邏輯都已足夠使用,主要應(yīng)用于WEB應(yīng)用程序,如:網(wǎng)站管理后臺、CMS、CRM、OA等等。

當(dāng)然,您也可以對他進一步深度設(shè)計,以做出更強的系統(tǒng)。

涉及到權(quán)限的問題往往是都是復(fù)雜的問題,在系統(tǒng)權(quán)限控制方面,我們經(jīng)常會參照現(xiàn)成的案例來設(shè)計自己的權(quán)限控制,以下就是我所總結(jié)最常見的四種權(quán)限控制的方法。(附上高保真原型鏈接+整體結(jié)構(gòu)圖:見最底部)

一、控制系統(tǒng)的帳號及登錄

1. 登錄首先要有帳號,帳號的定義

基本上所有的互聯(lián)網(wǎng)產(chǎn)品,無論是移動端、PC端、C端或B端產(chǎn)品,登陸都需要一個賬號。只是對于C端的產(chǎn)品,都是用戶自己注冊即可。

而對于后臺產(chǎn)品而言,是需要公司內(nèi)部人員去創(chuàng)建賬號的。而這個賬號就是一把鑰匙,我們通過控制賬號所具備的權(quán)限,進而控制這個員工的所操作范圍。

2. 帳號的兩個層級:企業(yè)(管理員)帳號、普通帳號

公司的實際運營人,他應(yīng)該掌握最核心、權(quán)限最大的企業(yè)帳號,所以也可以稱為“管理員帳號”,其他都為普通帳號。

在實際系統(tǒng)中的核心業(yè)務(wù)步驟如下:

  1. 企業(yè)購買系統(tǒng)時,創(chuàng)建一個企業(yè)帳號,這個企業(yè)帳號綁定的手機號碼為公司實際運營人的手機號碼。該手機號碼必要時可以解綁修改(例公司運營人變更),但是企業(yè)帳號不可刪除、離職。
  2. 在部署培訓(xùn)階段,可指導(dǎo)企業(yè)賬號持有人創(chuàng)建一個或多個普通賬號(可是給其帳號授權(quán)管理員角色),該賬號一般授權(quán)給行政總監(jiān)或人力資源總監(jiān),后續(xù)配置即由管理員賬號進行。

這里需要注意的是2者區(qū)別:

  1. 帳號禁用:在登錄系統(tǒng)時多次輸入密碼錯誤,系統(tǒng)會因為帳號安全問題暫時把禁用掉?;蛏婕暗綆ぬ柋槐I等場景需立馬禁用,修改密碼等操作。
  2. 帳號停用:員工離職,但是在職時所有的操作記錄信息還存在,所以設(shè)置為停用。(ps:可以跟人事系統(tǒng)打通,人事那邊設(shè)置某員工離職后,所有系統(tǒng)賬號自動設(shè)為停用。)

在用戶狀態(tài)上加狀態(tài)控制,可用的用戶就可以登錄系統(tǒng),禁用、停用的就無法登錄。

二、角色管理

角色往往是基于業(yè)務(wù)管理需求而預(yù)先在系統(tǒng)中設(shè)定好的固定標簽,每個角色對應(yīng)明確的系統(tǒng)權(quán)限,他是一個集合的概念,是眾多最小權(quán)限顆粒的組成。我們通過把權(quán)限給這個角色,再把角色給賬號,從而實現(xiàn)賬號的權(quán)限,因此它承擔(dān)了一個橋梁的作用。引入角色這個概念,可以幫助我們靈活的擴展,使一個賬號可以具備多種角色。

其所擁有的系統(tǒng)權(quán)限一般不會隨意更改,并且角色也不會隨著用戶的被添加和被移除而進行改變,相較于用戶管理而言更加穩(wěn)定。

由于隨著公司擴大角色的增多,而不好進行管理,比如:hr這個角色,如果集團有分公司可以給與分類,比如:上海分公司:人力總監(jiān);北京分公司:人力總監(jiān)。

這個角色所賦予的數(shù)據(jù)權(quán)限會不一樣,對于中小型公司,可以對角色進行一個精細的分類管理起來比較方便。

三、控制功能權(quán)限

功能權(quán)限定義:為可見、可以操作的功能范圍。例如:某一部分菜單,或者某個頁面里的各種操作。

1. 菜單管理模塊

類型分為3種:目錄、菜單、按鈕。

  • 在目錄、菜單上加權(quán)限控制,有權(quán)限的就可以訪問對應(yīng)模塊,沒有的連菜單名都看不到。
  • 在業(yè)務(wù)模塊的功能按鈕上加權(quán)限控制,最小粒度的控制用戶行為,譬如:老板娘有錄入商品的權(quán)限,就能看到商品錄入的按鈕,點擊錄入就可以進行商品的錄入操作;反之沒有該權(quán)限的店員就無法進行商品錄入的操作。

2. 控制功能權(quán)限管理

底層菜單管理配置一般為開發(fā)人員一早就配置好,現(xiàn)在由用戶進行分配使用這些功能權(quán)限。

功能權(quán)限:以角色為基礎(chǔ),通過劃分不同角色的不同功能權(quán)限,并將員工添加到對應(yīng)的角色中,實現(xiàn)員工功能權(quán)限的區(qū)分和隔離,包括:

  • 對象級功能:比如功能的入口是否可見,如角色為“藍鯨觀察者”,對象“人員管理”的“查看列表”權(quán)限點取消,則此角色下員工不可見人員管理的功能入口。
  • 操作點權(quán)限:比如新建、編輯等業(yè)務(wù)操作;
  • 字段權(quán)限:在展示信息時加權(quán)限控制,保證敏感信息的安全性??蔀榻巧渲脤ο笞侄蔚淖x寫、只讀或不可見。比如:為角色“服務(wù)人員”配置銷售訂單的【銷售訂單金額】字段不可見。

控制了員工對字段的可見性,可編輯性,比如:不想要電銷人員看到客戶的電話號碼,不需要服務(wù)人員看到客戶銷售訂單中銷售訂單金額,則可以把相應(yīng)字段隱藏。

  • 【讀寫】權(quán)限:員工將具備該字段的最大權(quán)限,【新建】【編輯】時可編輯,列表和詳情頁可見該字段。
  • 【只讀】權(quán)限:員工在【新建】【編輯】時不可編輯,列表和詳情頁可見該字段。
  • 【不可見】權(quán)限:員工在【新建】【編輯】【列表】【詳情】界面對該字段(或該字段值)不可見。

功能權(quán)限對于前端界面的影響點:

  • 如果員工沒有某對象“查看列表”的權(quán)限,則該對象的功能入口會被隱藏。
  • 如果員工沒有某對象的操作點權(quán)限,則在對象頁面上隱藏相應(yīng)操作按鈕。
  • 如果員工沒有某對象的指定字段的可見權(quán)限,則在對象頁面上隱藏相應(yīng)字段。

3. 控制字段權(quán)限用戶操作界面

控制字段權(quán)限需要有一個頁面配置頁面來做支撐,此界面由開發(fā)人員進行控制操作。

點擊某一個頁面進行配置,可以進行添加,或從數(shù)據(jù)庫快速生成屬于這個頁面的字段。在從這個頁面的字段中選擇哪些字段是提供給用戶進行設(shè)置字段權(quán)限,因此有了上上圖。以及字段的顯示名稱,是否必填字段都是控制提供給用戶進行設(shè)置字段權(quán)限界面。

4. 控制數(shù)據(jù)權(quán)限

數(shù)據(jù)權(quán)限定義:數(shù)據(jù)權(quán)限管理主要控制某條數(shù)據(jù)記錄對用戶是否可見,結(jié)合功能權(quán)限可以更靈活的配置業(yè)務(wù)過程中每一位員工的功能操作權(quán)限及數(shù)據(jù)可見范圍,全面保障企業(yè)數(shù)據(jù)的安全性。

類似矩陣列表中,功能權(quán)限決定用戶可見哪些列,比如客戶對象中可見姓名、電話、郵箱等字段。數(shù)據(jù)權(quán)限決定用戶可見哪幾條數(shù)據(jù),比如:“王先生”、“李先生”等。

數(shù)據(jù)權(quán)限分兩個層次來控制數(shù)據(jù):

  1. 基礎(chǔ)數(shù)據(jù)權(quán)限:即根據(jù)數(shù)據(jù)的負責(zé)人來決定。
  2. 數(shù)據(jù)共享:根據(jù)基礎(chǔ)數(shù)據(jù)權(quán)限中的數(shù)據(jù)記錄所屬將其共享給其它用戶查看或編輯。

基礎(chǔ)數(shù)據(jù)權(quán)限:

  1. 私有:對象中所有數(shù)據(jù)遵循相關(guān)團隊成員(包括負責(zé)人)及其上級對數(shù)據(jù)可見,且對這條數(shù)據(jù)具備同樣的權(quán)限【只讀、可編輯】,上級部門的部門負責(zé)人可以看到下級部門的所有數(shù)據(jù)。
  2. 公開只讀:對象中所有數(shù)據(jù)對全公司公開,單條數(shù)據(jù)的負責(zé)人及其上級、以及相關(guān)團隊具備編輯權(quán)限的成員可以編輯該數(shù)據(jù)。
  3. 公開讀寫:對象中所有數(shù)據(jù)對全公司公開,全員可編輯。

備注:此處的“上級”是指用戶的匯報對象,在用戶管理界面可進行編輯匯報對象。

系統(tǒng)初始化一開始默認設(shè)置好(默認設(shè)置的應(yīng)該是根據(jù)客戶公司實際運營情況),用戶再根據(jù)公司的發(fā)展而進行改變默認設(shè)置,也可進行恢復(fù)默認設(shè)置,因為默認設(shè)置是涵蓋了客戶公司90%的場景。

數(shù)據(jù)權(quán)限共享:

數(shù)據(jù)共享規(guī)則是將某個部門/員工(數(shù)據(jù)來源)的某個對象(比如客戶)的全部負責(zé)的數(shù)據(jù)共享給某個部門、人員或者用戶組(共享范圍)。配置數(shù)據(jù)共享規(guī)則后,被共享方對共享方所負責(zé)的所有數(shù)據(jù)可見,并具備共享權(quán)限對應(yīng)的操作權(quán)限。

業(yè)務(wù)配置說明:

  • 數(shù)據(jù)來源于:即需要共享的數(shù)據(jù),選擇員工即指該員工負責(zé)的記錄數(shù)據(jù),選擇部門即指該部門下員工負責(zé)的記錄數(shù)據(jù)。
  • 共享的數(shù)據(jù):選擇需共享的對象,比如:將員工A負責(zé)的客戶數(shù)據(jù)共享給員工B。
  • 數(shù)據(jù)共享到:被共享方,可選擇員工、部門或用戶組,被選擇的員工、部門或用戶組成員將可以看到共享的數(shù)據(jù)。
  • 共享后的權(quán)限:配置被共享方可對數(shù)據(jù)查看或是可編輯的權(quán)限,如果配置為“讀寫”權(quán)限后,被共享方對共享數(shù)據(jù)的權(quán)限可類比于負責(zé)人的權(quán)限。

業(yè)務(wù)場景舉例:銷售一部想讓財務(wù)部張三看到該部門的所有銷售訂單數(shù)據(jù),并且讓張三可編輯。

(1)共享規(guī)則配置

  • 【數(shù)據(jù)來源】是“銷售一部”;
  • 【共享數(shù)據(jù)】是“銷售訂單”
  • 【共享范圍】是“張三”;
  • 【共享權(quán)限】是“讀寫”。

(2) 配置完成后

配置完成后,張三在【銷售訂單】對象,【共享給我的】場景下,可以看到銷售一部的所有員工負責(zé)的銷售訂。

附上高保真原型鏈接+整體結(jié)構(gòu)圖:

《藍鯨后臺權(quán)限管理系統(tǒng)》高保真原型鏈接:http://www.wulihub.com.cn/go/4Jrn8J/start.html#g=1&p=登錄頁面&c=1

總結(jié)

后臺權(quán)限管理系統(tǒng)并不是越復(fù)雜越好,只有貼合客戶實際需求并具備最大彈性的權(quán)限系統(tǒng),并有效控制開發(fā)成本的設(shè)計就是合理的設(shè)計。

以上根據(jù)自己的設(shè)計經(jīng)驗總結(jié)給出的一套方案,小小產(chǎn)品一枚,有不足之處,歡迎各路大神拍磚指教~

 

本文由 @?董小姐 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)許可,禁止轉(zhuǎn)載

題圖來自Unsplash,基于CC0協(xié)議

更多精彩內(nèi)容,請關(guān)注人人都是產(chǎn)品經(jīng)理微信公眾號或下載App
評論
評論請登錄
  1. 原型鏈接可以再發(fā)一下嗎?看不了了呢

    來自浙江 回復(fù)
  2. 請問一下,如果我可能所屬多個部門的情況下,如何將確定自己發(fā)布的數(shù)據(jù)是屬于哪個部門呢

    來自江蘇 回復(fù)
    1. 請問您這邊所屬多個部門的業(yè)務(wù)場景是?

      所屬多個部門的情況,從人事的角度一般為借調(diào) 或 兼職。

      1、借調(diào):例如,張三從A部門借調(diào)到B部門,那么在借調(diào)期間,該員工屬于B部門,所產(chǎn)生的業(yè)務(wù)數(shù)據(jù),如薪資、績效等都歸屬B部門。有B部門權(quán)限的管理員才能看到這些業(yè)務(wù)數(shù)據(jù),A部門的管理員的權(quán)限只能在員工檔案看到此張三檔案數(shù)據(jù),無法看到張三產(chǎn)生的B部門的業(yè)務(wù)數(shù)據(jù)。

      借調(diào)期結(jié)束后,張三所屬部門變回A部門后,這時再產(chǎn)生的業(yè)務(wù)數(shù)據(jù)歸屬A部門。

      2、兼職:例如,張三本部門為產(chǎn)品部老大,兼職測試部老大。實際所屬部門不變,那么產(chǎn)生的相關(guān)業(yè)務(wù)數(shù)據(jù)一般歸屬產(chǎn)品部,只不過在審批流、考評上,系統(tǒng)按照關(guān)系找產(chǎn)品部、測試部的領(lǐng)導(dǎo)時均可找到張三。

      還有一種情況,由于該員工所屬多個部門,所以在創(chuàng)建業(yè)務(wù)數(shù)據(jù)時,應(yīng)該下拉選擇所屬部門,讓數(shù)據(jù)有個歸屬部門。
      ps:所屬部門數(shù)據(jù)來源為員工所屬部門和兼職部門的數(shù)據(jù),不過主要結(jié)合實際系統(tǒng)業(yè)務(wù)設(shè)計。

      希望對您有幫助!

      來自廣東 回復(fù)
  3. 你好,理解下來角色授權(quán)那邊的字段權(quán)限資源是通過頁面管理這個模塊功能來實現(xiàn)的,但是頁面和菜單的關(guān)聯(lián)是如何實現(xiàn)的呢,是通過頁面管理中的那個主鍵嗎?

    來自上海 回復(fù)
  4. 請問菜單管理中的連接目標是干什么的,在設(shè)計中是必須的嗎

    來自廣東 回復(fù)
  5. 請問可以分享一下框架圖的原型文件嗎

    來自安徽 回復(fù)
  6. 挺不錯哦(這不是機器回復(fù))

    來自四川 回復(fù)
  7. 分享內(nèi)容很詳實,謝謝樓主。

    來自廣東 回復(fù)
  8. 你好,查看原型鏈接需要登錄?

    來自湖南 回復(fù)
    1. 不需要,直接點擊登錄即可進入

      來自廣東 回復(fù)
  9. 請問下組織架構(gòu)管理采用樹狀結(jié)構(gòu)的形式展現(xiàn)好實現(xiàn)嗎?會不會被前端砍啊

    來自上海 回復(fù)
    1. 數(shù)量比較龐大的組織確實不適合用這個組件,確實會被前端砍

      來自廣東 回復(fù)
  10. 反手就是一個訂閱加個贊

    來自上海 回復(fù)
    1. 謝謝支持哦!

      來自廣東 回復(fù)
  11. 你好,有框架圖的原型文件可以分享么?

    來自四川 回復(fù)
    1. 具體可以直接在文章中預(yù)覽哦

      來自廣東 回復(fù)
  12. 有問題想討論下:1)共享功能中,如果被共享人沒有被共享模塊的菜單和功能權(quán)限,這種情況是怎么處理的?2)當(dāng)前登錄人可以查看的數(shù)據(jù)范圍是按什么維度來控制的呀?3)因為有主部門和附屬部門,新建數(shù)據(jù)的時候,怎么來判斷該數(shù)據(jù)是屬于主部門還附屬部門?

    來自上海 回復(fù)
    1. 1、跟共享人有沒有權(quán)限沒關(guān)系,例如員工沒有請假單模塊權(quán)限,但是hr有啊,可以幫他錄入。
      數(shù)據(jù)共享規(guī)則是將某個部門/員工(數(shù)據(jù)來源)的某個對象(比如請假單)的全部單據(jù)的數(shù)據(jù)共享給某個部門、人員或者用戶組(共享范圍)。

      2、當(dāng)前登陸人可以查看的數(shù)據(jù)范圍在數(shù)據(jù)共享那邊去決定

      3、新建數(shù)據(jù),怎么判斷該數(shù)據(jù)屬于主部門還是復(fù)數(shù)部門什么意思

      來自廣東 回復(fù)
    2. 樓主的第一個問題的意思我明白:

      還是這個業(yè)務(wù)場景舉例:銷售一部想讓財務(wù)部張三看到該部門的所有銷售訂單數(shù)據(jù),并且讓張三可編輯。

      被共享人張三被共享了銷售訂單的數(shù)據(jù)權(quán)限,但是按照業(yè)務(wù)理解,財務(wù)人員張三理應(yīng)是沒有訂單模塊的權(quán)限啊,比如訂單的列表查看,訂單詳情等等。但這個時候共享了訂單數(shù)據(jù)給張三卻沒有該訂單模塊的菜單及功能權(quán)限。出現(xiàn)矛盾….

      來自廣東 回復(fù)
    3. 你好,需要有菜單權(quán)限,分配的數(shù)據(jù)權(quán)限才會發(fā)生作用哦,如果沒分配菜單權(quán)限為啥要共享數(shù)據(jù)呢,數(shù)據(jù)權(quán)限在功能權(quán)限的基礎(chǔ)上成立,目前前端頁面是沒有這個判斷的,但是程序邏輯里邊要有這層的判斷。如果沒有菜單權(quán)限,數(shù)據(jù)權(quán)限有沒有分配都是一樣的。

      這是我的想法,歡迎交流!

      來自廣東 回復(fù)
    4. 3)是否可默認為主部門,可以修改;或者在上層已經(jīng)存在部門間數(shù)據(jù)隔離,數(shù)據(jù)歸屬可以繼承

      來自北京 回復(fù)
  13. 功能是挺全的,就是感覺操作太復(fù)雜了 ?

    來自廣東 回復(fù)
    1. 涉及到底層的權(quán)限分配是會比較復(fù)雜,只要理清邏輯業(yè)務(wù),大家可把這個作為參考自行根據(jù)實際情況優(yōu)化哦~

      來自廣東 回復(fù)
  14. 這種設(shè)置方法的話,如果一個字段權(quán)限設(shè)置了讀寫,但對應(yīng)操作權(quán)限沒有選,或者反過來的時候,系統(tǒng)邏輯如何判斷呢?

    來自上海 回復(fù)
    1. 只有進行勾選了查看列表,才顯示設(shè)置字段權(quán)限按鈕

      來自湖南 回復(fù)
  15. 你好高保真原型圖鏈接打開怎么是登錄頁面的?。?/p>

    來自廣東 回復(fù)
    1. 不好意思看懂了

      來自廣東 回復(fù)
  16. 你好,加我一下,1903841331微信

    回復(fù)
  17. 你好有框架圖的原圖嗎?

    來自廣東 回復(fù)
    1. 有的,可加我微信:13544773417

      來自廣東 回復(fù)
  18. 你也太好了吧 ??

    來自浙江 回復(fù)