2011-12-27 42 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将是正确的选择。