Skip to main content

Role for django User model

Project description

django-role

Пакет включает в себя:

  • Модель пользователя с ролью вместо групп
  • Виджет для выбора прав

Роль в отличии от групп связана с моделю пользователя связью Один ко многим

Установка

pip install django-role

poetry add django-role

Использование модели пользователя

models.py

from user_role.models import AbstractUser

class User(AbstractUser):
    ...

settings.py

AUTH_USER_MODEL = "app_name.User"

Использование виджета для выбора прав

settings.py

PERMISSIONS_LABELS = {
    "add": "Добавление",
    "change": "Изменение",
    "view": "Просмотр",
    "delete": "Удаление",
}

forms.py

from django import forms
from django.contrib.auth.models import Permission
from django.utils.translation import gettext_lazy as _

from user_role.models import Role
from user_role.widgets import PermissionsSelectMultiply


class RoleCreationForm(forms.ModelForm):
    permissions = forms.ModelMultipleChoiceField(
        label=_("Permissions"),
        widget=PermissionsSelectMultiply(),
        queryset=Permission.objects.all()
    )

    class Meta:
        model = Role
        fields = [
            "name",
            "permissions"
        ]

Группирование прав и настройка виджета

class MyPermissionsSelectMultiply(PermissionsSelectMultiply):
    groups_permissions = {
        "Безопасность": ["user_role.user", "user_role.role"]
    }

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

django_role-0.1.6.tar.gz (8.7 kB view hashes)

Uploaded Source

Built Distribution

django_role-0.1.6-py3-none-any.whl (13.2 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page