我正在研究面向企業解決方案的面向django應用程序的用戶。目前,用戶能夠將網站上的數據分類爲私人收藏,只有他們自己才能看到。功能要求是管理員能夠查看其下屬的私人收藏。如何根據用戶層次結構授予查看頁面的權限
我的問題是,實現這個層次結構的最佳解決方案是什麼?我想到了幾個解決方案:
- 從用戶到用戶名稱管理器的外鍵。創建一個@user_passes_test測試,通過從集合所有者角度看管理者關係遞歸,直到a)發現請求用戶是經理,或者b)經理是空的,表明請求用戶沒有權限訪問此頁面。
- 優點:簡單的層次準確地與最小數據表示
- 缺點:大型層次結構導致許多查詢
- 創建一個多對多的關係之間的用戶和網友稱其爲經理。在此表中創建所有關係。
- 優點:只需要一個查詢,用戶可以有多個管理器。
- 缺點:有人離開時很難改變層次結構。
我接受任何其他建議人,也是如此。
您是否考慮使用Treebeard或MPTT建模您的關係? –
不熟悉他們,我會開始研究。 – mklauber
@Elf:看起來像MPTT是我想要的。如果您想要代表,發佈作爲答案,我會接受它。 – mklauber