在Django对象级级联权限(Object level cascading permission i

2019-09-18 00:30发布

项目如Django的监护人和Django的权限,使您能够对象级别的权限。 但是,如果两个物体是由父子关系彼此相关的,有没有什么办法的子对象继承父对象的权限,除非另有规定? 例如, subfolder应该继承权限parent folder ,除非用户明确地指定的子文件夹不同的权限。

什么是做到这一点使用Django的最佳方法,尤其是Django的监护人模块?

Answer 1:

当您检查,如果用户对某个对象的权限,并且没有,那么你可以检查它是否具有在其家长同意。

你甚至可能想使自己的功能,例如:

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。



文章来源: Object level cascading permission in Django