پرش به محتویات

سیگنال‌ها

هر تغییری در دسترسی اعلام می‌شود، برای سابقه‌ای که خود پروژه نگه می‌دارد. هر سیگنال بعد از commit شدن تراکنش فرستاده می‌شود، پس گیرنده هیچ‌وقت تغییری را که برگشت خورده ثبت نمی‌کند، و هر کدام کنار آنچه تغییر کرده actor را هم دارد - کسی که تغییر را داده، و None برای خود سیستم.

from django.dispatch import receiver

from clearance.signals import permission_revoked


@receiver(permission_revoked)
def record(sender, actor, person, permission, reason, **kwargs):
    AuditEntry.objects.create(who=actor, whom=person, what=f'revoked {permission}: {reason}')

clearance.signals

AccessService آن‌ها را می‌فرستد.

سیگنال همراه دارد
bundle_created bundle، grants - {permission: scope}
bundle_changed bundle، before، after - هر کدام {permission: scope} - و name
bundle_deleted name، grants، people - کسانی که به آن‌ها می‌رسید
bundle_given person، bundle
bundle_taken person، bundle
permission_granted person، permission، scope
permission_revoked person، permission، reason
permission_restored person، permission
scope_changed person، permission، before، after
scope_rule_saved rule، created - اینکه تازه است یا نه
scope_rule_deleted model، code، name
field_protected model، field، permissions - {'view': ..., 'edit': ...}، تازه ساخته‌شده
field_unprotected model، field، permissions - دو مجوزی که همراهش حذف شدند
status_action_saved action، created - اینکه تازه است یا نه
status_action_deleted model، code، name
actions_found permissions - آن‌هایی که migrate همین حالا برای اکشن‌های پیداشده در کد ساخت؛ actor برابر None است

clearance.roles.signals

RoleService آن‌ها را می‌فرستد، وقتی clearance.roles نصب باشد.

سیگنال همراه دارد
role_saved role، created - اینکه تازه است یا نه
role_deleted code، name
role_assigned person، role
role_unassigned person، role
ceiling_changed role، before، after - هر کدام مجوزهایی که اجازه می‌دهد، یا None برای بدون سقف

clearance.translations.signals

TranslationService آن را می‌فرستد، وقتی clearance.translations نصب باشد.

سیگنال همراه دارد
name_changed thing، language، before، after - هر کدام (name, description)، یا None