Skip to main content

Use multiple permission classes in django class based views.

Project description

Django multiple permissions

Python License

Usage

  • install package
$ pip install multiple-permissions
  • add apps.core to installed apps
INSTALLED_APPS = [
    ...,
    "multiple_permissions",
    ...,
]
  • add apps.core.middlewares to MIDDLEWARE list
MIDDLEWARE = [
    ...,
    "multiple_permissions.middlewares.PermissionMiddleware",
]
  • Add "permission_classes" attribute to view classes
from django.views.generic import ListView, CreateView

from multiple_permissions.permissions import IsAuthenticated, IsSuperuser, IsManager


class PollsListView(ListView):
    multiple_permissions = (IsAuthenticated,)
    ...


class PollsCreateView(CreateView):
    multiple_permissions = (IsSuperuser, IsManager)
    ...

Creating new permissions

  • create new file in your apps named permissions.py and write the followng code

  • note that your user should have is_manager attribute or model field otherwise you'll catch AttributeError

from multiple_permissions.permissions import BasePermission


class IsManager(BasePermission):
    def has_permission(self, request, view=None):
        if request.user.is_authenticated and request.user.is_active and request.user.is_manager:
            return True
        return False

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

multiple_permissions-0.1.8.tar.gz (2.7 kB view hashes)

Uploaded Source

Built Distribution

multiple_permissions-0.1.8-py3-none-any.whl (4.5 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