2011-12-27 96 views
0

我正在爲我正在處理的django項目實現行級(對象級)安全包。 Django-gaurdian和django-rulez似乎是可用於實現此目的的最活躍的軟件包。Django-gaurdian或Django-rulez對象級權限

有沒有人做過這兩者的比較,或者您是否曾使用過這兩種方法?請給我任何好的或壞的反饋。 Django-rules具有在內存中存儲一​​些信息以減少數據庫負載的好處,您是否遇到過使用該功能的任何問題?

在此先感謝。

+0

沒有具體問題就很難提出建議。我可以說我已經使用Django-Rules進行了幾個項目,並發現該結構相當容易管理。 – Alvin 2012-03-09 21:45:47

回答

2

截至2012年5月,似乎Django的監護人保持尤爲明顯比Django的Rulez記錄。它也被廣泛使用。我必須自己做出這個決定,僅僅基於這些因素,我決定和Django-Guardian一起去。

4

主要區別在於django-guardian維護一張表,您可以添加完全任意的權限,而django-rules和django-rulez(後者是第一個叉的叉)主要是從方法調用中扣除權限(MyModel.can_edit(user) )。

這兩種方法各有其優點和缺點,更喜歡哪一個取決於你的使用場景:

  • 如果你的權限,可以隨時從其他值來計算(例如:「每一個用戶必須能夠編輯他/她自己的上傳「),那麼django-rule [s | z]會更適合。您可以節省開銷,並且無需在創建對象時關心創建必要的權限條目
  • 如果您的權限完全是任意的(例如,您需要針對每個單獨對象的類似Facebook的隱私設置) ,那麼django-guardian將是正確的選擇。