Skip to main content

A library that allows IP restrictions for views/endpoints in Django REST framework.

Project description

DRF IP Restrictions

PyPI version Run linter and tests Codecov

A library that allows IP restrictions for views/endpoints in Django REST framework.

Installation

  1. Install using pip:
pip install drf-ip-restrictions
  1. Add the library to your INSTALLED_APPS list.
INSTALLED_APPS = [
    ...
    'drf_ip_restrictions',
    ...
]
  1. Override the allowed IP addresses your settings.py according to your needs:
# within settings.py

DRF_IP_RESTRICTION_SETTINGS = {
    "ALLOWED_IP_LIST": ["127.0.0.1"],
}

Usage

Add the AllowedIpList class to any views / endpoints that should only provide access for the configured IP addresses, e.g. to restrict a view set:

# within views.py

class MyViewSet(viewsets.ModelViewSet):
    permission_classes = (AllowedIpList,)
    ...

or to restrict only a single action:

# within views.py

class MyViewSet(viewsets.ModelViewSet):
    ...

    @action(
        detail=False,
        methods=["get"],
        http_method_names=["get"],
        authentication_classes=[],
        permission_classes=[AllowedIpList],  # <-- this is the important part for IP restrictions to work
        url_path=r"my-method",
    )
    def my_method(self, request, *args, **kwargs):
        # do stuff and return rest_framework.response.Response in the end

Django Compatibility Matrix

If your project uses an older verison of Django or Django Rest Framework, you can choose an older version of this project.

This Project Python Version Django Version Django Rest Framework
1.0.* 3.7, 3.8, 3.9, 3.10 3.2, 4.0 3.12, 3.13

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

drf-ip-restrictions-1.1.1.tar.gz (3.9 kB view details)

Uploaded Source

Built Distribution

drf_ip_restrictions-1.1.1-py3-none-any.whl (4.4 kB view details)

Uploaded Python 3

File details

Details for the file drf-ip-restrictions-1.1.1.tar.gz.

File metadata

  • Download URL: drf-ip-restrictions-1.1.1.tar.gz
  • Upload date:
  • Size: 3.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.8.16

File hashes

Hashes for drf-ip-restrictions-1.1.1.tar.gz
Algorithm Hash digest
SHA256 44e8c3a0d7874ee283fde3c5e06b73614e784b40ff57b9a75b5c2415824c2e7c
MD5 069eca9c5b22713109e6aa8e97b12b17
BLAKE2b-256 4d1c6e5d9a04acf51b36f287836b8e88dc69febf6251b319441eaeae96682e96

See more details on using hashes here.

File details

Details for the file drf_ip_restrictions-1.1.1-py3-none-any.whl.

File metadata

File hashes

Hashes for drf_ip_restrictions-1.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 842700c9deb33aede18ff5432c0e27508a9f9732a71ff11bf284c55e867bf1f2
MD5 043e0b38145be5c1f356e44043c5fa90
BLAKE2b-256 d42b1787c6ec180b4484bbc240f6d5627ca5cba11576d67e390c9c2c2f0c996b

See more details on using hashes here.

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