6

Django-guardian 和 django-permissions 等项目使您能够拥有对象级别的权限。但是,如果两个对象通过父子关系相互关联,那么除非另有说明,否则子对象有没有办法从父对象继承权限?例如,除非用户明确为子文件夹分配不同的权限,否则 asubfolder应该继承权限。parent folder

使用 Django,特别是 Django-guardian 模块来完成此任务的最佳方法是什么?

4

1 回答 1

3

当您检查用户是否对对象具有权限时,您可以检查它是否对其父对象具有权限。

您甚至可能想要创建自己的函数,例如:

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

这应该遍历父母,直到找到父母的许可或返回 False。

于 2012-06-11T06:50:09.357 回答