{ "info": { "author": "GRAP,Odoo Community Association (OCA)", "author_email": "support@odoo-community.org", "bugtrack_url": null, "classifiers": [ "Framework :: Odoo", "License :: OSI Approved :: GNU Affero General Public License v3", "Programming Language :: Python" ], "description": ".. image:: https://img.shields.io/badge/licence-AGPL--3-blue.svg\n :alt: License\n\n===============================================================\nTracks Authentication Attempts and Prevents Brute-force Attacks\n===============================================================\n\nThis module registers each request done by users trying to authenticate into\nOdoo. If the authentication fails, a counter is increased for the given remote\nIP. After a defined number of attempts, Odoo will ban the remote IP and\nignore new requests.\nThis module applies security through obscurity\n(https://en.wikipedia.org/wiki/Security_through_obscurity),\nWhen a user is banned, the request is now considered as an attack. So, the UI\nwill **not** indicate to the user that his IP is banned and the regular message\n'Wrong login/password' is displayed.\n\nThis module realizes a call to a web API (http://ip-api.com) to try to have\nextra information about remote IP.\n\nKnown issue / Roadmap\n---------------------\nThe ID used to identify a remote request is the IP provided in the request\n(key 'REMOTE_ADDR').\nDepending of server and / or user network configuration, the idenfication\nof the user can be wrong, and mainly in the following cases:\n\n* if the Odoo server is behind an Apache / NGinx proxy without redirection,\n all the request will be have the value '127.0.0.1' for the REMOTE_ADDR key;\n* If some users are behind the same Internet Service Provider, if a user is\n banned, all the other users will be banned too;\n\nConfiguration\n-------------\n\nOnce installed, you can change the ir.config_parameter value for the key\n'auth_brute_force.max_attempt_qty' (10 by default) that define the max number\nof attempts allowed before the user was banned.\n\nYou can also add a ir.config_parameter value for the key\n'auth_brute_force.environ_log' which allows to log also specific request\nenvironment variables.\n\nThe format is a comma-delimited list of variable names\nexample: REMOTE_ADDR,REMOTE_PORT\n\nor you can just use the jocker '*' for log or discover all variables,\nmost variable names depends of WSGI specification and reverse-proxy configuration.\n\nUsage\n-----\n\nAdmin user have the possibility to unblock a banned IP.\n\nLogging\n-------\n\nThis module generates some WARNING logs, in the three following cases:\n\n* Authentication failed from remote '127.0.0.1'. Login tried : 'admin'.\n Attempt 1 / 10.\n\n* Authentication failed from remote '127.0.0.1'. The remote has been banned.\n Login tried : 'admin'.\n\n* Authentication tried from remote '127.0.0.1'. The request has been ignored\n because the remote has been banned after 10 attempts without success. Login\n tried : 'admin'.\n\nScreenshot\n----------\n\n**List of Attempts**\n\n.. image:: /auth_brute_force/static/description/screenshot_attempts_list.png\n\n**Detail of a banned IP**\n\n.. image:: /auth_brute_force/static/description/screenshot_custom_ban.png\n\n\n.. image:: https://odoo-community.org/website/image/ir.attachment/5784_f2813bd/datas\n :alt: Try me on Runbot\n :target: https://runbot.odoo-community.org/runbot/149/8.0\n\nFor further information, please visit:\n\n* https://www.odoo.com/forum/help-1\n\nBug Tracker\n===========\n\nBugs are tracked on `GitHub Issues `_.\nIn case of trouble, please check there if your issue has already been reported.\nIf you spotted it first, help us smashing it by providing a detailed and welcomed feedback\n`here `_.\n\nCredits\n=======\n\nContributors\n------------\n\n* Sylvain LE GAL (https://twitter.com/legalsylvain)\n* Sylvain CALADOR (https://akretion.com)\n\nMaintainer\n----------\n\n.. image:: http://odoo-community.org/logo.png\n :alt: Odoo Community Association\n :target: http://odoo-community.org\n\nThis module is maintained by the OCA.\n\nOCA, or the Odoo Community Association, is a nonprofit organization whose\nmission is to support the collaborative development of Odoo features and\npromote its widespread use.\n\nTo contribute to this module, please visit http://odoo-community.org.\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://www.grap.coop", "keywords": "", "license": "AGPL-3", "maintainer": "", "maintainer_email": "", "name": "odoo8-addon-auth-brute-force", "package_url": "https://pypi.org/project/odoo8-addon-auth-brute-force/", "platform": "", "project_url": "https://pypi.org/project/odoo8-addon-auth-brute-force/", "project_urls": { "Homepage": "http://www.grap.coop" }, "release_url": "https://pypi.org/project/odoo8-addon-auth-brute-force/8.0.1.0.0.99.dev48/", "requires_dist": [ "odoo (<9.0a,>=8.0a)" ], "requires_python": "~=2.7", "summary": "Tracks Authentication Attempts and Prevents Brute-force Attacks module", "version": "8.0.1.0.0.99.dev48" }, "last_serial": 3999061, "releases": { "8.0.1.0.0.99.dev21": [ { "comment_text": "", "digests": { "md5": "93bf54dc5d309deb5d1e8988f4bc608e", "sha256": "8e128f828c9d3e3e9d4b5361670525f9f86d8bd6d3e43733ecf0353dfe2e014a" }, "downloads": -1, "filename": "odoo8_addon_auth_brute_force-8.0.1.0.0.99.dev21-py2-none-any.whl", "has_sig": false, "md5_digest": "93bf54dc5d309deb5d1e8988f4bc608e", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 101828, "upload_time": "2017-04-11T10:04:11", "url": "https://files.pythonhosted.org/packages/d4/18/13e967d78a887e1b669b9b18eadd14ee7e31cf5804427d54c6c83cc5dc8d/odoo8_addon_auth_brute_force-8.0.1.0.0.99.dev21-py2-none-any.whl" } ], "8.0.1.0.0.99.dev22": [ { "comment_text": "", "digests": { "md5": "5dadc1fd77818afd76ff53a53fdd7273", "sha256": "793c7f1672f3e0d450d4d0502ce48b6a00a61470ba0857b0557d29dc23051697" }, "downloads": -1, "filename": "odoo8_addon_auth_brute_force-8.0.1.0.0.99.dev22-py2-none-any.whl", "has_sig": false, "md5_digest": "5dadc1fd77818afd76ff53a53fdd7273", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 109893, "upload_time": "2017-04-11T10:04:15", "url": "https://files.pythonhosted.org/packages/e7/a5/f6e535848406e4404af5d144fb6cf79ba0feefbbe49543a898c3c76b80c8/odoo8_addon_auth_brute_force-8.0.1.0.0.99.dev22-py2-none-any.whl" } ], "8.0.1.0.0.99.dev23": [ { "comment_text": "", "digests": { "md5": "20fedbff56476c300c34e547809b7dcb", "sha256": "128e700302a26b4b36f6462354b906d576f2fe2c895b36ada71b2e570775868d" }, "downloads": -1, "filename": "odoo8_addon_auth_brute_force-8.0.1.0.0.99.dev23-py2-none-any.whl", "has_sig": false, "md5_digest": "20fedbff56476c300c34e547809b7dcb", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 113750, "upload_time": "2017-04-11T10:04:20", "url": "https://files.pythonhosted.org/packages/88/7c/f7f09e8615e901a18d6369ea0a062b9fc5bcd9057ce2c958c6108e07bd0e/odoo8_addon_auth_brute_force-8.0.1.0.0.99.dev23-py2-none-any.whl" } ], "8.0.1.0.0.99.dev24": [ { "comment_text": "", "digests": { "md5": "b42981824124fae9652807c51b26d3d5", "sha256": "107744755969aea04d1c851242ef43e0d29ee5dfeb4dafab89adc8452e561b46" }, "downloads": -1, "filename": "odoo8_addon_auth_brute_force-8.0.1.0.0.99.dev24-py2-none-any.whl", "has_sig": false, "md5_digest": "b42981824124fae9652807c51b26d3d5", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 155542, "upload_time": "2017-04-11T10:04:24", "url": "https://files.pythonhosted.org/packages/52/61/28353bae7dd37ae48b886d34986c5b91a7e629de2149d367f141ae8591a6/odoo8_addon_auth_brute_force-8.0.1.0.0.99.dev24-py2-none-any.whl" } ], "8.0.1.0.0.99.dev25": [ { "comment_text": "", "digests": { "md5": "ab10ca163add622756cf2373920db878", "sha256": "d9c07630df032cbb4a460a6afad8f7a4940d0939a1ea207c89207f0d389746c5" }, "downloads": -1, "filename": "odoo8_addon_auth_brute_force-8.0.1.0.0.99.dev25-py2-none-any.whl", "has_sig": false, "md5_digest": "ab10ca163add622756cf2373920db878", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 155576, "upload_time": "2017-04-11T10:04:29", "url": "https://files.pythonhosted.org/packages/27/e9/91cac248406642795156c2a7492a96247f57ecc7f294542e6c31dbe80e5f/odoo8_addon_auth_brute_force-8.0.1.0.0.99.dev25-py2-none-any.whl" } ], "8.0.1.0.0.99.dev26": [ { "comment_text": "", "digests": { "md5": "caacf23b1c3b4d22467a368e6d5f4f47", "sha256": "347c8d582ccb0beceb7acd65c8966a5b5e5879e904cb5e2e0c000f6f84622caf" }, "downloads": -1, "filename": "odoo8_addon_auth_brute_force-8.0.1.0.0.99.dev26-py2-none-any.whl", "has_sig": false, "md5_digest": "caacf23b1c3b4d22467a368e6d5f4f47", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 155589, "upload_time": "2017-04-11T10:04:34", "url": "https://files.pythonhosted.org/packages/31/da/a8cc3954cec950efc7140cd8109a93061816cc8ca1cb540d18b914b58da1/odoo8_addon_auth_brute_force-8.0.1.0.0.99.dev26-py2-none-any.whl" } ], "8.0.1.0.0.99.dev27": [ { "comment_text": "", "digests": { "md5": "7d61432a2a9f8ad93ea34185ac230441", "sha256": "a0e8add9f95e0d4f9d336fbbf94997d4235856fefb6cf1e349d17ccd962bbc9a" }, "downloads": -1, "filename": "odoo8_addon_auth_brute_force-8.0.1.0.0.99.dev27-py2-none-any.whl", "has_sig": false, "md5_digest": "7d61432a2a9f8ad93ea34185ac230441", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 156789, "upload_time": "2017-04-11T10:04:38", "url": "https://files.pythonhosted.org/packages/57/af/bb2dbf5632c7ebc7b02d0a9d7fc0923ca36b80926ba02d5e312f582e5fb0/odoo8_addon_auth_brute_force-8.0.1.0.0.99.dev27-py2-none-any.whl" } ], "8.0.1.0.0.99.dev28": [ { "comment_text": "", "digests": { "md5": "6ad527170ebdd2b95c87e87a609cf634", "sha256": "0f9c6cb4f898a098555014f6cc65d9a194a20bc86f0fc987495a0adbece07aad" }, "downloads": -1, "filename": "odoo8_addon_auth_brute_force-8.0.1.0.0.99.dev28-py2-none-any.whl", "has_sig": false, "md5_digest": "6ad527170ebdd2b95c87e87a609cf634", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 164475, "upload_time": "2017-04-11T10:04:41", "url": "https://files.pythonhosted.org/packages/7c/c8/f0cf08c0c4d247ee8cf11ac59f6dfee96555115788b55569b1e8efd64807/odoo8_addon_auth_brute_force-8.0.1.0.0.99.dev28-py2-none-any.whl" } ], "8.0.1.0.0.99.dev30": [ { "comment_text": "", "digests": { "md5": "483b5727e9ea491351e27ea03533b833", "sha256": "d8deb6fd2c993265c67472542d2caefbcfe87f53b5e70f68034f0063fd83c10e" }, "downloads": -1, "filename": "odoo8_addon_auth_brute_force-8.0.1.0.0.99.dev30-py2-none-any.whl", "has_sig": false, "md5_digest": "483b5727e9ea491351e27ea03533b833", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 165654, "upload_time": "2017-04-11T10:04:46", "url": "https://files.pythonhosted.org/packages/24/ba/eab1d109e9c38356c5b482f0f846336249ba2371a9dc6c934edfb060d6b3/odoo8_addon_auth_brute_force-8.0.1.0.0.99.dev30-py2-none-any.whl" } ], "8.0.1.0.0.99.dev31": [ { "comment_text": "", "digests": { "md5": "629b74c803246190c58fa85977e333da", "sha256": "44f44899a489eb8ba4e98a90c49da325ca3c953eccd0ade96b7dc5dc1572b7fc" }, "downloads": -1, "filename": "odoo8_addon_auth_brute_force-8.0.1.0.0.99.dev31-py2-none-any.whl", "has_sig": false, "md5_digest": "629b74c803246190c58fa85977e333da", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 168014, "upload_time": "2017-04-11T10:04:51", "url": "https://files.pythonhosted.org/packages/77/19/2f4496bbb4aa3eea7565213f9188e5a024d7be072f6fda6d44a12ffb0f56/odoo8_addon_auth_brute_force-8.0.1.0.0.99.dev31-py2-none-any.whl" } ], "8.0.1.0.0.99.dev32": [ { "comment_text": "", "digests": { "md5": "745e6d4d06275d7d1218abd04db824f7", "sha256": "fc75845de1b6b4244d2708e9225639919ebdcbbc06d7090717048d524f45c5b3" }, "downloads": -1, "filename": "odoo8_addon_auth_brute_force-8.0.1.0.0.99.dev32-py2-none-any.whl", "has_sig": false, "md5_digest": "745e6d4d06275d7d1218abd04db824f7", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 168044, "upload_time": "2017-04-11T10:04:55", "url": "https://files.pythonhosted.org/packages/60/da/207acb0dd51dfaa57de57240daf84dc0d6e0af42fd1a9b5093b57424bc89/odoo8_addon_auth_brute_force-8.0.1.0.0.99.dev32-py2-none-any.whl" } ], "8.0.1.0.0.99.dev33": [ { "comment_text": "", "digests": { "md5": "e9405f0b33bb47856ffa1dbba8eda9c9", "sha256": "e5a0d59ade02cd18ce523c216c7bd7f46f2603f92724439b0dae8d281c4d00c7" }, "downloads": -1, "filename": "odoo8_addon_auth_brute_force-8.0.1.0.0.99.dev33-py2-none-any.whl", "has_sig": false, "md5_digest": "e9405f0b33bb47856ffa1dbba8eda9c9", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 168044, "upload_time": "2017-04-11T10:05:00", "url": "https://files.pythonhosted.org/packages/b8/19/d056ff5f42ae2ff8ec2e4b7853617074108be25d854377e115e3dfc37672/odoo8_addon_auth_brute_force-8.0.1.0.0.99.dev33-py2-none-any.whl" } ], "8.0.1.0.0.99.dev34": [ { "comment_text": "", "digests": { "md5": "f1d340028b7ab4027f215ca477c6e2eb", "sha256": "e60f58a5e7e1bcf3b2e88b2879b0473dfbd12a3f1b0813b140038c599ce40ab7" }, "downloads": -1, "filename": "odoo8_addon_auth_brute_force-8.0.1.0.0.99.dev34-py2-none-any.whl", "has_sig": false, "md5_digest": "f1d340028b7ab4027f215ca477c6e2eb", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 168158, "upload_time": "2017-04-11T10:05:05", "url": "https://files.pythonhosted.org/packages/2c/ca/0665845dea36d217d917bbbc360b751a077534685799d3dadc6c65a980fa/odoo8_addon_auth_brute_force-8.0.1.0.0.99.dev34-py2-none-any.whl" } ], "8.0.1.0.0.99.dev35": [ { "comment_text": "", "digests": { "md5": "0fa7c96d06dcd6cb1670819da1b46407", "sha256": "d63949976ba7e703e0bb435918011cd717954d857df64e367182745f2caf7e59" }, "downloads": -1, "filename": "odoo8_addon_auth_brute_force-8.0.1.0.0.99.dev35-py2-none-any.whl", "has_sig": false, "md5_digest": "0fa7c96d06dcd6cb1670819da1b46407", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 169327, "upload_time": "2017-04-11T10:05:09", "url": "https://files.pythonhosted.org/packages/bd/49/f8705df9a6b75c7370f8e12c058e0869986f269604703f5cd292ce5ae703/odoo8_addon_auth_brute_force-8.0.1.0.0.99.dev35-py2-none-any.whl" } ], "8.0.1.0.0.99.dev36": [ { "comment_text": "", "digests": { "md5": "9d7754b73f710111ee6916d9ee5bdd21", "sha256": "8e54a0eb8671fa04a00f75aaf171f17f3d8505f980b30991a11ca158dd46cf62" }, "downloads": -1, "filename": "odoo8_addon_auth_brute_force-8.0.1.0.0.99.dev36-py2-none-any.whl", "has_sig": false, "md5_digest": "9d7754b73f710111ee6916d9ee5bdd21", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 169286, "upload_time": "2017-05-14T04:33:57", "url": "https://files.pythonhosted.org/packages/1b/1f/6be2af7840304785b55d6eb9043a19b2b3c021ee2568cbfe03472b9c0b3d/odoo8_addon_auth_brute_force-8.0.1.0.0.99.dev36-py2-none-any.whl" } ], "8.0.1.0.0.99.dev37": [ { "comment_text": "", "digests": { "md5": "56b0daf75c449483df183d7cccb047a8", "sha256": "8d463f03df5536153916beadad8e42c09cd2e6c7759b86df1189a3907e703ff5" }, "downloads": -1, "filename": "odoo8_addon_auth_brute_force-8.0.1.0.0.99.dev37-py2-none-any.whl", "has_sig": false, "md5_digest": "56b0daf75c449483df183d7cccb047a8", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 170422, "upload_time": "2017-07-02T06:53:40", "url": "https://files.pythonhosted.org/packages/a5/78/f4d91e58c2991c868ff147027fddedd396a5fe142e0fc8c00002f85abc97/odoo8_addon_auth_brute_force-8.0.1.0.0.99.dev37-py2-none-any.whl" } ], "8.0.1.0.0.99.dev38": [ { "comment_text": "", "digests": { "md5": "7d84fc9f4fe94ac6eeb03aa5a2c9499f", "sha256": "2e70c4d9c6e0d8354aac8aabe31e76d428421b141459ba9cf553634d1f1159f8" }, "downloads": -1, "filename": "odoo8_addon_auth_brute_force-8.0.1.0.0.99.dev38-py2-none-any.whl", "has_sig": false, "md5_digest": "7d84fc9f4fe94ac6eeb03aa5a2c9499f", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 170760, "upload_time": "2017-09-03T04:30:36", "url": "https://files.pythonhosted.org/packages/0e/92/1af23a74ebdf11518ec54401fab2c1a309ad815fe30556eafe9b75f04fe7/odoo8_addon_auth_brute_force-8.0.1.0.0.99.dev38-py2-none-any.whl" } ], "8.0.1.0.0.99.dev40": [ { "comment_text": "", "digests": { "md5": "41290d729611c5c4cc38d57222d15304", "sha256": "7e543911a7ed0f1f18bc0a1672eee8218b5dd0b91361f33fc3aa04fa5a48471e" }, "downloads": -1, "filename": "odoo8_addon_auth_brute_force-8.0.1.0.0.99.dev40-py2-none-any.whl", "has_sig": false, "md5_digest": "41290d729611c5c4cc38d57222d15304", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": "~=2.7", "size": 170803, "upload_time": "2017-11-26T11:05:30", "url": "https://files.pythonhosted.org/packages/a8/dc/8a2e1acb46ecdb692815d4ae909c834009591e9a7ddcfe0126e00baf97f8/odoo8_addon_auth_brute_force-8.0.1.0.0.99.dev40-py2-none-any.whl" } ], "8.0.1.0.0.99.dev41": [ { "comment_text": "", "digests": { "md5": "b2fd72cee7501eff04cb9ae6d685d4e9", "sha256": "4c7ed2dfc636231ae04fdcfc083f018e5ae6175dd634e297f7470dfda7993fbf" }, "downloads": -1, "filename": "odoo8_addon_auth_brute_force-8.0.1.0.0.99.dev41-py2-none-any.whl", "has_sig": false, "md5_digest": "b2fd72cee7501eff04cb9ae6d685d4e9", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": "~=2.7", "size": 171971, "upload_time": "2018-03-04T05:45:40", "url": "https://files.pythonhosted.org/packages/02/57/810e989d0842d9e4f7c5dbf012a65521acecf3839829930f584972f8f98e/odoo8_addon_auth_brute_force-8.0.1.0.0.99.dev41-py2-none-any.whl" } ], "8.0.1.0.0.99.dev45": [ { "comment_text": "", "digests": { "md5": "8ccc5afde8da57a8adea9a09bd2327e3", "sha256": "6447a02b44eb24814b9c12e85a48844b8b72f385901c4501fadc0aba63857afc" }, "downloads": -1, "filename": "odoo8_addon_auth_brute_force-8.0.1.0.0.99.dev45-py2-none-any.whl", "has_sig": false, "md5_digest": "8ccc5afde8da57a8adea9a09bd2327e3", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": "~=2.7", "size": 172693, "upload_time": "2018-03-10T05:30:26", "url": "https://files.pythonhosted.org/packages/cd/ae/08287f504930e13fd82b86e6b8bd3c2ca465a1983369b0a31067169c53ce/odoo8_addon_auth_brute_force-8.0.1.0.0.99.dev45-py2-none-any.whl" } ], "8.0.1.0.0.99.dev46": [ { "comment_text": "", "digests": { "md5": "e4d1f2e024f4372981294a2289570317", "sha256": "4c3ec693b11ccf3d7e006fbc520c5aa13d38ec848eccdae7300f161a09864ba7" }, "downloads": -1, "filename": "odoo8_addon_auth_brute_force-8.0.1.0.0.99.dev46-py2-none-any.whl", "has_sig": false, "md5_digest": "e4d1f2e024f4372981294a2289570317", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": "~=2.7", "size": 172660, "upload_time": "2018-06-05T04:48:00", "url": "https://files.pythonhosted.org/packages/09/b4/8ff812e53e8af1ee9b13cf66147d64ba8af99df98eddf7c5d7f1d9ed2f56/odoo8_addon_auth_brute_force-8.0.1.0.0.99.dev46-py2-none-any.whl" } ], "8.0.1.0.0.99.dev47": [ { "comment_text": "", "digests": { "md5": "f786195c423ae950ee7c45ed3b8d8551", "sha256": "ca256a14503d431508d69158945681db4286f7e1a1e5f5f77d1d38289748da34" }, "downloads": -1, "filename": "odoo8_addon_auth_brute_force-8.0.1.0.0.99.dev47-py2-none-any.whl", "has_sig": false, "md5_digest": "f786195c423ae950ee7c45ed3b8d8551", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": "~=2.7", "size": 171625, "upload_time": "2018-06-16T05:19:55", "url": "https://files.pythonhosted.org/packages/5b/e9/8c62a8429a7a893de6e374c72b10fa675687e3b04fbe67d4e787af1d267c/odoo8_addon_auth_brute_force-8.0.1.0.0.99.dev47-py2-none-any.whl" } ], "8.0.1.0.0.99.dev48": [ { "comment_text": "", "digests": { "md5": "59d7b7a96e0e1967a4e19d2f3b1487f2", "sha256": "8c6709e068d7f5bb7651c49a65e2e152b299fef887cce859d9e831834df69081" }, "downloads": -1, "filename": "odoo8_addon_auth_brute_force-8.0.1.0.0.99.dev48-py2-none-any.whl", "has_sig": false, "md5_digest": "59d7b7a96e0e1967a4e19d2f3b1487f2", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": "~=2.7", "size": 173784, "upload_time": "2018-06-25T05:02:20", "url": "https://files.pythonhosted.org/packages/b8/bd/bce3f205e71018b420175be236ec2c723acb301bf8adab2a33e856761d81/odoo8_addon_auth_brute_force-8.0.1.0.0.99.dev48-py2-none-any.whl" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "59d7b7a96e0e1967a4e19d2f3b1487f2", "sha256": "8c6709e068d7f5bb7651c49a65e2e152b299fef887cce859d9e831834df69081" }, "downloads": -1, "filename": "odoo8_addon_auth_brute_force-8.0.1.0.0.99.dev48-py2-none-any.whl", "has_sig": false, "md5_digest": "59d7b7a96e0e1967a4e19d2f3b1487f2", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": "~=2.7", "size": 173784, "upload_time": "2018-06-25T05:02:20", "url": "https://files.pythonhosted.org/packages/b8/bd/bce3f205e71018b420175be236ec2c723acb301bf8adab2a33e856761d81/odoo8_addon_auth_brute_force-8.0.1.0.0.99.dev48-py2-none-any.whl" } ] }