Django multiple permissions
===========================
[![Python](https://img.shields.io/pypi/pyversions/multiple-permissions)](https://img.shields.io/pypi/pyversions/multiple-permissions)
[![License](https://img.shields.io/github/license/aram2726/django_multiple_permissions)](https://img.shields.io/github/license/aram2726/django_multiple_permissions)
Usage
------
* Install the package.
```shell script
$ pip install multiple-permissions
```
* Add `multiple_permissions` to installed apps.
```python
INSTALLED_APPS = [
...,
"multiple_permissions",
...,
]
```
* Add `PermissionMiddleware` to MIDDLEWARE list.
```python
MIDDLEWARE = [
...,
"multiple_permissions.middlewares.PermissionMiddleware",
]
```
* Set `permission_classes` attribute to view classes.
```python
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**
```python
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
```
PyPI 官网下载 | multiple_permissions-0.1.9.tar.gz
版权申诉
74 浏览量
2022-01-13
10:17:13
上传
评论
收藏 3KB GZ 举报
挣扎的蓝藻
- 粉丝: 13w+
- 资源: 15万+