簡體   English   中英

如何在sails.js 中實現路由和函數的權限?

[英]how to implement permissions on routes and functions in sails.js?

我是風帆新手,我有一個 PostgreSQL 數據庫。 我想實現一個用戶管理。 我有一些用戶, each user can be assigned to multiple groupseach group can be assigned to multiple roleseach role can have some permissions 我檢查了風帆許可的文件,但我沒有弄好。 例如,我希望某些組不能添加或編輯用戶,或者我希望某些角色不能看到用戶管理菜單。 我該怎么辦?

我在這里發布答案可能有點晚了,但是有一種方法可用於風帆中的訪問控制。

Sails 具有內置的基於策略的訪問控制系統。

  1. 政策

Sails 中的策略旨在控制對特定操作的二進制(“是或否”)訪問。 它們非常適合檢查用戶是否登錄或其他簡單的“是或否”檢查,例如登錄用戶是否是“超級管理員”。

但是對於動態權限,

  1. 幫手

幫助器文檔、 訪問控制和權限的鏈接

對於更復雜的權限方案,例如那些請求用戶代理的訪問權限取決於他們是誰以及他們試圖做什么的方案,您需要涉及數據庫。 雖然您可以使用策略來完成此操作,但使用幫助程序通常更直接且可維護。

可以在這里找到示例, 使用幫助程序進行訪問控制和許可

因此,您可以使用 postgreSQL 來存儲角色及其各自的權限,並在策略/助手中檢索用戶角色並檢查需要的權限。

Sails.js 沒有 ACL 管理你必須使用 3rd 方中間件,比如角色角色-acl

聽起來最重要的是用戶與權限(或角色)的關聯。 因此,您可以考慮為每一層(用戶、角色、組)制作模型,或者您可以為每種類型的組和/或角色制作模型(盡管這聽起來可能會失控),然后將模型與彼此。 然后在查看操作中,您可以設置權限是什么(也就是允許哪些組或角色查看該頁面)。 同樣在標記中,您可以設置甚至允許誰看到按鈕。 例如: isSales可以是您的組或角色模型上的布爾值,用於銷售用戶,他們可以看到編輯按鈕來更改某物的價格。 所以在你的標記中你有:

 <div v-if="user.isSales">
  <button> Edit price </button>
 </div>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM