A Django middleware to restrict incoming IPs to admin panel
Project description
A Django middleware to restrict the access to the Django admin based on incoming IPs
Requirements
Python >= 3.4
Django >= 1.10
django-ipware=>2,<3
Usage
First install the package:
$ pip install django-admin-ip-restrictor
Then add the middleware to your settings:
# Django 1.10+ MIDDLEWARE = [ ... 'admin_ip_restrictor.middleware.AdminIPRestrictorMiddleware' ]
Set these variables in your settings.py to control who has access to the admin (IPV4 and IPV6 can be mixed):
RESTRICT_ADMIN=True ALLOWED_ADMIN_IPS=['127.0.0.1', '::1'] ALLOWED_ADMIN_IP_RANGES=['127.0.0.0/24', '::/1'] RESTRICTED_APP_NAMES=['admin']
Use RESTRICTED_APP_NAMES to restrict the access to more apps. Admin app is always included.
If using environment variables make sure that the variables receive the right type of value. django-admin-ip-restrictor automatically converts the following formats:
$ export RESTRICT_ADMIN='true' $ export ALLOWED_ADMIN_IPS='127.0.0.1,::1' $ export ALLOWED_ADMIN_IP_RANGES='127.0.0.0/24,::/1' $ export RESTRICTED_APP_NAMES='wagtail_admin,foo'
For RESTRICT_ADMIN also these values can be used: True, 1, false, False, 0
Run tests
Install tox and pyenv:
$ pip install tox pyenv
Install Python versions in pyenv:
$ pyenv install 3.4.4 $ pyenv install 3.5.3 $ pyenv install 3.6.2
Specify the Python versions you want to test with:
$ pyenv local 3.4.4 3.5.3 3.6.2
Run tests:
$ tox
Contribute
Fork the project and submit a PR!
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distribution
Hashes for django_admin_ip_restrictor-1.0.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 825b447abfdd92012758cb80a6bc64ba154bc0974cc124207dfa78b4fc90fc80 |
|
MD5 | 126b2ed5c7f49fad74d660f158b34cca |
|
BLAKE2b-256 | 490a19a88a80fd3a9e99767b52908b48e23c7f7cd49ae956b2c1e9c3e17f153b |