章節 附錄 A · 權限對照表

附錄 12

附錄 A · 權限對照表

每一個權限鍵值、它打開哪個頁面,以及它讓哪些按鈕出現。

更新日期

1. 權限鍵值怎麼寫

<資源>:<動作>
動作字母意義
建立C建立新資料
檢視R檢視清單與詳細資料
修改U修改、啟用、停用
刪除D刪除資料

目錄中恰好有 42 個權限,涵蓋 12 種資源,而且集合是固定的——Merak 不會在執行期產生新的權限。其中十種資源具備完整的 C/R/U/DpermissionauditLog 是唯讀的,只存在 permission:RauditLog:R(10 × 4 + 2 = 42)。

資源鍵值管轄範圍
使用者user主控台管理員帳號
成員member受管人員
裝置device註冊到成員名下的裝置
應用程式application已發布的服務
組織organization成員與應用程式的群組
角色role角色
權限permission權限目錄本身
Token 申請tokenRequest審批
稽核日誌auditLog稽核日誌 連線日誌
租戶tenant租戶資訊
授權license授權與配額資訊
Merak NodemerakNode邊緣路由節點

2. 頁面存取對照表

持有下列權限,選單項目才會出現、路由才打得開。沒有的話,選單項目會隱藏,而且 直接輸入網址也只會看到「無此頁面存取權限」。

頁面路徑需要的權限
儀表板/
成員/membermember:R
應用程式/applicationapplication:R
組織/organizationorganization:R
Merak Node/meraknodemerakNode:R
審批/approvetokenRequest:R
稽核日誌/audit-logauditLog:R
連線日誌/connection-logauditLog:R
使用者(管理員)/useruser:R
角色/rolerole:R
個人資料/profile
偏好設定/preference

當一個 選單群組 底下的項目全部被隱藏時,該群組本身也會消失。


3. 各資源的操作對照表

3.1 成員

操作權限
檢視清單與詳細資料member:R
建立/複製/匯入member:C
編輯member:U
停用/取消停用/解鎖/啟用/寄送信件/重設 MFAmember:U
刪除member:D

跨功能相依:裝置區塊需要 device:R、組織區塊需要 organization:R、應用程式區塊需要 application:R、日誌頁籤需要 auditLog:R。少了其中一個,該區塊或頁籤會整個消失。

3.2 裝置

操作權限
檢視裝置device:R
改名/停用device:U
刪除device:D

3.3 應用程式

操作權限
檢視清單與詳細資料application:R
建立/複製/匯入application:C
編輯、啟用、停用application:U
刪除application:D
編輯成員存取權application:U + member:R + member:U
編輯組織存取權application:U + organization:R + organization:U
顯示成員區塊member:R
顯示組織區塊organization:R
以組織篩選organization:R
在拓撲圖新增成員節點member:R

3.4 組織

操作權限
檢視清單與詳細資料organization:R
建立/複製/匯入organization:C
編輯名稱與描述organization:U
新增或移除成員/應用程式organization:U
刪除organization:D
顯示成員區塊與篩選條件member:R
顯示應用程式區塊與篩選條件application:R

3.5 Merak Node

操作權限
檢視清單與詳細資料merakNode:R——管控頁面本身
建立merakNode:C——僅由後端執行檢查
改名、重新產生 JWTmerakNode:U——僅由後端執行檢查
刪除merakNode:D——僅由後端執行檢查

⚠️ Merak Node 是「沒有權限就沒有按鈕」這條原則的唯一例外。 主控台只以 merakNode:R 管控 頁面;建立、改名、重新產生與刪除等控制項會顯示給所有能開啟頁面的人——它們 只依佈署狀態 過濾。merakNode:C/U/D 這些鍵值確實存在,後端也確實會檢查,因此你沒有資格的動作會在送出時失敗,而不是事先被藏起來。在這一頁,看得到按鈕的意思是「你可以試」,不是「你可以做」。

3.6 審批

操作權限
開啟頁面、檢視佇列tokenRequest:R
核准或駁回(單筆或批次)tokenRequest:U

3.7 日誌

操作權限
稽核日誌:檢視、篩選、匯出auditLog:R
連線日誌:檢視、篩選、匯出auditLog:R
成員或使用者的日誌頁籤auditLog:R

3.8 使用者(主控台管理員)

操作權限
檢視清單與詳細資料user:R
建立/複製/匯入user:C
編輯/停用/啟用/解鎖/重寄啟用信/重設 MFAuser:U
刪除user:D
編輯角色欄位user:U role:U
驗證角色選擇permission:R

3.9 角色

操作權限
檢視清單與詳細資料role:R
建立/複製/匯入role:C
編輯名稱與描述role:U
刪除role:D
新增或移除角色的權限role:U + permission:R

3.10 個人資料與偏好設定

操作權限
開啟兩個頁面
編輯自己的名稱、密碼、MFA
檢視租戶資訊tenant:R——沒有時降級顯示 -
檢視授權與配額license:R——沒有時降級顯示提示訊息

4. 全站適用的規則

4.1 沒有權限就沒有按鈕

你沒有權限的控制項是 根本不會被畫出來,而不是變灰。若你預期的按鈕不見了,先確認權限再開票。

唯一的例外是 Merak Node。 它的建立、改名、重新產生與刪除控制項在主控台不受權限過濾,只有頁面受管控,見 §3.5

4.2 跨功能相依會讓整個區塊消失

當一個頁面需要另一種資源的資料時,少了那個資源的讀取權限,整張卡片、頁籤或篩選欄位都會被移除——Merak 不會給你一張空卡片,讓你誤以為「這裡沒東西」。同時它也不會再去跟伺服器要你無權讀取的資料。

4.3 授權需要兩側的權限

授權會寫入兩筆資料,因此兩側都需要權限:

授權關係需要
應用程式 → 成員application:U + member:R + member:U
應用程式 → 組織application:U + organization:R + organization:U
使用者 → 角色user:U + role:U

你無法完整編輯的欄位會變成 唯讀,而且以空值送出——它絕不會夾帶預先勾選的值繞過你的權限。

若某個選擇器純粹只是用來 尋找 來源(快速選取中的組織選項),則只需要該資源的 讀取 權限,因為不會寫入任何東西到它身上。

4.4 你永遠無法授出自己沒有的權限

這條規則在四個地方被執行——複製使用者、複製角色、手動指派角色,以及匯入角色。四者都 安全地失敗:若檢查無法完成,該授權一律拒絕,而不是在未驗證的情況下放行。見 08 · 管理員與角色 §11

4.5 所有預設角色都帶有 tenant:Rlicense:R

這就是為什麼租戶名稱與配額通常都讀得到。完全沒有角色 的帳號仍可能被拒絕,而每一個讀取它們的畫面都會優雅降級,不會整頁失敗。


5. 系統帳號與系統角色

對象保護方式
系統角色不可編輯、不可刪除。可以 檢視與複製——複製只讀取來源,產生的是一個全新的一般角色。
系統帳號在清單中以 系統 標籤標示。

角色的批次刪除會 事先 把系統角色排除在可執行集合之外,而不是讓它們一個一個去撞伺服器再失敗。