2018/04/19

SampleCMS 帳號與權限系統元件說明:帳號與權限規則說明

SampleCMS 帳號與權限系統的設計以員工身份(以下簡稱身份)為主軸,帳號登入後台之後能夠使用後台左側選單中的哪些作業選項取決於帳號屬於哪一個身份,管理者需事先設定身份能否使用以及怎麼使用系統中的作業選項
*作業選項有哪些?例如「帳號管理、身分權限管理、後端操作記錄、網站架構管理...等」。

以下說明授權給身分使用的範圍定義,

授權範圍的定義依照兩種類型來區分,一種為「行為」,另一種為「擁有權」。

行為的定義包含「閱讀」、「修改」、「刪除」和「新增」,其中「閱讀」為最基本的行為,授權「閱讀」之後才可以提升授權「修改」,再來才可以提升授權「刪除」與「新增」。

變更身分的授權時,如果點選了「可修改」,那麼代表「可閱讀」也一起授權給身分;如果從原本已選擇的「可刪除」點選為「可閱讀」,則系統自動取消「可刪除」、「可修改」與「可新增」的授權。

擁有權的定義建構在「作業選項的子項目」的建立者與被授權身分的關係上,包含「自己建立的子項目」、「同部門的人員建立的子項目」與「任何人所建立的子項目」,系統只允許被授權身分使用它所擁有的「作業選項的子項目」,其中使用「自己建立的子項目」為最基本的擁有權,授權「自己建立的子項目」之後才可以提升授權為能使用「同部門的人員建立的子項目」,再來才可以提升授權「任何人所建立的子項目」。

變更身分的授權時,如果點選了「部門的子項目」,那麼代表「擁有的子項目」也一起授權給身分;如果從原本已選擇的「所有的子項目」點選為「擁有的子項目」,則系統自動取消「所有的子項目」與「部門的子項目」的授權。

根據以上說明,整合「行為」與「擁有權」的授權範圍,產生授權關聯圖如下圖,

補充說明「作業選項的子項目」,
  • 以「帳號管理」為例,開啟這項功能時第一眼看到的,通常是清單頁,就代表那個「作業選項」的最上層。清單裡的項目,也就是每個帳號資料就是「作業選項的子項目」。
     
  • 以「網站架構管理」為例,開啟這項功能時第一眼看到的,網站架構管理的根節點,就是「作業選項」的最上層。根節點之下的子網頁以及再往下延伸的子網頁都是「作業選項的子項目」。
     
  • 還有一種是把「網站架構管理」某一層的某個子網頁設定成獨立的「作業選項」。
    例如「網站架構管理/版面種類/全版文章」有另外設定為作業選項「全版文章」(放在「網站內容管理」裡面),同理,開啟「網站內容管理/全版文章」第一眼看到的,就是這個「作業選項」的最上層。「網站內容管理/全版文章」之下的子網頁以及再往下延伸的子網頁都是「作業選項的子項目」。
     
  • 「作業選項」在權限判斷上是個自獨立的,例如上一條說明提到的「網站內容管理」與「全版文章」,雖然在系統選單上看起來「全版文章」被放在「網站內容管理」裡面,但是「全版文章」不是「網站內容管理」的子項目


另一方面,以後台網頁程式的角度說明權限判斷規則。
以「帳號管理」為例,
  • 相關的網頁程式有「帳號清單頁」和「帳號設定頁」。
  • 另外,在後台系統裡每一種資料管理功能會提供一個專屬的管理頁共用元件給網頁程式使用,「帳號管理」的共用元件為 AccountCommonOfBackend。
  • 作業選項資料欄位裡,除了用來識別的代碼 OpId 和標題 OpSubject 之外,需指定對應的管理頁共用元件名稱。

綜合上述的資源描述,以下圖為例說明後台網頁程式如何達成權限判斷。
  1. 「帳號清單頁」和「帳號設定頁」在網頁被使用者開啟時,會使用其專屬的共用元件名稱,到作業選項資料找出對應的代碼 OpId。
  2. 使用作業選項代碼 OpId 和登入者的身分名稱到資料庫取得相關的授權設定(上一段提到的行為擁有權)。
  3. 依照授權設定關閉或開放對應的網頁內容或功能。





沒有留言:

張貼留言