6

Django-guardian や django-permissions などのプロジェクトを使用すると、オブジェクト レベルのアクセス許可を取得できます。しかし、2 つのオブジェクトが親子関係で関連付けられている場合、特に指定がない限り、子オブジェクトが親オブジェクトから権限を継承する方法はありますか? たとえば、ユーザーがサブフォルダーに別のアクセス許可を明示的に割り当てない限り、 はsubfolderからアクセス許可を継承する必要があります。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 に答える