Usage
Using in Views
from rest_framework import viewsets
from drf_iam.permissions import IAMPermission
class UserViewSet(viewsets.ModelViewSet):
permission_classes = [IAMPermission]
iam_policy_name = "users" # Optional: Custom policy name for this viewset
Each viewset can have a custom name by configuring iam_policy_name (Optional).
Project Configuration
Add
drf_iamto yourINSTALLED_APPSinsettings.py:
INSTALLED_APPS = [
...
'drf_iam',
]
Add the Role relationship to your User model:
from django.contrib.auth.models import AbstractUser
from drf_iam.models import Role
class User(AbstractUser):
role = models.ForeignKey(Role, on_delete=models.SET_NULL, null=True)
Run migrations:
python manage.py makemigrations
python manage.py migrate