دستورهای مدیریتی¶
clearance_sync¶
پایگاه داده را وادار میکند همان چیزی را داشته باشد که فایل ACCESS
اعلام میکند.
python manage.py clearance_sync --dry-run # what would change, writing nothing
python manage.py clearance_sync --check # in CI: fail when the database differs
python manage.py clearance_sync # apply it, and say what changed
| گزینه | چه میکند |
|---|---|
| بدون گزینه | همهی تغییرها را فهرست میکند، و بعد در یک تراکنش اعمالشان میکند |
--dry-run |
همهی تغییرها را فهرست میکند و چیزی نمینویسد |
--check |
همهی تغییرها را فهرست میکند و اگر یکی باشد خطا میدهد - برای CI |
--dry-run و --check با هم داده نمیشوند. هر تغییر یک خط است: + ساختهشده، ~
تغییرکرده، - حذفشده، با اینکه دربارهی چیست.
بدون تغییر دادن چیزی خطا میدهد:
- وقتی
CLEARANCE['ACCESS']فایلی را نام نمیبرد، یا فایل خوانده نمیشود؛ - وقتی فایل نمیتواند اعمال شود - مجوز، دامنه یا بستهای که وجود ندارد؛
- وقتی قانونهای ایمنی ردش میکنند - syncی که کسی را برای مدیریت دسترسی باقی نگذارد.
با SYNC_ON_MIGRATE، در پایان هر migrate رو به جلو یک بار اجرا میشود.
clearance_check¶
میگوید پایگاه داده چه چیزی دارد که دسترسیای نمیدهد، یا شاید منظور نبوده - چیزی که هیچ بررسی سیستمیای نمیبیند، چون در ردیفهاست، نه در کد.
خطاها دستور را ناموفق میکنند - هر کدام چیزی است که برای دادن دسترسی ساخته شده و حالا، بیصدا، هیچ دسترسیای نمیدهد:
| یافته | چیست |
|---|---|
broken_rule |
دامنهی قانونیای که دیگر درست درنمیآید - فیلدش رفته، یا از آن به بعد محافظت شده. به هیچ ردیفی نمیرسد |
broken_status_action |
اکشن وضعیتی که فیلدش رفته، یا دیگر آن مقدارها را ندارد |
lost_scope |
مجوزی که دامنهاش را مدلش دیگر ندارد. به هیچ ردیفی نمیرسد |
هشدارها بدون ناموفق کردن دستور فهرست میشوند - هر کدام چیزی است که شاید منظور نبوده:
| یافته | چیست |
|---|---|
scope_needed |
مجوزی بدون دامنه، روی مدلی که پیشفرضش به هیچ ردیفی نمیرسد |
unaccounted_permission |
مجوزی که هیچ مدل، فیلد، اکشن وضعیت یا کدی توضیحش نمیدهد - اکشنی که از کد رفته، یا مجوزی که با دست ساخته شده. کاری نمیکند |
با --verbosity 2، میگوید چند مجوز را هیچ کس ندارد. وقتی چیزی پیدا نشود، میگوید
Nothing is wrong. صفحهی نمای کلی پنل ادمین همین یافتهها را نشان میدهد.
میتواند در CI کنار check بایستد: