{ "info": { "author": "Martin Lundwall", "author_email": "martin@betahaus.net", "bugtrack_url": null, "classifiers": [ "Framework :: Plone", "Intended Audience :: Developers", "License :: OSI Approved :: GNU General Public License (GPL)", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "betahaus.emaillogin\n====================\n\nContents\n========\n\n* `What is betahaus.emaillogin?`_\n* `Installation`_\n* `How it works`_\n* `Performance`_\n* `Extensions`_\n* `Issues`_\n* `Change history`_\n* `Contributors`_\n\nWhat is betahaus.emaillogin?\n----------------------------\nThe use of emailaddress are speading more and more but Plone does not \nhave a convenient way to use a users registered email address to login.\n\n``betahaus.emaillogin`` makes it possible to login using the email address\nspecified in the user profile. \n\nPlone has a very powerful and modifiable authentication system called \nPluggable Authentication Service (PAS). As the name suggest the system \nis pluggable and thus can easily be extended by third-party products \nsuch as this. \n\n\nInstallation\n------------\n\nbuildout:\n - add ``betahaus.emaillogin`` entries to eggs and zcml in the appropriate buildout configuration file.\n - re-run buildout.\n - Install via portal_quickinstaller or Site Setup in plone\n \n \n\nHow it works\n------------\n\n``betahaus.emaillogin`` is at installation put first in the list of \nextraction plugins. If an email address is specified and a corresponding \nuser is found. The email address in the request is replaced with the\nusername and then simulates failed extraction to continue normal login procedure.\n\n\n- Code repository: https://svn.plone.org/svn/collective/betahaus.emaillogin\n\n\nPerformance\n-----------\n\nThe current default implementation does a lookup of the email by iterating over all of the PAS users until the \ncorresponding email is found. This approach is fine for a large number of sites with a liberal number of users. \nIt is however computationally expensive and slow when the number of users rise. If you experience performance issues\nthere is a GenericSetup profile called ``extended`` that can be applied. This extension adds a custom email->userid\ncatalog that enables faster userid look-up from email address.\n\nThe extended profile is applied via ``portal_setup`` -> ``Import`` -> select and apply profile ``Extended performance \nfor EmailLogin Support``.\n\nIf you want to uninstall this extended profile just remove the ``email_catalog`` from the site root and emaillogin will \nfall back to default lookup implementation. \n\nExtensions\n----------\n\nYou can write a custom email lookup method that will be used for translating an email to one or more usernames.\nThe usecase in mind is that a contenttype based member implementation is used and the email is present in a \ncatalog, either portal_catalog or a custom catalog. Two examples of this is `betahaus.memberprofile `_\nand `Products.remember `_. Then by reusing the already stored catalog data there is \nno need for another catalog. To implement this you need to register a utility implementing the interface ``IEmailPluginExtension``.\nWarning: When using contentbased membership implementations Plone by default creates the member contenttype on first login.\nThis can cause a problem on initial login since the information is not available in portal_catalog yet.\n \nUtility example::\n\n from zope.interface import implements\n from betahaus.emaillogin.interfaces import IEmailPluginExtension\n class Dummy(object):\n implements(IEmailPluginExtension)\n \n def getUserNames(self, context, login_email, get_all = False):\n usernames = context.custom_catalog(email = login_email)\n if usernames and get_all == False:\n return usernames[0].username\n return [x.username for x in usernames]\n\n dummy_extension = Dummy()\n \n \nZcml registration example::\n\n \n\n\nIssues\n------\n\nIssues can be filed at `the issue tracker `_ on the products page at plone.org.\nAfter update to Plone 4 compatibility some bugs might have been introduced. All tests for plone 3 pass, but if you find any bugs don't \nhesitate to file it. \n\n\nChange history\n--------------\n\n0.6.1 (2012-02-16)\n------------------\n\n- Get rid of unused imports - in particular the one that fails on Plone 4.1.4. [ritz]\n\n\n0.6 (2011-04-11)\n----------------\n\n - Fixed a bug with correct formatted non existant email when resetting password, thanks James Whisnant for this. [mlundwall]\n - Added zcml auto slug. [mlundwall]\n - Fixed some import errors that caused exeptions when someone entered an email that doesn't exist [robinharms]\n - Plone 4 support. [mlundwall]\n\n\n0.5 (2009-12-28)\n----------------\n\n - Fixed a bug when removing a user. [mlundwall]\n - No warning when removing a user with duplicate email. [mlundwall]\n - Possibility of writing custom email to username utility. [mlundwall]\n - LDAP support. Thanks to Tom Switzer for the patch (http://plone.org/products/betahaus.emaillogin/issues/1) [mlundwall]\n\n0.4 (2009-09-17)\n----------------\n\n - Added i18n to for some texts that could not be reused from plone. [mlundwall]\n - Fixed the problem with non working forgotten password retrieval via email. Thanks Winn for reporting. [mlundwall]\n\n0.3 (2009-07-27)\n----------------\n\n - Added a warning to managers when changing email in the prefs_users_overview to an already existing email. [mlundwall]\n - Added a optional custom email catalog, for better performance with large number of users. [mlundwall]\n\n0.2 (2009-05-22)\n----------------\n\n - Fix bug in personalize_form.vpy that prevented editing user profiles. [davisagli]\n\n0.1 (2009-05-11)\n----------------\n\n - Added custom personalize_form.vpy to prevent changing an existing user's\n e-mail address to one that already exists. [davisagli]\n - Avoid applying the custom import steps when other profiles are applied. [davisagli]\n - Duplicate email warning at install [mlundwall]\n - Check at registration to not allow multiple users with same email [mlundwall] \n - Moved to collective. [mlundwall]\n - Created recipe with ZopeSkel [Robin Harms Oredsson].\n\nContributors\n------------\n\n - `Martin Lundwall `_, Author\n - `Robin Harms Oredsson `_, Idea for this product.\n - David Glick, GenericSetup stuff and restrictions on changing email.\n - Tom Switzer, `_, LDAP patch", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://pypi.python.org/pypi/betahaus.emaillogin", "keywords": "", "license": "GPL", "maintainer": null, "maintainer_email": null, "name": "betahaus.emaillogin", "package_url": "https://pypi.org/project/betahaus.emaillogin/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/betahaus.emaillogin/", "project_urls": { "Download": "UNKNOWN", "Homepage": "http://pypi.python.org/pypi/betahaus.emaillogin" }, "release_url": "https://pypi.org/project/betahaus.emaillogin/0.6.1/", "requires_dist": null, "requires_python": null, "summary": "Enables you to login using your emailaddress.", "version": "0.6.1" }, "last_serial": 773667, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "ed4b7ad976be3a93071eb4ef35fa6c43", "sha256": "177d31b7c2792548c905ff686cdb353526510819fc6d3c5e89e5f00395c751ca" }, "downloads": -1, "filename": "betahaus.emaillogin-0.1.tar.gz", "has_sig": false, "md5_digest": "ed4b7ad976be3a93071eb4ef35fa6c43", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18474, "upload_time": "2009-05-13T10:22:14", "url": "https://files.pythonhosted.org/packages/19/44/704173466cde5f176cb4f662089da08cc0a666bd1be093c7ec9f7e496844/betahaus.emaillogin-0.1.tar.gz" } ], "0.2": [ { "comment_text": "", "digests": { "md5": "9912746d745f1421dc2ea35469e11b69", "sha256": "88e88ece6014e723b828952c34f67019e879bb4383c26661dd5440c5286af455" }, "downloads": -1, "filename": "betahaus.emaillogin-0.2.tar.gz", "has_sig": false, "md5_digest": "9912746d745f1421dc2ea35469e11b69", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18872, "upload_time": "2009-05-22T11:23:26", "url": "https://files.pythonhosted.org/packages/b9/70/61011f35ab5638020dd33f7eea6ab1e407f2f442789a96599547ed314e26/betahaus.emaillogin-0.2.tar.gz" } ], "0.3": [ { "comment_text": "", "digests": { "md5": "d7bd6fb7394eb1e04d43aec207f81a8a", "sha256": "e14e904a20e3625fb7225e71553cbaa65bd37dd1cf96de86dc017fffdd5dd3e0" }, "downloads": -1, "filename": "betahaus.emaillogin-0.3.tar.gz", "has_sig": false, "md5_digest": "d7bd6fb7394eb1e04d43aec207f81a8a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 25750, "upload_time": "2009-07-27T11:49:49", "url": "https://files.pythonhosted.org/packages/87/fd/1faac95ef136467629e858d8c4638daf5a985cc9364e48ca2ccef950d3dd/betahaus.emaillogin-0.3.tar.gz" } ], "0.4": [ { "comment_text": "", "digests": { "md5": "8eefd64eea0bd0479bfe8fd21cc968e8", "sha256": "57074a885182fe66cdeb7a8ca6979aaab516d4be952ef6121077afc1567718d8" }, "downloads": -1, "filename": "betahaus.emaillogin-0.4.tar.gz", "has_sig": false, "md5_digest": "8eefd64eea0bd0479bfe8fd21cc968e8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 29321, "upload_time": "2009-09-17T17:10:22", "url": "https://files.pythonhosted.org/packages/f0/a7/36c4ddb7aa50f5c755e471b8786044c6d7146ed0045a4aaafc50b166e000/betahaus.emaillogin-0.4.tar.gz" } ], "0.5": [ { "comment_text": "", "digests": { "md5": "d801a5320a35292159b3610f172ade81", "sha256": "ff60d7477da9429a3182cafb8437fc71296da60c54bb426e919000813bdb98a1" }, "downloads": -1, "filename": "betahaus.emaillogin-0.5.tar.gz", "has_sig": false, "md5_digest": "d801a5320a35292159b3610f172ade81", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 32035, "upload_time": "2009-12-28T12:56:03", "url": "https://files.pythonhosted.org/packages/4d/ed/541251d875b1b4d3ef72d34aaf6229db8b54f21ac07c4c55ebe3ce94d66e/betahaus.emaillogin-0.5.tar.gz" } ], "0.6": [ { "comment_text": "", "digests": { "md5": "bf87a774e0605af576600bc926c48254", "sha256": "a3f39f3178858e66daa44a1fb6601584a81606ea3aaf5bbbbedba425563dc60c" }, "downloads": -1, "filename": "betahaus.emaillogin-0.6.zip", "has_sig": false, "md5_digest": "bf87a774e0605af576600bc926c48254", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 55879, "upload_time": "2011-04-11T22:30:51", "url": "https://files.pythonhosted.org/packages/dd/b9/ab75cd30bec112547a36381f26d6d00b7d79c2d2b3ff43ca1d4858e5a2b5/betahaus.emaillogin-0.6.zip" } ], "0.6.1": [ { "comment_text": "", "digests": { "md5": "b89b4ff9fdb9690eeed158092752a4bc", "sha256": "3ac60d69138382a2b1e9e4d012dd016f401a862c1cda7db92151a0b6f968f4bc" }, "downloads": -1, "filename": "betahaus.emaillogin-0.6.1.tar.gz", "has_sig": false, "md5_digest": "b89b4ff9fdb9690eeed158092752a4bc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 32787, "upload_time": "2012-02-16T16:19:45", "url": "https://files.pythonhosted.org/packages/f6/c1/566e4922312a2fcc7ea8fc07663b0d85aadcfabcc446c0f70018107fb1ad/betahaus.emaillogin-0.6.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "b89b4ff9fdb9690eeed158092752a4bc", "sha256": "3ac60d69138382a2b1e9e4d012dd016f401a862c1cda7db92151a0b6f968f4bc" }, "downloads": -1, "filename": "betahaus.emaillogin-0.6.1.tar.gz", "has_sig": false, "md5_digest": "b89b4ff9fdb9690eeed158092752a4bc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 32787, "upload_time": "2012-02-16T16:19:45", "url": "https://files.pythonhosted.org/packages/f6/c1/566e4922312a2fcc7ea8fc07663b0d85aadcfabcc446c0f70018107fb1ad/betahaus.emaillogin-0.6.1.tar.gz" } ] }