Ton*_*ony 5 python django permissions cascade
诸如Django-guardian和django-permissions之类的项目使您能够拥有对象级权限。但是,如果两个对象之间通过父子关系相互关联,则除非另有说明,否则子对象有什么方法可以继承父对象的许可?例如,除非用户为子文件夹明确分配了不同的权限,否则a subfolder应该继承权限parent folder。
使用Django(尤其是Django-guardian模块)完成此操作的最佳方法是什么?
当您检查用户是否拥有某个对象的权限或没有权限时,您可以检查该用户是否拥有其父对象的权限。
您甚至可能想创建自己的函数,例如:
def your_has_perm(user, perm, obj):
has = user.has_perm(perm, obj)
if not has and hasattr(obj, 'parent'):
return your_has_perm(user, perm, obj.parent)
return has
Run Code Online (Sandbox Code Playgroud)
这应该遍历父级,直到找到父级的许可或返回 False。
| 归档时间: |
|
| 查看次数: |
656 次 |
| 最近记录: |