手把手教你做ERP(一):權限系統

Ron
28 評論 44250 瀏覽 316 收藏 10 分鐘

沒有權限系統的ERP,是沒有靈魂沒有大腦的軀殼,一個權限混亂的ERP,是一個四肢不協調的機器人,哪怕指令再明確,行為也達不到期望要求。本文主要分為五個步驟來教你如何去設計權限系統,一起來看看~

引用自百度百科:

權限管理,一般指根據系統設置的安全規則或者安全策略,用戶可以訪問而且只能訪問自己被授權的資源,不多不少。權限管理幾乎出現在任何系統里面,只要有用戶和密碼的系統。 很多人常將“用戶身份認證”、“密碼加密”、“系統管理”等概念與權限管理概念混淆。

其他的內容就不多復制了,大家自己去看。

在我看來,權限系統用一個成語來概括就是:各司其職。用一個詞來形容地位就是:萬物之源。用一句話來說明就是:沒有權限系統的ERP,是沒有靈魂沒有大腦的軀殼,一個權限混亂的ERP,是一個四肢不協調的機器人,哪怕指令再明確,行為也達不到期望要求。

扯了些虛的,現在來說點實的。

在搭建一個系統之前,不要急著去把自己腦海中的想法畫出來,因為你會發現你根本畫不到第三步以后的東西。我們要做的是去弄清楚根源,權限系統是什么?

我用一張圖來給大家梳理一下:

這里出現了4個名詞,分別是崗位、系統、角色、角色組。

下面我解釋一下四個詞的定義。

  1. 崗位:顧名思義,就是你所在的職位Title,即產品助理、產品經理、產品總監。
  2. 系統:ERP系統內的系統,比如:人事系統、財務系統、固定資產管理系統等等。
  3. 角色:你的崗位,在這個系統中所對應的身份,即全局管理員、局部管理員、全局僅查詢、部分僅查詢或者無權限。
  4. 角色組:就是你所有的角色合并的一個組,稱為角色組。

經過上面以上圖介紹,各位心里應該也清楚了,所謂的權限管理,其實就是一個:所有崗位對應所有系統權限的管理系統——也就是各司其職。

進入正題:

一、權限系統原理是什么?

在這里我也不和大家扯一些權限系統的概念混字數,下面我直接開始給大家舉栗子,并根據栗子給大家做出分析。

場景一

  • 給張三賦予“人力資源經理”角色,“人力資源經理”具有“查詢員工”、“添加員工”、“修改員工”和“刪除員工”權限。此時張三能夠進入系統,則可以進行這些操作;
  • 去掉李四的“人力資源經理”角色,此時李四就不能夠進入系統進行這些操作了。

分析:

從這個場景中,我們得出幾個有效信息(其實就是需求分析):

  • 賦予張三崗位,撤除李四崗位;
  • 崗位所含有的權限操作,即人力資源經理(崗位)所包含的權限有:進入系統,員工管理(增刪改查);
  • 崗位擁有權限范圍,有無崗位決定有無權限。

場景二

  • 因為張三是北京分公司的“人力資源經理”,所以他能夠也只能夠管理北京分公司員工和北京分公司下屬的子公司(海淀子公司、朝陽子公司、西城子公司、東城子公司等)的員工;
  • 因為王五是海淀子公司的“人力資源經理”,所以他能夠也只能夠管理海淀子公司的員工;
  • 普通審查員審查財務數據的權限是:在零售行業審核最高限額是¥50萬,在鋼鐵行業最高限額是¥1000萬,高級審查員不受該限額限制;
  • ATM取款每次取款額不能超過¥5000元,每天取款總額不能超過¥20000元。

分析:

其實很明顯,這個場景只說明一件事情——權限不同,即使在系統的同一操作頁面下,能看到的東西也不一樣

上面兩個場景,想必大家即便是沒做過權限管理系統,也都能看出來。那接下來深入一點聊。

控制力度來看,可以將權限管理分為兩大類:

  1. 功能級權限管理(場景一);
  2. 數據級權限管理(場景二)。

控制方向來看,也可以將權限管理分為兩大類:

  1. 從系統獲取數據,比如查詢訂單、查詢客戶資料(場景一);
  2. 向系統提交數據,比如刪除訂單、修改客戶資料(場景一)。

再回到之前的問題,權限系統原理到底是什么?用兩張圖來代替設計原理。

給角色設置不同的系統功能 or 可操作數據——角色管理

例如:產品經理在人事管理系統中,具有局部觀察員角色,能夠擁有查詢除工資外所有數據的權限;在財務管理系統中,沒有角色,所以沒有任何權限;在固定資產管理中,是局部管理員角色,即針對產品部&開發部的增刪改查功能等等。

將同一崗位,不同系統角色組合在一起——角色組管理

例如:產品經理擁有人事管理的觀察員角色,同時又扮演固定資產管理的局部管理員,但沒有財務管理的任何角色。

