django-abac

Attribute-based access control for Django

View the Project on GitHub Weltraum/django-abac

Правила

Само правило состоит из нескольких частей:

Бизнес-правила могут быть как разрешающими, так и запрещающими. Для указания этого в правиле существует еще одна часть — эффект (effect). Он может принимать значения «разрешить» (permit) или «запретить» (deny). Самое главное, что нужно знать: эффект правила срабатывает только в случае положительного вычисления (evaluate) этого правила. То есть эффект применяется только в случае, когда результатом вычисления логического условия в цели и в условии будет «истина» (true). В случае, когда результатом вычисления логического выражения цели или условия является «ложь» (false), результатом оценки правила будет «не применимо» (not applicable). Если же в процессе вычисления логического условия цели или условия произошла ошибка, то результат оценки правила будет «не определен» (indeterminate). Таким образом, результатом вычисления правила может быть одно из четырех значений: «разрешить», «запретить», «не применимо», «не определено».

В Python стиле это можно записать следующим образом:

try:
    if TARGET:
        if CONDITION:
            return EFFECT
    return NOT_APPLICABLE
except:
    return INDETERMINATE

Оглавление

  1. Quick start
  2. Project architecture
  3. Authentication
  4. Rules