Use multiple permission classes in django class based views.
Project description
Django multiple permissions
Usage
- Install the package.
$ pip install multiple-permissions
- Add
multiple_permissions
to installed apps.
INSTALLED_APPS = [
...,
"multiple_permissions",
...,
]
- Add
PermissionMiddleware
to MIDDLEWARE list.
MIDDLEWARE = [
...,
"multiple_permissions.middlewares.PermissionMiddleware",
]
- Set
permission_classes
attribute to view classes. - Set
exception_class
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,)
# if exception_class is missing will raise django.core.exceptions.PermissionDenied
...
class PollsCreateView(CreateView):
multiple_permissions = (IsSuperuser, IsManager)
exception_class = PermissionError
...
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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Close
Hashes for multiple_permissions-0.2.2.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | cf0764509a26af9cbf71f71fe7bc05c5ae17cf5cee7b9bc78ef1d037dcc2841d |
|
MD5 | 97e34f3cd0f060f9eeb6bad935ae4b11 |
|
BLAKE2b-256 | de42e590efa31185fa9a33dfc8179d9da41520a5a8d1f39479e7d3b5f04fca21 |
Close
Hashes for multiple_permissions-0.2.2-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 821f28941f7e9dee69b59b28d36df97da7ad1a68d299c1732d5954e28716da61 |
|
MD5 | a3397e19872893d0bf831c30d534a449 |
|
BLAKE2b-256 | 4a8c1d42bc711b0ab38b5f784a8503290d193b0ea669c75ed9ed9556ddb4c132 |