簡體   English   中英

克隆 django-guardian 中的所有對象權限/從 ForeignKey 繼承

[英]Clone all object permissions in django-guardian / inherit from ForeignKey

我有一個具有模型層次結構的應用程序,其中我需要底層對象與父對象具有相同的權限(不僅是它們的定義/代號,還有每個用戶和每個組的權限)。

Django-guardian 似乎只有允許檢查特定用戶/組權限的功能。

是否有任何規范的方法可以將所有權限從一個對象克隆到另一個對象或強制繼承?

沒有辦法強制權限繼承,也沒有復制權限的內置函數。

在您的情況下,您可以簡單地檢查父對象的權限嗎?

或者顯式復制權限。 由於這一次又一次地出現,我為此目的使自己成為一個函數:

from guardian.shortcuts import get_users_with_perms, assign_perm, get_groups_with_perms


def copy_permissions(old_object, new_object):
    """Copy user and group permissions from one object to another."""
    for user, permissions in get_users_with_perms(old_object, attach_perms=True, with_group_users=False).items():
        for permission in permissions:
            assign_perm(permission, user, new_object)

    for group, permissions in get_groups_with_perms(old_object, attach_perms=True).items():
        for permission in permissions:
            assign_perm(permission, group, new_object)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM