{ "info": { "author": "David Glick", "author_email": "david@glicksoftware.com", "bugtrack_url": null, "classifiers": [ "Framework :: Plone", "Framework :: Plone :: 4.2", "Framework :: Plone :: 4.3", "Framework :: Plone :: 5.0", "Framework :: Zope2", "Programming Language :: Python", "Programming Language :: Python :: 2.7", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "collective.recaptcha\n====================\n\nThis package provides an integration of the reCAPTCHA service into Zope.\nReCAPTCHA is a third-party CAPTCHA service provided by Google.\n\nThe API is based on collective.captcha and is provided via a \"@@captcha\"\nbrowser view, so these two packages can be swapped for each other relatively\nsimply. Use collective.captcha if you need to not be dependent on an external\nservice; use collective.recaptcha for a slightly better user experience.\n\nPlone users interested in adding ReCAPTCHA in z3c.form forms\nwill probably find interesting the package\n`plone.formwidget.recaptcha `_.\n\nUpgrade\n-------\n\nTo upgrade to collective.recaptcha 2.* (reCaptcha API V2), you need double check your keys\nbecause global keys are not supported in the V2 API, so you need to create a new key\nif you wish to use the V2 API.\n\nInstallation and Configuration\n------------------------------\n\nSimply make sure that the ZCML for this package is loaded. (You cannot configure\nthis package at the same time as collective.captcha, because the '@@captcha'\nbrowser view registration will conflict.)\n\nBefore the service will work, you must obtain a public and private key from\nhttps://developers.google.com/recaptcha/, and configure them at\nhttp://path/to/site/@@recaptcha-settings\n\nYou can use plone.app.registry in your profile to provide your configuration::\n\n \n \n \n \n \n \n\n\nUsage\n-----\n\nYou can insert a Recaptcha using the following TAL::\n\n \n\nYou can verify Recaptcha input by testing the return value of::\n\n context.restrictedTraverse('@@captcha').verify()\n\n\nDifferences between this package's API and collective.captcha\n-------------------------------------------------------------\n\nBecause the simplest form of Recaptcha is rendered entirely via a remote call\nto the service, we couldn't implement the ICaptchaView interface from\ncollective.captcha exactly as it was defined there.\nDifferences include::\n\n * The image_tag method returns the HTML for the entire CAPTCHA widget,\n including text entry and audio link, not just the tag for the CAPTCHA\n image.\n\n * The audio_url method returns None\n\n * The verify method does not require the input parameter, as a standard\n form input name is used and the value can be found in the request.\n\n * There is an additional method, external, which simply returns True.\n This is a bit of a hack so that a template requiring captcha can\n adjust to the different semantics of the @@captcha view in this\n package as compared to collective.captcha.\n\nTests\n-----\n\nThis add-on is tested using Travis CI. The current status of the add-on is :\n\n.. image:: https://secure.travis-ci.org/collective/collective.recaptcha.png\n :target: http://travis-ci.org/collective/collective.recaptcha\n\nChangelog\n=========\n\n2.1.0 (2017-12-04)\n------------------\n\n- Updated bootstrap\n- Updated the documentation\n- Support Plone 5 without the need to pull in zope.formlib\n [ale-rt]\n\n- Add install and uninstall profile and a controlpanel configlet\n [frapell]\n\n\n2.0.0 (2016-03-06)\n------------------\n\n- Google reCAPTCHA API v.2\n [mamico]\n\n\n1.1.5 (2014-05-07)\n------------------\n\n- Fix the retrieval of config from the registry\n [mpeeters]\n\n- Minor correction in interface name, in the README\n [frapell]\n\n\n1.1.4 (2013-04-09)\n------------------\n\n- Add Plone 4.3 compat\n [aclark4life]\n\n\n1.1.3 (2011-08-19)\n------------------\n\n- Add `z3c.autoinclude` entry point for automatic ZCML loading in Plone 3.3+.\n [WouterVH]\n\n\n1.1.2 (2011-05-17)\n------------------\n\n- Require the latest version of recaptcha-client, which has the correct HTTPS\n URL for the recaptcha service.\n [davisagli]\n\n- Add support for Zope2.13: try to use five.formlib first.\n [toutpt]\n\n\n1.1.1 (2011-02-15)\n------------------\n\n- Register the @@captcha view using browser:page instead of browser:view,\n because I still fail to understand the latter and was breaking access from\n restricted python in Zope 2.12.\n [davisagli]\n\n\n1.1 (2010-11-18)\n----------------\n\n- Use the recaptcha settings from plone.formwidget.recaptcha if it is\n installed, since it overrides our recaptcha-settings view.\n [davisagli]\n\n\n1.0.1 (2009-08-05)\n------------------\n\n- Disallowed dependency on broken release of recaptcha-client (1.0.4).\n [davisagli]\n\n\n1.0 (2009-05-04)\n----------------\n\n- Fixed method signature for verify method so that the vestigial input parameter\n from collective.captcha's ICaptchaView is no longer required.\n [davisagli]\n\n- Added documentation.\n [davisagli]\n\n\n1.0b2 (2009-01-14)\n------------------\n\n- Correctly handle comma-delimited values in the HTTP_X_FORWARDED_FOR\n header.\n [davisagli]\n\n- Added support for verifying the captcha multiple times within the same request.\n [davisagli]\n\n- Added security declarations on the view methods so they can be called from\n restricted Python.\n [davisagli]\n\n\n1.0b1 (2009-01-14)\n------------------\n\n- Initial release", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://github.com/collective/collective.recaptcha", "keywords": "captcha recaptcha zope plone", "license": "LGPL", "maintainer": "", "maintainer_email": "", "name": "collective.recaptcha", "package_url": "https://pypi.org/project/collective.recaptcha/", "platform": "", "project_url": "https://pypi.org/project/collective.recaptcha/", "project_urls": { "Homepage": "http://github.com/collective/collective.recaptcha" }, "release_url": "https://pypi.org/project/collective.recaptcha/2.1.0/", "requires_dist": null, "requires_python": "", "summary": "Wraps the recaptcha-client library to provide a drop-in replacement for collective.captcha.", "version": "2.1.0" }, "last_serial": 4165556, "releases": { "1.0": [ { "comment_text": "", "digests": { "md5": "c52cdf20c680269dca3764f56e01ac2a", "sha256": "1900218a8e10b0df216c6e892fc418c8b65d6ccc122c46bcfbba120dd900ceaf" }, "downloads": -1, "filename": "collective.recaptcha-1.0.tar.gz", "has_sig": false, "md5_digest": "c52cdf20c680269dca3764f56e01ac2a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7481, "upload_time": "2009-05-04T22:06:24", "url": "https://files.pythonhosted.org/packages/ba/6c/e456db25653238e2343bfc01e12ada38ad1b4edd1e734b3770e6658025ec/collective.recaptcha-1.0.tar.gz" } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "9886dc7af9561586bb46a7bad3d2d933", "sha256": "22a9d5d7e34d72c80406ce9b60f15c82a6b6f02a1562899abcbe67f9a4d06e7b" }, "downloads": -1, "filename": "collective.recaptcha-1.0.1.tar.gz", "has_sig": false, "md5_digest": "9886dc7af9561586bb46a7bad3d2d933", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7573, "upload_time": "2009-08-06T03:27:50", "url": "https://files.pythonhosted.org/packages/a2/cf/c5ca292ecbc427c57361c2e1c8aa3aff66cf149a9e1d455fbe62f09493c1/collective.recaptcha-1.0.1.tar.gz" } ], "1.0b1": [ { "comment_text": "", "digests": { "md5": "cb9eb98a55585dafaf64f9c2cb7ce2fa", "sha256": "2905edf4d405210b7ad14d0174342dfeaee9dc8560f2a04f3c55e390472889b4" }, "downloads": -1, "filename": "collective.recaptcha-1.0b1-py2.4.egg", "has_sig": false, "md5_digest": "cb9eb98a55585dafaf64f9c2cb7ce2fa", "packagetype": "bdist_egg", "python_version": "2.4", "requires_python": null, "size": 7701, "upload_time": "2009-01-14T19:44:03", "url": "https://files.pythonhosted.org/packages/b6/5f/85a37ab727ebfc93907255bba8cafb01abc6844d342488a2040c225bb623/collective.recaptcha-1.0b1-py2.4.egg" }, { "comment_text": "", "digests": { "md5": "de614290589692c89f16c11985264def", "sha256": "b29994b20bb0eed865e82e9a10df37c8edd86831b9b507639b7674c5554f3278" }, "downloads": -1, "filename": "collective.recaptcha-1.0b1.tar.gz", "has_sig": false, "md5_digest": "de614290589692c89f16c11985264def", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3055, "upload_time": "2009-01-14T19:44:02", "url": "https://files.pythonhosted.org/packages/ec/7d/f2a7df84bd475f4b71cd6c6d6c3fbff88bee62e5f1fe483b56c4e9b97d5f/collective.recaptcha-1.0b1.tar.gz" } ], "1.0b2": [ { "comment_text": "", "digests": { "md5": "48644b4f0e8fc58cc38bda1d607b8789", "sha256": "c8bc185fa1ce4ada5fa688f4acb24bc923c9a865113372e0c2eb77c724300ab7" }, "downloads": -1, "filename": "collective.recaptcha-1.0b2-py2.4.egg", "has_sig": false, "md5_digest": "48644b4f0e8fc58cc38bda1d607b8789", "packagetype": "bdist_egg", "python_version": "2.4", "requires_python": null, "size": 8155, "upload_time": "2009-01-14T23:58:43", "url": "https://files.pythonhosted.org/packages/a2/77/854804ceddc8a1b66b8d93290ab8b218b29b3c9f810a7ac23f8aba715df0/collective.recaptcha-1.0b2-py2.4.egg" }, { "comment_text": "", "digests": { "md5": "348d7e160fd8fd24d089a3b22a509782", "sha256": "c6c7af00ef6cd0a9d32346700caf6420fd8402531275e97eb92b60a5b9656447" }, "downloads": -1, "filename": "collective.recaptcha-1.0b2.tar.gz", "has_sig": false, "md5_digest": "348d7e160fd8fd24d089a3b22a509782", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3401, "upload_time": "2009-01-14T23:58:42", "url": "https://files.pythonhosted.org/packages/51/10/228fdfe1229ac629a3121952712228d9360e90fc1ed868d96ee4a23c4264/collective.recaptcha-1.0b2.tar.gz" } ], "1.1": [ { "comment_text": "", "digests": { "md5": "b158a0b2415b48132ff56f5862f9f464", "sha256": "5e2864cdcc511464d9d660336924c8758f146e127428907daddf1f125314b63a" }, "downloads": -1, "filename": "collective.recaptcha-1.1.zip", "has_sig": true, "md5_digest": "b158a0b2415b48132ff56f5862f9f464", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14793, "upload_time": "2010-11-18T23:03:59", "url": "https://files.pythonhosted.org/packages/21/66/d4078125704a9ad1324cb155f47d9c811ef536b9e057f41f55809496f7eb/collective.recaptcha-1.1.zip" } ], "1.1.1": [ { "comment_text": "", "digests": { "md5": "f07092c444715362f6cf644f82120117", "sha256": "d27401bd723231046a5e2906783c8c098ec0c04f3c6a73eb378b6859155ab42f" }, "downloads": -1, "filename": "collective.recaptcha-1.1.1.zip", "has_sig": false, "md5_digest": "f07092c444715362f6cf644f82120117", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15074, "upload_time": "2011-02-15T22:18:27", "url": "https://files.pythonhosted.org/packages/57/d5/99ebaddc62a63d395bac4595fa3fc4ab214c841dfae5680e4e979a0a6184/collective.recaptcha-1.1.1.zip" } ], "1.1.2": [ { "comment_text": "", "digests": { "md5": "ff1e8da5773317bd2b58f9553248730a", "sha256": "c802f8b9d5769c908487fb7f119b813da9c6a9625d56d156bb2ae1249f3efd6a" }, "downloads": -1, "filename": "collective.recaptcha-1.1.2.zip", "has_sig": false, "md5_digest": "ff1e8da5773317bd2b58f9553248730a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15394, "upload_time": "2011-05-17T17:33:16", "url": "https://files.pythonhosted.org/packages/d5/63/d397bb2ef411c56d5022c1932bab0d0859b9bcbc8bf8c085d766ae4ccb37/collective.recaptcha-1.1.2.zip" } ], "1.1.3": [ { "comment_text": "", "digests": { "md5": "c886fac06d70de23453f401cd5884a04", "sha256": "b8660875de9cca56bc32f8e2692ee87a85727bfb0dd98ddba68eae18ccdf623f" }, "downloads": -1, "filename": "collective.recaptcha-1.1.3.zip", "has_sig": false, "md5_digest": "c886fac06d70de23453f401cd5884a04", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15677, "upload_time": "2011-08-20T00:57:26", "url": "https://files.pythonhosted.org/packages/4a/88/0553cc6805ad843380ad40cdd24838cf29f9e65a252c92c7453953c4a326/collective.recaptcha-1.1.3.zip" } ], "1.1.4": [ { "comment_text": "", "digests": { "md5": "a71aa35555d6b0beab90bdfc523396b9", "sha256": "8379901efae415876375c601a8eb3bd4495f254e3206f85fcab9692901dc963d" }, "downloads": -1, "filename": "collective.recaptcha-1.1.4.tar.gz", "has_sig": false, "md5_digest": "a71aa35555d6b0beab90bdfc523396b9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8478, "upload_time": "2013-04-09T08:04:20", "url": "https://files.pythonhosted.org/packages/43/1b/2dab4b0f3a61231ab14d0cb2bfaaddc6aed6a16c27042d45ad96173d4799/collective.recaptcha-1.1.4.tar.gz" } ], "1.1.5": [ { "comment_text": "", "digests": { "md5": "f5b8277eb5b12cd203bc02fe643693d5", "sha256": "d79a8ab30bfb1d0ec2f324395f30e13b3a70d583da6f2663602052d3178c6dc0" }, "downloads": -1, "filename": "collective.recaptcha-1.1.5.zip", "has_sig": false, "md5_digest": "f5b8277eb5b12cd203bc02fe643693d5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23561, "upload_time": "2014-05-07T14:51:48", "url": "https://files.pythonhosted.org/packages/9c/ad/2e948834ee052a1d6bc90916a3ba5ae33b0e8b918a691ce94693916e4e9e/collective.recaptcha-1.1.5.zip" } ], "2.0.0": [ { "comment_text": "", "digests": { "md5": "d6e26d766300c844fdb9f267764663f6", "sha256": "3034139ab6ea38d7015e94dba1b9dc2f2c11b58d620e7836d6e11adb42c5df1f" }, "downloads": -1, "filename": "collective.recaptcha-2.0.0.zip", "has_sig": false, "md5_digest": "d6e26d766300c844fdb9f267764663f6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23582, "upload_time": "2016-03-06T23:42:12", "url": "https://files.pythonhosted.org/packages/31/8a/5b6aa1c9236bdf52f9854bd85e95345fdfa30d7e2fb3749034878c9f9830/collective.recaptcha-2.0.0.zip" } ], "2.1.0": [ { "comment_text": "", "digests": { "md5": "33b03697a5ca7737c8d4be3c7855c92d", "sha256": "aa2fb0c58db09724403eff837a73e8201c438b414b6fa05296a71c2d1f01db04" }, "downloads": -1, "filename": "collective.recaptcha-2.1.0.tar.gz", "has_sig": false, "md5_digest": "33b03697a5ca7737c8d4be3c7855c92d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14261, "upload_time": "2017-12-04T20:43:54", "url": "https://files.pythonhosted.org/packages/d2/72/9072af89faf43265e3502d0dc0bdedadfb4a496143b6a0c372824c79342d/collective.recaptcha-2.1.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "33b03697a5ca7737c8d4be3c7855c92d", "sha256": "aa2fb0c58db09724403eff837a73e8201c438b414b6fa05296a71c2d1f01db04" }, "downloads": -1, "filename": "collective.recaptcha-2.1.0.tar.gz", "has_sig": false, "md5_digest": "33b03697a5ca7737c8d4be3c7855c92d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14261, "upload_time": "2017-12-04T20:43:54", "url": "https://files.pythonhosted.org/packages/d2/72/9072af89faf43265e3502d0dc0bdedadfb4a496143b6a0c372824c79342d/collective.recaptcha-2.1.0.tar.gz" } ] }