Skip to content

angee.base.rebac_m2m

REBAC glue for many-to-many fields backed by explicit relationship tuples.

m2m_changed_relation_pairs

python
def m2m_changed_relation_pairs(
        *, instance: models.Model, action: str, reverse: bool,
        model: type[models.Model], pk_set: set[Any] | None,
        forward_field_name: str,
        reverse_field_name: str) -> list[M2MRelationPair]

Return forward/reverse model pairs affected by one Django M2M signal.

reconcile_m2m_changed_relationships_on_commit

python
def reconcile_m2m_changed_relationships_on_commit(
        *,
        action: str,
        instance: models.Model,
        reverse: bool,
        model: type[models.Model],
        pk_set: set[Any] | None,
        forward_field_name: str,
        reverse_field_name: str,
        grant: M2MRelationCallback,
        revoke: M2MRelationCallback,
        using: str | None = None,
        context: ContextFactory = nullcontext) -> None

Mirror one M2M signal into non-field-backed REBAC tuples after commit.

Released under the AGPL-3.0 License.