{% extends "admin/base_site.html" %} {% load admin_urls %} {% block extrahead %}{{ block.super }}{{ form.media }}{% endblock %} {% block breadcrumbs %}{% include "admin/django_action_permissions/actionpermission/_breadcrumbs.html" %}{% endblock %} {% block content %}
Runs the checks a view makes (abac.allowed) for a user, step by step, the project's predicates
included. A draft replaces one group's ruleset for this check only: nothing is saved.
| Permission | On | |
|---|---|---|
{{ perm }} |
{% if any_object %}any object{% else %}the objects a ruleset allows{% endif %} | Explain |
None.
{% endif %} {% endif %} {% if explanation %} {% with ex=explanation %}
{% if ex.allowed %}Allowed{% else %}Refused{% endif %}:
{{ ex.perm_code }} for {{ ex.user }}
{% if ex.obj is not None %}on {{ ex.obj }}{% else %}on any object{% endif %}{% if ex.draft %}, with the draft for {{ ex.draft.0 }}{% endif %}.
{{ ex.reason }}
{% if ex.obj is not None %}A view answers {% if ex.allowed %}200{% elif ex.raises %}500{% elif ex.refusal == 404 %}404: the user can't read it either, its existence isn't revealed{% elif ex.refusal %}{{ ex.refusal }}{% else %}by asking for credentials{% endif %}.
{% endif %} {% if ex.no_detail %}{{ ex.no_detail|join:", " }}: may list but not retrieve a single object (no_detail).
{% endif %}{{ note }}
{% endfor %}{{ row.expression }}{% if row.checked_user and row.checked_user != ex.user|stringformat:"s" %} run with the rights of {{ row.checked_user }}{% endif %}
No ruleset: on any object.
{% endif %} {% if row.skipped %}Not run: {{ row.skipped }}.
{% endif %} {% if row.error %}{{ row.error }}
{% endif %} {% if row.trace %}The rules backend, {{ ex.backend }}, {% if ex.default_allows %}allows{% else %}denies{% endif %} when no group's ruleset decides.