{ "info": { "author": "Carl Meyer", "author_email": "carl@dirtcircle.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Environment :: Web Environment", "Framework :: Django", "Framework :: Django :: 1.11", "Framework :: Django :: 2.0", "Framework :: Django :: 2.1", "Framework :: Django :: 2.2", "Intended Audience :: Developers", "License :: OSI Approved :: BSD License", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: Implementation :: CPython", "Programming Language :: Python :: Implementation :: PyPy" ], "description": "===============\ndjango-lockdown\n===============\n\n.. image:: https://travis-ci.org/Dunedan/django-lockdown.svg?branch=master\n :target: https://travis-ci.org/Dunedan/django-lockdown\n :alt: Build Status\n.. image:: https://coveralls.io/repos/Dunedan/django-lockdown/badge.svg\n :target: https://coveralls.io/r/Dunedan/django-lockdown\n :alt: Test Coverage\n.. image:: https://landscape.io/github/Dunedan/django-lockdown/master/landscape.svg?style=flat\n :target: https://landscape.io/github/Dunedan/django-lockdown/master\n :alt: Code Health\n.. image:: https://img.shields.io/pypi/v/django-lockdown.svg\n :target: https://pypi.org/project/django-lockdown/\n :alt: Latest Version\n\n``django-lockdown`` is a reusable Django application for locking down an entire\nsite (or particular views), with customizable date ranges and preview\nauthorization.\n\nInstallation\n============\n\nInstall from PyPI with ``easy_install`` or ``pip``::\n\n pip install django-lockdown\n\nTo use ``django-lockdown`` in your Django project:\n\n1. Add ``'lockdown'`` to your ``INSTALLED_APPS``.\n If you want to use one of ``django-lockdowns`` default lock down forms,\n you'll additionally have to ensure that you have enabled\n ``django.contrib.auth`` as part of to your ``INSTALLED_APPS``.\n\n2. To enable admin preview of locked-down sites or views with\n passwords, set the `LOCKDOWN_PASSWORDS`_ setting to a tuple of one or\n more plain-text passwords.\n\n3. Protect the entire site by using middleware, or protect individual views\n by applying a decorator to them.\n\nFor more advanced customization of admin preview authorization, see\nthe `LOCKDOWN_FORM`_ setting.\n\nDependencies\n------------\n\n``django-lockdown`` requires `Python`_ 2.7 or later and `Django`_ 1.11 or later.\n\nAs an alternative to CPython `PyPy`_ 3.5 is supported as well.\n\n.. _Python: https://www.python.org/\n.. _Django: https://www.djangoproject.com/\n.. _PyPy: https://pypy.org/\n\nUsage\n=====\n\nUsing the middleware\n--------------------\n\nTo lock down the entire site, add the lockdown middleware to your middlewares::\n\n MIDDLEWARE = [\n # ...\n 'lockdown.middleware.LockdownMiddleware',\n ]\n\nOptionally, you may also add URL regular expressions to a\n`LOCKDOWN_URL_EXCEPTIONS`_ setting.\n\nUsing the decorator\n-------------------\n\n- Import the decorator::\n\n from lockdown.decorators import lockdown\n\n- Apply the decorator to individual views you want to protect. For example::\n\n @lockdown()\n def secret_page(request):\n # ...\n\nThe decorator accepts seven arguments:\n\n``form``\n The form to use for providing an admin preview, rather than the form\n referenced by `LOCKDOWN_FORM`_. Note that this must be an actual form class,\n not a module reference like the setting.\n\n``until_date``\n The date to use rather than the date provided by `LOCKDOWN_UNTIL`_.\n\n``after_date``\n The date to use rather than the date provided by `LOCKDOWN_AFTER`_.\n\n``logout_key``\n A preview logout key to use, rather than the one provided by\n `LOCKDOWN_LOGOUT_KEY`_.\n\n``session_key``\n The session key to use, rather than the one provided by\n `LOCKDOWN_SESSION_KEY`_.\n\n``url_exceptions``\n A list of regular expressions for which matching urls can bypass the lockdown\n (rather than using those defined in `LOCKDOWN_URL_EXCEPTIONS`_).\n\n``remote_addr_exceptions``\n A list of IP-addresses or IP-subnets for which matching URLs can bypass the\n lockdown (rather than using those defined in\n `LOCKDOWN_REMOTE_ADDR_EXCEPTIONS`_).\n\n``extra_context``\n A dictionary of context data that will be added to the default context data\n passed to the template.\n\nAny further keyword arguments are passed to the admin preview form. The default\nform accepts one argument:\n\n``passwords``\n A tuple of passwords to use, rather than the ones provided by\n `LOCKDOWN_PASSWORDS`_.\n\n\nSettings\n========\n\nLOCKDOWN_ENABLED\n----------------\n\nAn optional boolean value that, if set to False, disables\n``django-lockdown`` globally. Defaults to True (lock down enabled).\n\n\nLOCKDOWN_PASSWORDS\n------------------\n\nOne or more plain-text passwords which allow the previewing of the site or\nviews protected by django-lockdown::\n\n LOCKDOWN_PASSWORDS = ('letmein', 'beta')\n\nIf this setting is not provided (and the default `LOCKDOWN_FORM`_ is being\nused), there will be no admin preview for locked-down pages.\n\nIf a `LOCKDOWN_FORM`_ other than the default is used, this setting has no\neffect.\n\nLOCKDOWN_URL_EXCEPTIONS\n-----------------------\n\nAn optional list/tuple of regular expressions to be matched against incoming\nURLs. If a URL matches a regular expression in this list, it will not be\nlocked. For example::\n\n LOCKDOWN_URL_EXCEPTIONS = (\n r'^/about/$', # unlock /about/\n r'\\.json$', # unlock JSON API\n )\n\nLOCKDOWN_VIEW_EXCEPTIONS\n------------------------\n\nAn optional list of regular expressions to be matched against the\nresolved views of incoming requests. If the URL of an incoming request\nresolves to one of the views in the list, it will not be locked.\nThat's useful if you want to lock down a whole site using the middleware,\nbut want to whitelist some localized URLs.\n\nFor example::\n\n from yourapp import one_view_to_unlock, another_view_to_unlock\n\n LOCKDOWN_VIEW_EXCEPTIONS = [\n one_view_to_unlock,\n another_view_to_unlock\n ]\n\nLOCKDOWN_REMOTE_ADDR_EXCEPTIONS\n-------------------------------\n\nAn optional list of IP-addresses or IP-subnets to be matched against the\nrequesting IP-address (from `requests.META['REMOTE_ADDR']`). If the\nrequesting IP-address is in this list, it will not be locked. For example::\n\n LOCKDOWN_REMOTE_ADDR_EXCEPTIONS = [\n '127.0.0.1',\n '::1',\n ]\n\nLOCKDOWN_TRUSTED_PROXIES\n-------------------------------\n\nA list of trusted proxy IP-addresses to be used in conjunction with \n`LOCKDOWN_REMOTE_ADDR_EXCEPTIONS` when a reverse-proxy or load balancer is used.\nIf the requesting IP address is from the trusted proxies list the last address from \nthe `X-Forwared-For` header (from `requests.META['HTTP_X_FORWARDED_FOR']`) will be \nchecked against `LOCKDOWN_REMOTE_ADDR_EXCEPTIONS` and locked or unlocked accordingly.\n\nFor example::\n\n LOCKDOWN_TRUSTED_PROXIES = [\n '172.17.0.1',\n ]\n\n LOCKDOWN_REMOTE_ADDR_EXCEPTIONS = [\n '172.17.0.5',\n ]\n\nLOCKDOWN_UNTIL\n--------------\n\nUsed to lock the site down up until a certain date. Set to a\n``datetime.datetime`` object.\n\nIf neither ``LOCKDOWN_UNTIL`` nor `LOCKDOWN_AFTER`_ is provided (the default),\nthe site or views will always be locked.\n\nLOCKDOWN_AFTER\n--------------\n\nUsed to lock the site down after a certain date. Set to a ``datetime.datetime``\nobject.\n\nSee also: `LOCKDOWN_UNTIL`_.\n\nLOCKDOWN_LOGOUT_KEY\n-------------------\n\nA key which, if provided in the query string of a locked URL, will log out the\nuser from the preview. \n\nLOCKDOWN_FORM\n-------------\n\nThe default lockdown form allows admin preview by entering a preset\nplain-text password (checked, by default, against the `LOCKDOWN_PASSWORDS`_\nsetting). To set up more advanced methods of authenticating access to\nlocked-down pages, set ``LOCKDOWN_FORM`` to the Python dotted path to a Django\n``Form`` subclass. This form will be displayed on the lockout page. If the form\nvalidates when submitted, the user will be allowed access to locked pages::\n\n LOCKDOWN_FORM = 'path.to.my.CustomLockdownForm'\n\nA form for authenticating against ``django.contrib.auth`` users is provided\nwith django-lockdown (use ``LOCKDOWN_FORM = 'lockdown.forms.AuthForm'``). It\naccepts two keyword arguments (in the ``lockdown`` decorator):\n\n``staff_only``\n Only allow staff members to preview. Defaults to ``True`` (but the default\n can be provided as a `LOCKDOWN_AUTHFORM_STAFF_ONLY`_ setting).\n\n``superusers_only``\n Only allow superusers to preview. Defaults to ``False`` (but the default\n can be provided as a `LOCKDOWN_AUTHFORM_SUPERUSERS_ONLY`_ setting).\n\nLOCKDOWN_AUTHFORM_STAFF_ONLY\n----------------------------\n\nIf using ``lockdown.forms.AuthForm`` and this setting is ``True``, only staff\nusers will be allowed to preview (True by default).\n\nHas no effect if not using ``lockdown.forms.AuthForm``.\n\nLOCKDOWN_AUTHFORM_SUPERUSERS_ONLY\n---------------------------------\n\nIf using ``lockdown.forms.AuthForm`` and this setting is ``True``, only\nsuperusers will be allowed to preview (False by default). Has no effect if not\nusing ``lockdown.forms.AuthForm``.\n\nLOCKDOWN_SESSION_KEY\n--------------------\n\nOnce a client is authorized for admin preview, they will continue to\nbe authorized for the remainder of their browsing session (using\nDjango's built-in session support). ``LOCKDOWN_SESSION_KEY`` defines\nthe session key used; the default is ``'lockdown-allow'``.\n\n\nTemplates\n=========\n\n``django-lockdown`` uses a single template, ``lockdown/form.html``. The\ndefault template displays a simple \"coming soon\" message and the\npreview authorization form, if a password via `LOCKDOWN_PASSWORDS`_ is set.\n\nIf you want to use a different template, you can use Djangos template\n`loaders`_ to specify a path inside your project to search for templates,\nbefore searching for templates included in ``django-lockdown``.\n\nIn your overwritten template the lockdown preview form is available in the\ntemplate context as ``form``.\n\n.. _loaders: https://docs.djangoproject.com/en/2.1/ref/templates/api/#template-loaders\n\nCHANGES\n=======\n\ntip (unreleased)\n----------------\n\n2.0.0 (2019-05-26)\n------------------\n\n- Added support for proxies when using IP-address based lockdown exceptions.\n\n- This introduces a breaking change: Installations running behind a proxy will\n need to set the newly introduced ``LOCKDOWN_TRUSTED_PROXIES``, otherwise\n access won't be granted anymore, when accessing the site through a proxy.\n\n- Added the ability to whitelist views when locking down a whole site using\n the middleware.\n\n- Added support for Django 2.2.\n\n- Only require ``mock`` as separate third-party test dependency for\n Python <3.3.\n\n- Fix detection of compacted IP-addresses.\n\n- This introduces a breaking change for users which make use of the\n ``REMOTE_ADDR_EXCEPTIONS`` feature and passed the IP-addresses to except as\n byte strings in the configuration. While it's unlikely somebody did that\n with Python 3, it's the default for Python 2. With this version, byte\n strings don't work anymore, but using unicode strings is required.\n\n- Add the ability to specify IP-subnets for remote addresses exception.\n\n1.6.0 (2018-11-25)\n------------------\n\n- Drops support for Django <=1.10.\n\n- Drops support for Python 3.3.\n\n- Add the ability to bypass the lockdown for configured IP-addresses.\n\n- Integrate pre-commit for code style checks during commit and CI.\n\n- Added support for Django 2.1.\n\n- Add support for Python 3.7.\n\n- Add support for PyPy.\n\n1.5.0 (2017-12-05)\n------------------\n\n- Add support for Django 2.0\n\n- Improve the code style in some areas\n\n1.4.2 (2017-04-07)\n------------------\n\n- Fix formatting for PyPi\n\n\n1.4.1 (2017-04-07)\n------------------\n\n- Fix problem with upload for PyPi\n\n\n1.4.0 (2017-04-06)\n------------------\n\n- Refactor tests to use Mocks\n\n- Add support for Python 3.6\n\n- Add support for Django 1.11\n\n\n1.3 (2016-08-07)\n----------------\n\n- Adds support for Django 1.10.\n\n- Adds support for providing additional context data to the lockdown template.\n\n\n1.2 (2015-12-03)\n----------------\n\n- Adds support for Python 3.5.\n\n- Adds support for Django 1.9.\n\n- Drops support for Django <=1.7.\n\n- Fixes not working URL exceptions when specifying them in the decorator\n arguments.\n\n- Improves tests.\n\n1.1 (2015-04-06)\n----------------\n\n- Proper new version after 0.1.2 and 0.1.3 have been tagged after the release\n of 1.0. Contains all new features of 0.1.2 and 0.1.3, most notably support\n for Python 3.\n\n- Last version of django-lockdown with support for Django 1.3, 1.5 and 1.6.\n Upcoming versions will only support Django versions with official security\n support. For the time being these are Django 1.4 LTS, 1.7 and 1.8 LTS.\n\n- Fixes testing for Django >=1.7\n\n0.1.3 (2014-03-15) (never released)\n-----------------------------------\n\n- Added ``LOCKDOWN_ENABLED`` setting.\n\n- Removed Django 1.1 backport of ``decorator_from_middleware_with_args``.\n\n0.1.2 (2014-03-15) (never released)\n-----------------------------------\n\n- Require at least Django 1.3.\n\n- Fixed the test runner script to work with recent Django versions.\n\n- Added the csrf_token template tag to the included form template.\n\n- Minor syntax adjustments for Python 3 compatibility.\n\n1.0 (2013-07-10)\n----------------\n\n- BACKWARDS INCOMPATIBLE: Allow multiple passwords (the passwords setting has\n changed from ``LOCKDOWN_PASSWORD`` to ``LOCKDOWN_PASSWORDS``).\n\n- Decorator changed to a callable decorator (so settings can be overridden for\n an individual decorator).\n\n- Add ``AuthForm`` which can be used to allow previewing from authenticated\n users (via ``django.contrib.auth``).\n\n- Allow locking up until or only after certain dates.\n\n0.1.1 (2009-11-24)\n------------------\n\n- Fix setup.py so ``tests`` package is not installed.\n\n0.1 (2009-11-16)\n----------------\n\n- Initial release.\n\n\n", "description_content_type": "text/x-rst", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/Dunedan/django-lockdown/", "keywords": "", "license": "", "maintainer": "Daniel Roschka", "maintainer_email": "danielroschka@phoenitydawn.de", "name": "django-lockdown", "package_url": "https://pypi.org/project/django-lockdown/", "platform": "", "project_url": "https://pypi.org/project/django-lockdown/", "project_urls": { "Homepage": "https://github.com/Dunedan/django-lockdown/" }, "release_url": "https://pypi.org/project/django-lockdown/2.0.0/", "requires_dist": [ "Django (>=1.11)", "ipaddress" ], "requires_python": "", "summary": "Lock down a Django site or individual views, with configurable preview authorization", "version": "2.0.0" }, "last_serial": 5319040, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "53777afc431cc78adeb9c2581f289146", "sha256": "707829c6b39ff69f67506a22dd7f088a5c09b189cbfd6100828f856ec71ab1b5" }, "downloads": -1, "filename": "django-lockdown-0.1.0.tar.gz", "has_sig": true, "md5_digest": "53777afc431cc78adeb9c2581f289146", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7388, "upload_time": "2009-11-17T19:06:30", "url": "https://files.pythonhosted.org/packages/1c/0f/030940cbd7bb4b2e20ac44046418d9f445cf262b66c50527a8169f3674d8/django-lockdown-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "40a9ab8e92b20513f0caa755217de224", "sha256": "82cb2d15154716e9a5a2524641cec2e74bee9a5efa7a2c1895234496fba38b8d" }, "downloads": -1, "filename": "django-lockdown-0.1.1.tar.gz", "has_sig": true, "md5_digest": "40a9ab8e92b20513f0caa755217de224", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7511, "upload_time": "2009-11-25T06:14:18", "url": "https://files.pythonhosted.org/packages/19/fe/e92f0833058faa04de1b4f82ecb907f559bf07f8b63310d7f2ecdf49f416/django-lockdown-0.1.1.tar.gz" } ], "1.0": [ { "comment_text": "", "digests": { "md5": "d006813e9876a85750a462f6a4ddc2fd", "sha256": "6ad56206e114ea089b8a835d0a9241f2b0caae87771a41a86e7bb91b80b8c020" }, "downloads": -1, "filename": "django-lockdown-1.0.tar.gz", "has_sig": true, "md5_digest": "d006813e9876a85750a462f6a4ddc2fd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13189, "upload_time": "2013-07-10T16:35:21", "url": "https://files.pythonhosted.org/packages/09/c8/0d5955595b7b6d7baab192f8e55b58ca79856fa78504ab7eccf3d6aad426/django-lockdown-1.0.tar.gz" } ], "1.1": [ { "comment_text": "", "digests": { "md5": "d172b191b9771abc71a9360df9e281d3", "sha256": "c32cdb3cb41f65c31120efb16d855b181eaa27858e07c5da6fc9149e1724a117" }, "downloads": -1, "filename": "django-lockdown-1.1.tar.gz", "has_sig": false, "md5_digest": "d172b191b9771abc71a9360df9e281d3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15547, "upload_time": "2015-04-06T18:45:03", "url": "https://files.pythonhosted.org/packages/ca/10/a8cd3b236c060662ae136c88e253390f20fd164ce860091189ddea1d4ab1/django-lockdown-1.1.tar.gz" } ], "1.2": [ { "comment_text": "", "digests": { "md5": "1a04a282c9a823ece9f5b696eb89d5a8", "sha256": "580d500927011287a2c0095ec4b286ccabdbb1a20c42db3d0b2cd191d4a2ccc3" }, "downloads": -1, "filename": "django_lockdown-1.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "1a04a282c9a823ece9f5b696eb89d5a8", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 54996, "upload_time": "2015-12-03T00:03:34", "url": "https://files.pythonhosted.org/packages/08/1e/0f966fdba8948c198c80297c0d76fe8b42cfb7867306f67faa4808ab0553/django_lockdown-1.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f60eb4fdc2785c36703e0ad5a06f6af0", "sha256": "e49141f549776191a8f60ff932d5e4fca91301927b27e193ae1f181f4ce5ff21" }, "downloads": -1, "filename": "django-lockdown-1.2.tar.gz", "has_sig": false, "md5_digest": "f60eb4fdc2785c36703e0ad5a06f6af0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16654, "upload_time": "2015-12-03T00:03:43", "url": "https://files.pythonhosted.org/packages/95/5e/1df2da666af80b4c13d8a1b4f4fce3dad2a4fb14d7015c25702f335c49ae/django-lockdown-1.2.tar.gz" } ], "1.3": [ { "comment_text": "", "digests": { "md5": "91265b1a4cde4b0108b0e5ce9e9b597d", "sha256": "66307409288e1657160819c3a5fc530a876f3b5e5573089da5cbb7397c570fef" }, "downloads": -1, "filename": "django_lockdown-1.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "91265b1a4cde4b0108b0e5ce9e9b597d", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 19364, "upload_time": "2016-08-07T13:51:00", "url": "https://files.pythonhosted.org/packages/89/bf/2dd0f293ac02a91355cba5fee08437175e115ac2540e0067423408da4dee/django_lockdown-1.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c8b9dd8d81712934953c1cecf9bab460", "sha256": "190653cbc5eec54ac7fffdc4fbedff7478b000c48dd17f108318dc8756fb751d" }, "downloads": -1, "filename": "django-lockdown-1.3.tar.gz", "has_sig": false, "md5_digest": "c8b9dd8d81712934953c1cecf9bab460", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17315, "upload_time": "2016-08-07T13:51:03", "url": "https://files.pythonhosted.org/packages/19/ed/263e97aac9d3fa0decb2b552d0c08c1fa83917ac67deafe0a0b647f0c764/django-lockdown-1.3.tar.gz" } ], "1.4.1": [ { "comment_text": "", "digests": { "md5": "dda827282e6374cba331883ffbb83d98", "sha256": "5e15fb79b1f4a09887ba96c53a465d7dc07998090328d0478078361b24f1d57d" }, "downloads": -1, "filename": "django_lockdown-1.4.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "dda827282e6374cba331883ffbb83d98", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 19283, "upload_time": "2017-04-07T05:12:59", "url": "https://files.pythonhosted.org/packages/8c/3b/b428bcdd9db882efc32e49d6d8490aeefdea38b6a9931730bc8b39cec055/django_lockdown-1.4.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "23249199bde84397dc77aa2d67224328", "sha256": "01941a56985da5da6201cc9e5c3c06d6c627dd2a6e0229a9615af5f0bd80d79b" }, "downloads": -1, "filename": "django-lockdown-1.4.1.tar.gz", "has_sig": false, "md5_digest": "23249199bde84397dc77aa2d67224328", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17386, "upload_time": "2017-04-07T05:13:01", "url": "https://files.pythonhosted.org/packages/73/38/021b71da5c2bd6dcc1d9444063a9cc1af2092ab5650bb1be7f0b82ce32be/django-lockdown-1.4.1.tar.gz" } ], "1.4.2": [ { "comment_text": "", "digests": { "md5": "8eff98ad1679eed569c5881b0fa7c72a", "sha256": "fb446d8d8b071c1a8a7229f0d9a97417cea046249ef311af3b1d1668bd5fc609" }, "downloads": -1, "filename": "django_lockdown-1.4.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "8eff98ad1679eed569c5881b0fa7c72a", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 19304, "upload_time": "2017-04-07T06:05:02", "url": "https://files.pythonhosted.org/packages/86/e6/9ed966d705b0aaf5344768b2a05107bcd66418de979521b35b260c578ffa/django_lockdown-1.4.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f759b5f4e43211bd23ee90707caeebdb", "sha256": "efc0eb48d3208ca34ec5dab884c39747b43142156f56ef8d2f1187b35eff37ad" }, "downloads": -1, "filename": "django-lockdown-1.4.2.tar.gz", "has_sig": false, "md5_digest": "f759b5f4e43211bd23ee90707caeebdb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17422, "upload_time": "2017-04-07T06:05:05", "url": "https://files.pythonhosted.org/packages/8c/6b/f45c91863db7edfd45e1c3be66c26b4cb918fb9b08215c814742aa40c9ae/django-lockdown-1.4.2.tar.gz" } ], "1.5.0": [ { "comment_text": "", "digests": { "md5": "2f2987f3167a3ca2597158956ba9bda8", "sha256": "2c3cca7e26e2440d11ee1e7791d6366b034273b1e58377ed3a4c79b296d10c27" }, "downloads": -1, "filename": "django_lockdown-1.5.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "2f2987f3167a3ca2597158956ba9bda8", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 19470, "upload_time": "2017-12-05T17:08:49", "url": "https://files.pythonhosted.org/packages/79/7e/fd45b1aa4bc6a40ac086f5967f1d02cbb804b3cbc56ecceccff01cfd04cf/django_lockdown-1.5.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ff42e55cac2c0852f12d30effa3462f5", "sha256": "ffcdaa4ec804eb7dfb9c8d14170af077e66d32f7c5db686975b97615df2ea738" }, "downloads": -1, "filename": "django-lockdown-1.5.0.tar.gz", "has_sig": false, "md5_digest": "ff42e55cac2c0852f12d30effa3462f5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17542, "upload_time": "2017-12-05T17:08:50", "url": "https://files.pythonhosted.org/packages/0d/a2/4830c2c9541c492e7d3fa16e8b1ef57610be7aa45b292385f44cf3dc3146/django-lockdown-1.5.0.tar.gz" } ], "1.6.0": [ { "comment_text": "", "digests": { "md5": "7b3a76c966df26adca8feb17c2d8c3af", "sha256": "c5d9c399fc894657a4640a262f47386aed90c40d019df2b1d349d7c2fab046d7" }, "downloads": -1, "filename": "django_lockdown-1.6.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "7b3a76c966df26adca8feb17c2d8c3af", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 15048, "upload_time": "2018-11-25T10:53:44", "url": "https://files.pythonhosted.org/packages/3d/10/313424d9058b1530099cc898072abec32684cfe70fdf5722ff9e97217e48/django_lockdown-1.6.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f9c6f84e0e3ba77419f4fabe98d505c9", "sha256": "bdb5bab02a48af637a49cc817a6ab166ee6ce7b7d7950ba826b666ae1815b67e" }, "downloads": -1, "filename": "django-lockdown-1.6.0.tar.gz", "has_sig": false, "md5_digest": "f9c6f84e0e3ba77419f4fabe98d505c9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14211, "upload_time": "2018-11-25T10:53:45", "url": "https://files.pythonhosted.org/packages/f3/6c/ddde85a8c1d4f5b9613b171dc3bb0436345b32f926dbcd9e58688f3ee40c/django-lockdown-1.6.0.tar.gz" } ], "2.0.0": [ { "comment_text": "", "digests": { "md5": "682166c9ae310c555bf3927039f54e1b", "sha256": "94e0df33cc74b69ea642b9f866b3e4b1608721d0eb8ad047fd1e0fc7de4a60fe" }, "downloads": -1, "filename": "django_lockdown-2.0.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "682166c9ae310c555bf3927039f54e1b", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 12813, "upload_time": "2019-05-26T14:55:00", "url": "https://files.pythonhosted.org/packages/f3/12/4432e6630b880b7944b43edf46f5d143a64e7ab27ba27a459337885ee4f0/django_lockdown-2.0.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "16d1fca9d05840c4376088afa81a0261", "sha256": "919d2ebe3eb0df8fa6a04497b88deabb42f695c8ac77d3b3b9a88e41a521456b" }, "downloads": -1, "filename": "django-lockdown-2.0.0.tar.gz", "has_sig": false, "md5_digest": "16d1fca9d05840c4376088afa81a0261", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17583, "upload_time": "2019-05-26T14:55:02", "url": "https://files.pythonhosted.org/packages/58/ed/2eb5155360c6b3239b8d41a583bdd88985c9525b1b092f91f04597ed9297/django-lockdown-2.0.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "682166c9ae310c555bf3927039f54e1b", "sha256": "94e0df33cc74b69ea642b9f866b3e4b1608721d0eb8ad047fd1e0fc7de4a60fe" }, "downloads": -1, "filename": "django_lockdown-2.0.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "682166c9ae310c555bf3927039f54e1b", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 12813, "upload_time": "2019-05-26T14:55:00", "url": "https://files.pythonhosted.org/packages/f3/12/4432e6630b880b7944b43edf46f5d143a64e7ab27ba27a459337885ee4f0/django_lockdown-2.0.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "16d1fca9d05840c4376088afa81a0261", "sha256": "919d2ebe3eb0df8fa6a04497b88deabb42f695c8ac77d3b3b9a88e41a521456b" }, "downloads": -1, "filename": "django-lockdown-2.0.0.tar.gz", "has_sig": false, "md5_digest": "16d1fca9d05840c4376088afa81a0261", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17583, "upload_time": "2019-05-26T14:55:02", "url": "https://files.pythonhosted.org/packages/58/ed/2eb5155360c6b3239b8d41a583bdd88985c9525b1b092f91f04597ed9297/django-lockdown-2.0.0.tar.gz" } ] }