Project

General

Profile

0011-django_rbac-add-max-authentication-level.patch

Valentin Deniaud, 04 April 2019 05:07 PM

Download (3.91 KB)

View differences:

Subject: [PATCH 11/13] django_rbac: add max authentication level

 src/authentic2/settings.py                    |  2 ++
 .../migrations/0007_auto_20190404_1632.py     | 26 +++++++++++++++++++
 src/django_rbac/models.py                     | 16 ++++++++----
 3 files changed, 39 insertions(+), 5 deletions(-)
 create mode 100644 src/django_rbac/migrations/0007_auto_20190404_1632.py
src/authentic2/settings.py
'add': ['view', 'search'],
}
DJANGO_RBAC_MAX_AUTH_LEVEL = 5
SILENCED_SYSTEM_CHECKS = ["auth.W004"]
# Get select2 from local copy.
src/django_rbac/migrations/0007_auto_20190404_1632.py
# -*- coding: utf-8 -*-
# Generated by Django 1.11.18 on 2019-04-04 14:32
from __future__ import unicode_literals
import django.core.validators
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('django_rbac', '0006_auto_20190404_1527'),
]
operations = [
migrations.AlterField(
model_name='permission',
name='auth_level',
field=models.PositiveSmallIntegerField(default=1, validators=[django.core.validators.MinValueValidator(1), django.core.validators.MaxValueValidator(5)], verbose_name='required authentication level'),
),
migrations.AlterField(
model_name='role',
name='auth_level',
field=models.PositiveSmallIntegerField(default=1, validators=[django.core.validators.MinValueValidator(1), django.core.validators.MaxValueValidator(5)], verbose_name='required authentication level'),
),
]
src/django_rbac/models.py
from django.contrib.auth.models import Group, _user_get_all_permissions, \
_user_has_perm, _user_has_module_perms, Permission as AuthPermission
from django.contrib import auth
from django.core.validators import MinValueValidator
from django.core.validators import MinValueValidator, MaxValueValidator
from . import utils, constants, managers, backends
DEFAULT_MAX_AUTH_LEVEL = 5
class AbstractBase(models.Model):
'''Abstract base model for all models having a name and uuid and a
......
'target_ct',
'target_id')
auth_level = models.PositiveSmallIntegerField(
verbose_name=_('required authentication level'),
default=1,
validators=(MinValueValidator(1),))
verbose_name=_('required authentication level'),
default=1,
validators=(MinValueValidator(1), MaxValueValidator(
getattr(settings, 'DJANGO_RBAC_MAX_AUTH_LEVEL',
DEFAULT_MAX_AUTH_LEVEL))))
objects = managers.PermissionManager()
......
auth_level = models.PositiveSmallIntegerField(
verbose_name=_('required authentication level'),
default=1,
validators=(MinValueValidator(1),))
validators=(MinValueValidator(1), MaxValueValidator(
getattr(settings, 'DJANGO_RBAC_MAX_AUTH_LEVEL',
DEFAULT_MAX_AUTH_LEVEL))))
objects = managers.RoleQuerySet.as_manager()