{ "info": { "author": "Nicolas Mendoza", "author_email": "niccolasmendoza@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 1 - Planning", "Framework :: Django", "Framework :: Django :: 1.7", "Framework :: Django :: 1.8", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Natural Language :: English", "Programming Language :: Python", "Programming Language :: Python :: 2.6", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3.2", "Topic :: Software Development", "Topic :: Software Development :: Libraries" ], "description": ".. image::\n https://raw.githubusercontent.com/nicchub/django-doberman/master/images/DjangoDoberman.png\n\n``django-doberman`` Django app that locks out users after too many failed login attempts.\n\n.. image:: https://img.shields.io/pypi/v/django-doberman.svg\n :target: https://pypi.python.org/pypi/django-doberman\n\n.. image:: https://travis-ci.org/django-py/django-doberman.svg?branch=master\n :target: http://travis-ci.org/django-py/django-doberman\n\n.. image:: https://img.shields.io/pypi/dm/django-doberman.svg\n :target: https://pypi.python.org/pypi/django-doberman\n\nRequirements\n------------\n- Python => 2.7\n- Django => 1.7\n\n\nInstallation\n------------\n\n1. You can install the latest stable package running this command:\n\n $ pip install django-doberman\n\nAlso you can install the development version running this command::\n\n $ pip install -e git+http://github.com/nicchub/django-doberman.git#egg=django_doberman-dev\n\n2. Add ``doberman`` to ``INSTALLED_APPS`` in your Django settings file\n\n INSTALLED_APPS = (\n ...\n\n 'django.contrib.messages',\n\n 'django.contrib.admin',\n ...\n\n 'doberman',\n)\n\n3. ./manage.py migrate doberman || or sync your database\n\n\nDevelopment\n------------\n\nYou can contribute to this project forking it from github and sending pull requests.\n\nRunning tests\n-------------\n\nTests can be run, after you clone the repository and having django installed, like::\n\n PYTHONPATH=$PYTHONPATH:$PWD django-admin.py test doberman --settings=doberman.tests.test_settings\n\n\nConfiguration\n--------\n\nDOBERMAN_MAX_FAILED_ATTEMPTS\n Default: ``10``.\n\n Number of max failed login attempt.\n\nDOBERMAN_LOCKOUT_TIME\n Default: ``600`` (10 minutes).\n\n Number of seconds after the failed login attempts are forgotten in seconds.\n\nDOBERMAN_REAL_IP_ONLY\n 'Default': True\n\n Set to False if you are working on localhost or a development environment.\n\nDOBERMAN_LOGIN_FORGOTTEN_SECONDS\n Default: ``300``\n\n Timeout forgotten login attempts of user.\n\nDOBERMAN_USERNAME_FORM_FIELD\n Default: 'username'\n\n Field username form field, change when you are use a diferent \"username\", for example: 'email'.\n\nDOBERMAN_LOCKOUT_TEMPLATE\n Path to alternative lockout template.\n\nDOBERMAN_MODEL\n Default: 'doberman.FailedAccessAttempt'\n\n Allow to use a custom Model for tracking failed Access Attempts.\n\nDOBERMAN_IP_META_PRECEDENCE_ORDER\n Default: (\n\n 'HTTP_X_FORWARDED_FOR', # X-Forwarded-For: client, proxy1, proxy2\n\n 'HTTP_CLIENT_IP',\n\n 'HTTP_X_REAL_IP',\n\n 'HTTP_X_FORWARDED',\n\n 'HTTP_X_CLUSTER_CLIENT_IP',\n\n 'HTTP_FORWARDED_FOR',\n\n 'HTTP_FORWARDED',\n\n 'HTTP_VIA',\n\n 'REMOTE_ADDR',\n\n )\n\n This used for discovery the real IP, you can change the precedence order.\n\n\nUsage\n-----\n\nAdd ``doberman.decorators.watch_login`` decorator to your login view. Example::\n\n\n class LoginView(FormView):\n template_name = 'example/login.html'\n form_class = AuthenticationForm\n\n @method_decorator(watch_login)\n def dispatch(self, request, *args, **kwargs):\n if request.user.is_authenticated():\n return redirect(settings.LOGIN_REDIRECT_URL)\n return super(LoginView, self).dispatch(request, *args, **kwargs)\n\n def form_valid(self, form):\n user = form.get_user()\n login(self.request, user)\n return super(LoginView, self).form_valid(form)\n\n def get_success_url(self):\n return reverse('logged_in')\n\n\n\nAuthors\n-------\n\nLibrary is by `Hanlle Nicolas Mendoza`.\n\n\n.. Website: http://nicolasmendoza.org/\n\n\n.. image:: https://d2weczhvl823v0.cloudfront.net/nicchub/django-doberman/trend.png\n :alt: Bitdeli badge\n :target: https://bitdeli.com/free", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/nicchub/django-doberman", "keywords": "django locks users account login attempts banned ip doberman authentication", "license": "MIT License", "maintainer": null, "maintainer_email": null, "name": "django-doberman", "package_url": "https://pypi.org/project/django-doberman/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/django-doberman/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://github.com/nicchub/django-doberman" }, "release_url": "https://pypi.org/project/django-doberman/0.5.9/", "requires_dist": null, "requires_python": null, "summary": "Django app that locks out users after too many failed login attempts.", "version": "0.5.9" }, "last_serial": 1653798, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "f78df07b0720053ddf11d8a66ebbb8cd", "sha256": "3dbe90944281ce6bdf71980cde4213c3fd147d94cec3ac8113998331f41147dd" }, "downloads": -1, "filename": "django-doberman-0.1.0.tar.gz", "has_sig": false, "md5_digest": "f78df07b0720053ddf11d8a66ebbb8cd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4499, "upload_time": "2015-05-11T18:10:44", "url": "https://files.pythonhosted.org/packages/0f/49/04ad2c61fb177c57350710786ee72f646a66670d62105bcb0b74e5bdcfb9/django-doberman-0.1.0.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "2aaa5dd5de476dbafc3b89a4dfed327a", "sha256": "08636776ddbdb93fcf4ac1f4995e8b823c54e50c4e57179f1eb532491d414d85" }, "downloads": -1, "filename": "django-doberman-0.3.0.tar.gz", "has_sig": false, "md5_digest": "2aaa5dd5de476dbafc3b89a4dfed327a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12741, "upload_time": "2015-05-13T20:19:20", "url": "https://files.pythonhosted.org/packages/6b/be/6aed05d27f423a6ac15d139524bbeabb4eb07b11f1a310d335e26234f586/django-doberman-0.3.0.tar.gz" } ], "0.5.0": [ { "comment_text": "", "digests": { "md5": "cd35902856cd3db426e268964b0661f0", "sha256": "69b47877067b9d59326b014980cf5f36ee939fa95b4df0e99fbbfa596d23cf26" }, "downloads": -1, "filename": "django-doberman-0.5.0.tar.gz", "has_sig": false, "md5_digest": "cd35902856cd3db426e268964b0661f0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9308, "upload_time": "2015-07-22T20:31:03", "url": "https://files.pythonhosted.org/packages/b1/ff/d24a0de4775533abe29ef52e1e8791863066492f4b991b5ea7de2e5df115/django-doberman-0.5.0.tar.gz" } ], "0.5.1": [ { "comment_text": "", "digests": { "md5": "fad0103ff138e5c427063ae6c6f55fee", "sha256": "6ff0af5f5b2044936f03c55c11aa817f9553c26c4bc691187e1de9afcb3a5a14" }, "downloads": -1, "filename": "django-doberman-0.5.1.tar.gz", "has_sig": false, "md5_digest": "fad0103ff138e5c427063ae6c6f55fee", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9275, "upload_time": "2015-07-28T16:35:06", "url": "https://files.pythonhosted.org/packages/63/01/df225353ce95508c7ef5dec4132ad51fad1a2e196b587897d3bd0d0af35f/django-doberman-0.5.1.tar.gz" } ], "0.5.2": [ { "comment_text": "", "digests": { "md5": "417508ebb240b80d4399089968264654", "sha256": "e8b17aad98852206e063760f971fcf2de5a1ef222781f948d5c5613b4faa936f" }, "downloads": -1, "filename": "django-doberman-0.5.2.tar.gz", "has_sig": false, "md5_digest": "417508ebb240b80d4399089968264654", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9283, "upload_time": "2015-07-28T17:03:46", "url": "https://files.pythonhosted.org/packages/c1/ee/87bb6f0a7320fa977f50d9277077ccc5e3a46110d3bf64ab58fe0daf1245/django-doberman-0.5.2.tar.gz" } ], "0.5.3": [ { "comment_text": "", "digests": { "md5": "3e0401a976e993863585c6d0ab9d01c5", "sha256": "0b9fb2729fb4f75b9b4e4595b3d0f0262687a529df6e83c9401e846e5271de26" }, "downloads": -1, "filename": "django-doberman-0.5.3.tar.gz", "has_sig": false, "md5_digest": "3e0401a976e993863585c6d0ab9d01c5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9280, "upload_time": "2015-07-28T17:11:37", "url": "https://files.pythonhosted.org/packages/37/9b/6df62adba2e40eb39944ed2e9c9073cdfa43666c83a4ed264544daa75b04/django-doberman-0.5.3.tar.gz" } ], "0.5.4": [ { "comment_text": "", "digests": { "md5": "f01199f24c986577774be6c3fe5d995a", "sha256": "b84f51b86442abd7038489f7d851b9c6d411d070f19e000776df644a36bf56c8" }, "downloads": -1, "filename": "django-doberman-0.5.4.tar.gz", "has_sig": false, "md5_digest": "f01199f24c986577774be6c3fe5d995a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10329, "upload_time": "2015-07-28T17:24:23", "url": "https://files.pythonhosted.org/packages/95/f4/2010c3026673266158761e058940ab5e789489d53f1f9c96662284c204c7/django-doberman-0.5.4.tar.gz" } ], "0.5.5": [ { "comment_text": "", "digests": { "md5": "9824490ffc9e7da015779dc839c816d0", "sha256": "cd16525772b11471cda71d40adf58c2bf4243910845692ff22f4aada8b52d6da" }, "downloads": -1, "filename": "django-doberman-0.5.5.tar.gz", "has_sig": false, "md5_digest": "9824490ffc9e7da015779dc839c816d0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10366, "upload_time": "2015-07-28T17:45:46", "url": "https://files.pythonhosted.org/packages/1e/c2/53b822ea8df1c79bb8ba9fd0134488cbf201e1c503d28d3de240c1d609b6/django-doberman-0.5.5.tar.gz" } ], "0.5.6": [ { "comment_text": "", "digests": { "md5": "78672bc03eebe14eae6d3c7e29e585dd", "sha256": "0445ea1579b55cb355007499d86f4025d4c96fe0f389bef184272d241e03364e" }, "downloads": -1, "filename": "django-doberman-0.5.6.tar.gz", "has_sig": false, "md5_digest": "78672bc03eebe14eae6d3c7e29e585dd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10377, "upload_time": "2015-07-28T17:53:21", "url": "https://files.pythonhosted.org/packages/f0/c9/3b53b32970c02cc74c744213991ee996bd552a1aea0dd73cc3927a9249b0/django-doberman-0.5.6.tar.gz" } ], "0.5.8": [ { "comment_text": "", "digests": { "md5": "e2f55988471a3dfc37f203e12913c4c9", "sha256": "c4bb0c511e2572f0b43a7b1e234fa4cf9088bd6d80c55963eb43e425161a08c0" }, "downloads": -1, "filename": "django-doberman-0.5.8.tar.gz", "has_sig": false, "md5_digest": "e2f55988471a3dfc37f203e12913c4c9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14121, "upload_time": "2015-07-28T18:14:23", "url": "https://files.pythonhosted.org/packages/6f/0d/84007e59a5fdc81b1be5438d3a1c80d86036ef0b6317111c4e78e0914c2f/django-doberman-0.5.8.tar.gz" } ], "0.5.9": [ { "comment_text": "", "digests": { "md5": "94dd0014334b16addc9ea633dfc2dade", "sha256": "41d05c56d1821e49fd163fef33808fbe20d721f17bfd37f3184ea315958edb0c" }, "downloads": -1, "filename": "django-doberman-0.5.9.tar.gz", "has_sig": false, "md5_digest": "94dd0014334b16addc9ea633dfc2dade", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14120, "upload_time": "2015-07-28T18:39:23", "url": "https://files.pythonhosted.org/packages/17/b6/06f29bf1edfb8b97f58c50f2b7264cfd9729e850d9a18a2075ae092c4511/django-doberman-0.5.9.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "94dd0014334b16addc9ea633dfc2dade", "sha256": "41d05c56d1821e49fd163fef33808fbe20d721f17bfd37f3184ea315958edb0c" }, "downloads": -1, "filename": "django-doberman-0.5.9.tar.gz", "has_sig": false, "md5_digest": "94dd0014334b16addc9ea633dfc2dade", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14120, "upload_time": "2015-07-28T18:39:23", "url": "https://files.pythonhosted.org/packages/17/b6/06f29bf1edfb8b97f58c50f2b7264cfd9729e850d9a18a2075ae092c4511/django-doberman-0.5.9.tar.gz" } ] }