舉個生活中的實際例子,如果你是一名應屆生,我列舉幾個場景、角色、權限。

  1. 在學校:學生,只能查詢自己的成績&表現;(普通角色,可以理解為無權限
  2. 在學生會:干部,可以且只能獲取自己學院部分信息,所有人成績、獲獎等;(局部觀察員
  3. 在家:子女,權限由父母提供,大多數事情需要父母審批,但也可以自己做出一些決定。(局部管理員

二、如何去設計權限系統?

Step1:先去設計系統管理頁面,里面包含所有ERP系統

Step2:在每個系統列表中,可以對角色進行管理

即增刪改查,甚至可以加上啟用/停用功能。

Step3:對啟用狀態下的角色進行權限配置,即對不同菜單的查詢權限

Step4:設計角色組管理菜單,可以對角色組進行管理

即增刪改查,甚至可以加上啟用/停用功能。

Step5:給每個角色組添加角色管理功能

這幾個做完以后,一個簡易的權限管理系統也就做完了。

這時可能會有細心的朋友問了,數據呢?數據的權限怎么分?同一系統同一菜單下,不同角色可查數據不同,該怎么分?

告訴你一個很簡單的處理方法,給數據貼標簽,沒有標簽的人看不到就行了。具體也不多詳述了,開發都懂。(偷個懶)

至于如何給不同崗位的人設置角色組,在我的規劃下,是安排在人事管理系統中,由人事專員負責設置及安排。我會在下一篇系列文中給大家描述的。

相關閱讀

手把手教你做ERP(二):人事系統

手把手教你做ERP(三):財務系統

 

 

本文由 @?RonT 原創發布于人人都是產品經理。未經許可,禁止轉載

題圖來自Unsplash,基于CC0協議

更多精彩內容,請關注人人都是產品經理微信公眾號或下載App
評論
評論請登錄
  1. 1

    回復
  2. 樓主的步驟5我理解是“角色組管理”,即為該角色組選擇哪些系統下的哪些角色,例如:角色組為產品經理,擁有人事管理系統的局部觀察員角色?原型圖給的有些歧義。

    來自內蒙古 回復
  3. 個人覺得角色組這個東西很雞肋,大多數情況下,人員、部門組織、角色(數據+功能)、權限這套體系就玩的轉,再加入其他的只會徒增用戶操作難度!

    來自浙江 回復
  4. 請問一下權限管理系統要體現賬號嗎

    來自廣東 回復
  5. 可以直接把某個權限掛在人身上么

    回復
    1. 可以

      回復
  6. 請教下 角色組是指將幾個角色組成。然后將角色組授權給用戶嗎?沒太看明白。不同的人同一個角色組但是無論視圖權限或者數據權限可能都不一樣,為什么不到最小級角色呢。

    來自北京 回復
    1. 可以的,一個角色組里面只有一個角色也不是不行,或者說,直接給一個用戶賦予一個單一角色權限就可以了。
      比如游客模式,可以理解為只有部分頁面的瀏覽權限,就可以理解為單一角色而不是一個角色組。
      只不過這種情況很少見,忽略不計了哈哈哈哈。
      當然行業更復雜的情況,那具體情況具體分析,我這邊提供了一個大致的簡易方案,適合為剛剛接觸的萌新產品提供一些參考思路。

      來自上海 回復
  7. ?? 受教了~

    來自江蘇 回復
  8. 可以發一個完整的關于權限設計的原型頁面嗎?謝謝,對于角色互斥的情況要怎么處理更好一點呢?

    來自重慶 回復
    1. 恐怕不行,不同公司情況不同,沒法一張圖解決所有問題

      來自上海 回復
    2. 好吧!謝謝,會持續關注的

      來自重慶 回復
  9. 1、HR產品的產品使用權限比較窄的,涵蓋不到ERP系統,ERP管理軟件權限體系維度的設置極其復雜,權限貫穿和彌漫在ERP軟件體系里,無處不在,無時不用。許多軟件就是權限沒法細化,使很多功能沒法體現,客戶體驗很不爽。國外某軟公司的ERP權限比較簡單,粗糙,被客戶各角色一直詬病和替換重大理由。
    2、題主單一闡述了,產品功能權限,涉及一些數據權限,字段權限,數據庫,遠程登錄,二次開發權限等沒有涉及,題主一窺全豹權限體系描素,局限于所處產品和階段,對于TOB不錯了。

    來自四川 回復
    1. 你說的沒錯,這些都是表面的東西。不過也許你不太清楚文章定位,針對新手產品。不需要和他們說的太多,多了反而容易誤導。

      回復
  10. 場景一中的分析,是賦予崗位權限范圍還是賦予角色權限范圍合適?

    來自北京 回復
    1. 角色。為第一張圖其實隱含一個信息,崗位=角色組。兩者是一個東西,只不過崗位是我們的工作Title,角色組是權限中的角色集合

      來自上海 回復
    2. 崗位和角色組不是一個概念,實際工作中一個崗位可能身兼數職,那么他就有很多角色和權限,才可以展開工作

      來自四川 回復
    3. 對,這個時候就涉及到特殊角色組了,畢竟不是每個人都身兼數職的。特殊情況特殊操作

      回復
  11. 剛好在琢磨這塊的東西,受用不少,希望以后能多出點ERP相關的知識模塊

    來自四川 回復
    1. 正有這個打算

      來自上海 回復
  12. 其實最想看的就是數據權限那一塊,竟然偷懶被省掉了….

    來自北京 回復
    1. 對于公司內部系統(例OA),可以考慮采用部門來劃分。當然不同的系統劃分的依據可能不一樣。

      來自廣東 回復
    2. 可以那么處理,而且比較簡單,邏輯上頁走得通

      來自上海 回復
    3. 教新人的不需要那么多東西,時候到了都會明白的。

      來自上海 回復
    4. 哈哈

      來自北京 回復
    5. 我也是,最想看看數據權限怎么規劃,然后就被一句話概括了。。。

      來自廣東 回復
    6. 舉個例子,
      數據權限為A,角色權限為B。
      小明和小紅為同一崗位,所以給他們分配B。
      但由于小明和小紅分管不同模塊,所以,小明是A1,小紅是A2。
      完成。

      來自上海 回復
    7. 這是最簡易的模型,如果要深入討論,在這就太麻煩了,加vx : xrt249700298

      來自上海 回復