{ "info": { "author": "Guido Wesdorp", "author_email": "guido@pragmagik.com", "bugtrack_url": null, "classifiers": [ "Framework :: Plone", "Framework :: Plone :: 3.2", "Framework :: Plone :: 3.3", "Framework :: Zope2", "Framework :: Zope3", "Programming Language :: Python", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "collective.emaillogin Package Readme\n====================================\n\n\nOverview\n--------\n\nThis package allow logins with email address rather than login name. It applies\nsome (somewhat hackish) patches to Plone's membership tool and memberdata\nclass, after which the email address, on save, is saved as the login name for\nmembers. This makes that members can log in using their email address rather\nthan some additional id, and when the email address changes the login name\nis changed along with it.\n\nSince version 1.0 we explicitly convert e-mail addresses to\nlowercase. You should be able to login with any mix of upper and\nlower case letters.\n\n\nInstallation\n------------\n\nAdd it to the eggs of your Plone 3 buildout. With Plone 3.2.x or\nearlier also add it to the zcml option of your instance. Install it\nin the Add-ons (Extra Packages) control panel in your Plone Site.\nInstalling simply adds a new skin layer named 'emaillogin'.\n\nIt is best to install this on a fresh Plone site. The login names of\ncurrent users are not changed. There is code in core Plone 4 for\nthis, so you may want to look there if you need it.\n\n.. WARNING::\n A major part of this package works by patching several core\n Plone and CMF classes. The patches also apply when you do not have\n this package installed in your Plone Site. This may give unwanted\n results, like changing the login name of a user when his or her e-mail\n address is changed. This also means that when you have multiple Plone\n Sites in one Zope instance, you should either install this package in\n all of them or not use it at all and remove it from your buildout.\n\n\nUpgrading\n---------\n\nWhen upgrading from version 0.8, an upgrade step is run to change all\nlogin names to lower case, for those login names that are already\ne-mail addresses.\n\n\nGotchas\n-------\n\nNo, these are not bugs. Or if they are bugs, then they are bugs that\nare too hard to fix without introducing other bugs. They might be\nunexpected though, so we call them gotchas.\n\n- Since version 1.0, whenever an e-mail address is set, we\n automatically convert it to lowercase. You cannot set an e-mail\n address to upper or mixed case. When logging in or resetting a\n password the case does not need to match: we look for the given\n login but also for the lowercased login.\n\n- As an administrator, when you change the login name of a user in the\n ZMI, this does not update the email.\n\n- When you register with original@example.org and change this to\n new@example.org, you can no longer login with your original address.\n You can only login with your current e-mail address, though the case\n (upper, lower, mixed) should not matter anymore.\n\n- The initial e-mail address is used as userid. This id never ever\n changes. In places where the userid is displayed this original\n userid is shown, which is normally fine until the email address is\n overwritten -- once this is done the *original* email address will\n be displayed rather than the new one. (Plone 4 fixes this in the\n core.) There may be some more spots in Plone that for example\n search only for users by id so when you use that to search on login\n name this may fail. Also, there are spots in the Plone or CMF or\n Zope code that have a userid as input but use it as login name or\n the other way around so be careful when you start hacking yourself.\n\n- If you register with one@example.org, then change it to\n two@example.org, then no one can register a new user with\n one@example.org or change the e-mail address of an existing user to\n one@example.org. This is because it will forever be used as\n userid. Note that when you now change your address to\n three@example.org, your intermediate address of two@example.org is\n free for the taking.\n\n- When you change your e-mail address, you do *not* get a confirmation\n e-mail to check if you did not make any typos and it is a real\n address. This means you will not be able to login if you do not\n remember this typo; a password reset will then also not work. This\n could be considered a problem of Plone in general and not specific\n for this add-on, though we are hit harder by it. Might be a nice\n candidate for a PLIP (PLone Improvement Proposal) or first an extra\n add-on.\n\n\nFuture\n------\n\nIn Plone 4 this package is deprecated, as Plone 4 already supports\nlogging in with your email address as an option:\nhttp://dev.plone.org/plone/ticket/9214\n\nSo we strongly advise not to use this package on Plone 4. But your\ninstance will still start up (tested on Plone 4.0a4) and you can\nuninstall the package through the UI. You may need to manually remove\n``emaillogin`` from the skin selections in the Properties tab of\nportal_skins in the ZMI. Since the package does some patches on\nstartup, you should still remove it from the eggs and zcml options of\nyour instance, rerun buildout and start your instance again.\n\n\nChangelog for collective.emaillogin\n===================================\n\n\n1.3 (2012-09-24)\n----------------\n\n- Avoid possible circular import for the PloneMembershipTool in\n PlonePAS and CMFPlone.\n [maurits]\n\n- Moved to https://github.com/collective/collective.emaillogin\n [maurits]\n\n\n1.2 (2012-02-14)\n----------------\n\n- Patch RegistrationTool.isMemberIdAllowed. When the id that is\n passed in is already in use as login name, we do not accept it as\n user id either. Also, in various spots where isMemberIdAllowed is\n called, the id is really meant as login name.\n Possibly this fix is only needed for Plone 3.1 and earlier, as I am\n sure I have tested this before on Plone 3.3.6.\n [maurits]\n\n- Patch the login method from\n Products.PlonePAS.plugins.cookie_handler.ExtendedCookieAuthHelper.\n This is the code from Plone 3.3.6; it is included because Plone 3.1.7\n does the wrong thing for us here.\n [maurits]\n\n\n1.1 (2011-12-13)\n----------------\n\n- Patch CMFPlone.MembershipTool.testCurrentPassword to authenticate\n with the login name. The code in Plone 3.3.5 itself already works\n (and is simply copied here), but Plone 3.1.7 has an error that is\n triggered for us as the user id is not always the same as the login\n name.\n [maurits]\n\n\n1.0 (2011-11-23)\n----------------\n\n- In the mailPassword method explicitly disallow looking for a member\n with the given forgotten user id when this is an e-mail address. We\n only search for users with that e-mail address as login name. This\n only has an effect when you have changed your e-mail address to\n something really different (instead of just a change in the case).\n Without this change, you could reset your password with your old\n address, but could not login with that address.\n [maurits]\n\n- Refactored authenticateCredentials. This avoids getting a message\n stating you are logged in when in fact you are not logged in.\n [maurits]\n\n- Added upgrade step to migrate all existing users to have a lowercase\n login name (when their e-mail address is used as login name).\n [maurits]\n\n- Patch PloneTool.setMemberProperties to always set the e-mail address\n to lower case and to update the login name when the e-mail address\n changes.\n [maurits]\n\n- In validate_personalize.vpy turn the e-mail address to lowercase.\n [maurits]\n\n- Patch Products.PlonePAS.tools.membership.MembershipTool.addMember to\n always add the member as lowercase, also when not called from\n registered.cpy\n [maurits]\n\n- In join_form_validate.vpy turn the e-mail address to lowercase.\n [maurits]\n\n- Changed getMemberByLoginName and ZODBUserManager.authenticateCredentials\n to explicitly search for the lower case login name if the initial\n literal search does not work.\n [maurits]\n\n- Added classifiers for Plone 3.2 and 3.3 in setup.py.\n [maurits]\n\n\n0.8 (2010-05-18)\n----------------\n\n- Removed mail_me functionality from join_form as this claimed to be\n sending the password, which Plone has not been doing for a long\n time, if ever. The backend handling for this was already removed\n from Plone itself.\n [maurits]\n\n- Fixed wrong condition and double definition where allowEnterPassword\n meant you were actually *not* allowed to enter a password. It\n worked fine but was confusingly stated the wrong way around.\n [maurits]\n\n\n0.7 (2010-02-23)\n----------------\n\n- added german translation [deichi]\n\n\n0.6 (2009-05-13)\n----------------\n\n- Patched some methods in PasswordResetTool and RegistrationTool to\n make sure you can actually reset your password, even after changing\n your email address. [maurits]\n\n- Use email address instead of login/user name in some more spots,\n like the login form and in validation. [maurits]\n\n\n0.5 (2009-05-06)\n----------------\n\n- Fixed error on reinstall where the default skin would be set to the\n no longer existing emaillogin skin. [maurits]\n\n- Added profiles/default/metadata.xml: version = 1. [maurits]\n\n- After a successfull edit of the personalize form, do not travere to\n the personalize_form, but redirect to it. This solves an error\n \"Forbidden: Form authenticator is invalid.\" when changing your email\n address (= login name) and then saving the form a second time.\n [maurits]\n\n- Changed validate_personalize.vpy to allow changing your preferences\n again. [maurits]\n\n- Adapted validate_personalize.vpy. Change compared to default Plone:\n check the validity of the email address as a login name. [maurits]\n\n- Added i18n. [maurits]\n\n\n0.4 (2009-05-05)\n----------------\n\n- Also show the error when the email address is not a valid username.\n [maurits+mike]\n\n\n0.3 (2009-05-05)\n----------------\n\n- Removed personalize_form.cpt(.metadata) as there was no important\n difference with the one from default Plone. [maurits+mike]\n\n- Take over a small change in default Plone to the personalize.cpy.\n\n- Fixed join form to also work in newer Plones by using the\n @@authenticator provider for protecting this join form. Keeps\n working in Plone 3.0 as well (which does not use plone.protect).\n [maurits+mike]\n\n\n0.2 (2009-05-05)\n----------------\n\n- No longer register our own skin path (skin selection), but just add\n our emaillogin skin layer to the existing skin selections.\n [maurits+mike]\n\n\n0.1 (2008-01-15)\n----------------\n\n- Initial release.\n [maurits, guido]", "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/collective/collective.emaillogin", "keywords": "", "license": "GPL", "maintainer": null, "maintainer_email": null, "name": "collective.emaillogin", "package_url": "https://pypi.org/project/collective.emaillogin/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/collective.emaillogin/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://github.com/collective/collective.emaillogin" }, "release_url": "https://pypi.org/project/collective.emaillogin/1.3/", "requires_dist": null, "requires_python": null, "summary": "Allow logins with email address rather than login name.", "version": "1.3" }, "last_serial": 740436, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "bf0e5fa6b845872b01c89d6f0ff216c2", "sha256": "a701f0571e3b165d9f8e643defbfe91bf59c9a781f6abe29d55d293099aeba91" }, "downloads": -1, "filename": "collective.emaillogin-0.1-py2.4.egg", "has_sig": false, "md5_digest": "bf0e5fa6b845872b01c89d6f0ff216c2", "packagetype": "bdist_egg", "python_version": "2.4", "requires_python": null, "size": 17135, "upload_time": "2008-01-15T11:18:29", "url": "https://files.pythonhosted.org/packages/5b/ed/940cd2b9af4970409e46766ccf53c8acbd912425f0b20d7554b9ee8cef98/collective.emaillogin-0.1-py2.4.egg" } ], "0.2": [ { "comment_text": "", "digests": { "md5": "ea3497187f424ef58aa5ef2ef62e105c", "sha256": "1e2b90615742a6dd94c2c63cc2d73c84b70daaf1e73dd5a87a47004a00a873a3" }, "downloads": -1, "filename": "collective.emaillogin-0.2.tar.gz", "has_sig": false, "md5_digest": "ea3497187f424ef58aa5ef2ef62e105c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16189, "upload_time": "2009-05-05T11:35:12", "url": "https://files.pythonhosted.org/packages/83/59/8ab09236f77a2c1267c47633fc82b8b535d379f1f296d4ed247f3dc5c9f4/collective.emaillogin-0.2.tar.gz" } ], "0.3": [ { "comment_text": "", "digests": { "md5": "c5e8922b2974c263b5d55a181bc577d2", "sha256": "6dbc077815b2748ca3b8d8492c28e7a538bfe24da4fcceeccd29236de8a2469a" }, "downloads": -1, "filename": "collective.emaillogin-0.3.tar.gz", "has_sig": false, "md5_digest": "c5e8922b2974c263b5d55a181bc577d2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13604, "upload_time": "2009-05-05T12:30:47", "url": "https://files.pythonhosted.org/packages/ad/63/cb7408b95e6dd5f79e0a046ae9741eac51c63dfb36799e56d53958bb6d45/collective.emaillogin-0.3.tar.gz" } ], "0.4": [ { "comment_text": "", "digests": { "md5": "9b9506986b5aa284c6d1266faed63902", "sha256": "3495000fe131e8a2140efc650d3bdbbe77130ce4ead2b5e18956dc72a208b0ff" }, "downloads": -1, "filename": "collective.emaillogin-0.4.tar.gz", "has_sig": false, "md5_digest": "9b9506986b5aa284c6d1266faed63902", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13689, "upload_time": "2009-05-05T12:56:52", "url": "https://files.pythonhosted.org/packages/99/90/350c52fef2cedd31c340c9f2389bef6c28e9b498b99f3cb420f389f743f8/collective.emaillogin-0.4.tar.gz" } ], "0.5": [ { "comment_text": "", "digests": { "md5": "b685fefd3422c3957358da5fa140365b", "sha256": "5bb8edba85af975e7aec127132e812d1eddca494e3e86a8e5ced81fc2cbe21cb" }, "downloads": -1, "filename": "collective.emaillogin-0.5.tar.gz", "has_sig": false, "md5_digest": "b685fefd3422c3957358da5fa140365b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14987, "upload_time": "2009-05-06T16:43:53", "url": "https://files.pythonhosted.org/packages/ed/a8/43a514c56c1743afa5b67c13ab5135d4b29769051a3c2c5641ac44d43c1f/collective.emaillogin-0.5.tar.gz" } ], "0.6": [ { "comment_text": "", "digests": { "md5": "5f7ad5b8e1ad0323d7863122501adf94", "sha256": "e5f32789e29fec8d55c50e9b9b4f8aec276e8e02f56796a1cf497ce5333ea790" }, "downloads": -1, "filename": "collective.emaillogin-0.6.tar.gz", "has_sig": false, "md5_digest": "5f7ad5b8e1ad0323d7863122501adf94", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22114, "upload_time": "2009-05-13T12:39:18", "url": "https://files.pythonhosted.org/packages/32/6a/4019eebb2c5dd20f3255b77c7473b658f61ad7ed56258ff8086cac5ea6b7/collective.emaillogin-0.6.tar.gz" } ], "0.7": [ { "comment_text": "", "digests": { "md5": "2479c51892ab90166652bb1d3e8facdc", "sha256": "6f13848b5d2a9c35933271bae400bf924c8349c120134ecf73bfe34ffa03ce76" }, "downloads": -1, "filename": "collective.emaillogin-0.7.zip", "has_sig": false, "md5_digest": "2479c51892ab90166652bb1d3e8facdc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 43651, "upload_time": "2010-02-23T12:06:12", "url": "https://files.pythonhosted.org/packages/a7/6b/cdceb4bb9e0ada43259f3f5bd8561f1e16d129cc01e970e09df4b24a1300/collective.emaillogin-0.7.zip" } ], "0.8": [ { "comment_text": "", "digests": { "md5": "9aadae700f67fab92d6861934d6978bb", "sha256": "0310c7029fb8b7fce1b773c8c110fa3432c2dbe88b67d2f21e8f730122820494" }, "downloads": -1, "filename": "collective.emaillogin-0.8.zip", "has_sig": false, "md5_digest": "9aadae700f67fab92d6861934d6978bb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 46158, "upload_time": "2010-05-18T17:10:36", "url": "https://files.pythonhosted.org/packages/04/f1/5c5a711a1711c5b14d66420c83331ce801ca7ac8275f336899e014e14772/collective.emaillogin-0.8.zip" } ], "1.0": [ { "comment_text": "", "digests": { "md5": "3b079c5268819e1d47805f6b11462a8d", "sha256": "79714f93378a319769f8cbea3be91744564b10919cdff85eccbfaf86284f99e0" }, "downloads": -1, "filename": "collective.emaillogin-1.0.tar.gz", "has_sig": false, "md5_digest": "3b079c5268819e1d47805f6b11462a8d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 30582, "upload_time": "2011-11-23T16:28:17", "url": "https://files.pythonhosted.org/packages/ff/f8/33df080e57df23dfbcae8933a0e5e45f44fdaa77885dbde89b2c29344f57/collective.emaillogin-1.0.tar.gz" } ], "1.1": [ { "comment_text": "", "digests": { "md5": "984834c6183c1a3965d40d38e3a3e071", "sha256": "f6df2abde699eb9b46150342c051e8829c42357713d610937d67e482098c12bc" }, "downloads": -1, "filename": "collective.emaillogin-1.1.tar.gz", "has_sig": false, "md5_digest": "984834c6183c1a3965d40d38e3a3e071", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 31332, "upload_time": "2011-12-13T18:17:52", "url": "https://files.pythonhosted.org/packages/2b/b5/a42fdb1f459029c5d1cf2f82de298e2430eb8f956e21fd0d8fbf5207f11c/collective.emaillogin-1.1.tar.gz" } ], "1.2": [ { "comment_text": "", "digests": { "md5": "b8d1534d1d7c8a9155b1901c0fe6f32c", "sha256": "653ddf91099afc27f02c8425a01ec4eb64b3012ba1949d8ea1c72021dc11a3a2" }, "downloads": -1, "filename": "collective.emaillogin-1.2.tar.gz", "has_sig": false, "md5_digest": "b8d1534d1d7c8a9155b1901c0fe6f32c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 32036, "upload_time": "2012-02-14T13:46:25", "url": "https://files.pythonhosted.org/packages/99/6e/b3cde084548b7d75fd452b75852986ada22beb85268c5e661164050db73e/collective.emaillogin-1.2.tar.gz" } ], "1.3": [ { "comment_text": "", "digests": { "md5": "673db85436fce4556c9a87679f71c963", "sha256": "17446b2a91e94d8706928e1cfa385facf8e2a2561b808d2cd167715a9573da82" }, "downloads": -1, "filename": "collective.emaillogin-1.3.zip", "has_sig": false, "md5_digest": "673db85436fce4556c9a87679f71c963", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 61280, "upload_time": "2012-09-24T16:13:09", "url": "https://files.pythonhosted.org/packages/ef/ed/9cc62e558cbb568a7f225f1637c91e471b19130c5c78a089717da9004d7b/collective.emaillogin-1.3.zip" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "673db85436fce4556c9a87679f71c963", "sha256": "17446b2a91e94d8706928e1cfa385facf8e2a2561b808d2cd167715a9573da82" }, "downloads": -1, "filename": "collective.emaillogin-1.3.zip", "has_sig": false, "md5_digest": "673db85436fce4556c9a87679f71c963", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 61280, "upload_time": "2012-09-24T16:13:09", "url": "https://files.pythonhosted.org/packages/ef/ed/9cc62e558cbb568a7f225f1637c91e471b19130c5c78a089717da9004d7b/collective.emaillogin-1.3.zip" } ] }