{ "info": { "author": "Richard Gomes", "author_email": "rgomes.info@gmail.com", "bugtrack_url": null, "classifiers": [ "Environment :: Web Environment", "Framework :: Pylons", "Framework :: Pyramid", "Intended Audience :: Developers", "License :: OSI Approved :: BSD License", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 2.6", "Programming Language :: Python :: 2.7", "Topic :: Internet :: WWW/HTTP", "Topic :: Internet :: WWW/HTTP :: Dynamic Content", "Topic :: Internet :: WWW/HTTP :: WSGI :: Application", "Topic :: Software Development :: User Interfaces" ], "description": "| Code_ | Bugs_ | Forum_ | Docs_ | License_ | Contact_\n\n.. _Code : http://github.com/frgomes/kotti_accounts\n.. _Bugs : http://github.com/frgomes/kotti_accounts/issues\n.. _Forum : http://github.com/frgomes/kotti_accounts/wiki\n.. _Docs : http://kotti_accounts.readthedocs.org\n.. _License : http://opensource.org/licenses/BSD-3-Clause\n.. _Contact : http://github.com/~frgomes\n\n\n`kotti_accounts`_ is a `Kotti`_ plugin which allows a user principal to be associated to\nmultiple email accounts.\n\n`Find out more about Kotti`_\n\n.. _`Kotti`: http://pypi.python.org/pypi/Kotti\n.. _`Find out more about Kotti`: http://pypi.python.org/pypi/Kotti\n.. _`kotti_velruse`: http://pypi.python.org/pypi/kotti_velruse\n.. _`kotti_accounts`: http://pypi.python.org/pypi/kotti_accounts\n\n\nFor the impatient\n=================\n\nThere's a demo which shows how it works.\nJust run the commands below inside a clean virtualenv.\n\n::\n\n git clone https://github.com/frgomes/kotti_velruse_demo.git\n cd kotti_velruse_demo\n ./run-server.sh\n\n\nSetup\n=====\n\n1. Insert ``kotti_accounts.kotti_configure`` on ``kotti.configurators``\n\n::\n\n kotti.configurators = kotti_velruse.kotti_configure\n kotti_accounts.kotti_configure\n # other plugins...\n\n2. See also kotti_velruse_ for other configurations, since ``kotti_velruse`` and\n ``kotti_accounts`` were designed to work together.\n\n\nDesign Decisions\n================\n\n* associate multiple externally authenticated identities to a single Principal.\n\n* substitute part of the internal registration workflow provided by ``kotti.security``.\n\n* behave as a drop-in to the existing ``kotti.security`` Principals.\n\n* all existing test cases depending on Principals must pass.\n\n* integrate with `kotti_velruse`_ via events.\n\n\nWorkflow\n========\n\nNew user\n--------\n\nThe actions enumerated below happen when a user authenticates for the first time using\nhis/her external OpenID account (or any other authentication method):\n\n- the user's real name and email address are obtained from the external provider;\n\n- a new Principal is created and populated with the real name and email address;\n\n- a new Account is created and populated with the email address;\n\n- the newly created Account is associated with the newly created Principal;\n\n- event UserSelfRegistered is triggered, in order to integrate with other plugins.\n\n- the session is then authenticated with the allocated Principal.\n\n\nReturning user\n--------------\n\nThese actions enumerated below happen when a returning user authenticates:\n\n- the user's real name and email address are obtained from the external provider;\n\n- find the Account which matches the email address;\n\n- finds the Principal associated with the Account;\n\n- the session is then authenticated with the Principal found.\n\n\nAdd email to existing user\n--------------------------\n\nThese actions enumerated below happen when new email addresses are added to an existing\nPrincipal, using the new Preferences page:\n\n- the user remains authenticated as he/she was, keeping the current Principal;\n\n- the user performs a new login, authenticates against another external provider;\n\n- the user's real name and email address are obtained from the external provider;\n\n- a new Account is created and populated with the email address; the real name is discarded;\n\n- the newly created Account is associated with the existing created Principal;\n\n- the session remains authenticated as it was in the beginning.\n\n\nPending\n-------\n\n- (TODO) ability to merge accounts.\n\n\nTroubleshooting\n===============\n\nHow do I authenticate as administrator?\n---------------------------------------\n\nThe default authentication method provided by Kotti retrieves Principals from the database\nand compares the password you type against what is stored there. The authentication method\nprovided by ``kotti_accounts`` relies on authentication performed by external providers,\nwhich means that the usual ``admin/qwerty`` is not valid anymore.\n\nThe way to become administrator consists on these steps:\n\n- Insert something similar to the below into your configuration file:\n\n::\n\n kotti.accounts.admins = admin@example.com\n webmaster@example.com\n\n.. note::\n\n This allows the specified list of emails to be understood as special.\n It means that administrator rights will be automatically assigned **only** at Principal\n creation, which happens *when the user authenticates for the first time*.\n\n- Start the server and authenticate using some external provider, employing any of the\n emails listed as part of ``kotti.accounts.admins``.\n\n- Stop the server\n\n- Remove the configuration you just done on ``kotti.accounts.admins``.\n\n.. warning::\n\n In order to enforce security, it's a good practice to remove ``kotti.accounts.admins``\n from your configuration.\n\n\n- Start the server\n\n\n\nWhen you login to your previously created user account, using an external provider, you\nwill be recognized as administrator.\n\n\nSupport\n=======\n\nPlease find links on the top of this page.\n\nAuthors\n=======\n\nRichard Gomes \n\nChangelog\n=========\n\n0.2.5 (05-FEB-2014)\n-------------------\n\n- bugfix: trouble with Facebook authentication.\n Thanks tiberiuichim for your contribution! :)\n\n\n0.2.4 (15-JAN-2014)\n-------------------\n\n- bugfixes\n Thanks tiberiuichim for your contribution! :)\n https://github.com/frgomes/kotti_accounts/pull/1\n\n\n0.2.3 (21-Nov-2013)\n-------------------\n\n- Allows a list of administrative accounts. For example:\n\n::\n\n kotti.accounts.admins = admin@example.com\n webmaster@example.com\n\n\n0.2.2 (18-Nov-2013)\n-------------------\n\n- Propagates event UserSelfRegistered when a new Principal is created.\n\n0.2.1 (11-Nov-2013)\n-------------------\n\n- Provides a replacement for Preferences page (@@prefs)\n\n0.2 (06-Nov-2013)\n-----------------\n\n- Better integration with kotti_velruse\n\n0.1 (02-Nov-2013)\n-----------------\n\n- Preview version.", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://kotti_accounts.readthedocs.org", "keywords": "pyramid kotti user account management", "license": "BSD", "maintainer": null, "maintainer_email": null, "name": "kotti_accounts", "package_url": "https://pypi.org/project/kotti_accounts/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/kotti_accounts/", "project_urls": { "Download": "UNKNOWN", "Homepage": "http://kotti_accounts.readthedocs.org" }, "release_url": "https://pypi.org/project/kotti_accounts/0.2.5/", "requires_dist": null, "requires_python": null, "summary": "Allows a user principal to be associated to multiple email accounts.", "version": "0.2.5" }, "last_serial": 991355, "releases": { "0.2.3": [ { "comment_text": "", "digests": { "md5": "1be49ed5b2b626534ae80debc0eff370", "sha256": "02994092ac27c78b8717af38ce40e6fe1956cb40760fdabaf4254d980ff2505d" }, "downloads": -1, "filename": "kotti_accounts-0.2.3.zip", "has_sig": false, "md5_digest": "1be49ed5b2b626534ae80debc0eff370", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 25106, "upload_time": "2013-11-21T18:56:22", "url": "https://files.pythonhosted.org/packages/a4/af/f48c6e62e58cae1ca7f95f85cd270e59f1d5134a19636dd9d7bef174cb35/kotti_accounts-0.2.3.zip" } ], "0.2.4": [ { "comment_text": "", "digests": { "md5": "bb9b60c8dd027e65c98ebc0755954d70", "sha256": "3651a79f0e76ab322cde7e71f18e0529cd139e6753da920bb3eccb92b6349d62" }, "downloads": -1, "filename": "kotti_accounts-0.2.4.tar.gz", "has_sig": false, "md5_digest": "bb9b60c8dd027e65c98ebc0755954d70", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17276, "upload_time": "2014-01-15T16:03:15", "url": "https://files.pythonhosted.org/packages/30/c7/b0ab5dfa7ed1d8c776e6cd8387d309e580d3aad1d42190ef3810fc7e1238/kotti_accounts-0.2.4.tar.gz" }, { "comment_text": "", "digests": { "md5": "f96bd52d7e6c850cebdbdeb6f07a37d3", "sha256": "18ca9489930d9920bd125eecbc355c7ebfe1e16e683f2c1561a411d38fbbb4be" }, "downloads": -1, "filename": "kotti_accounts-0.2.4.zip", "has_sig": false, "md5_digest": "f96bd52d7e6c850cebdbdeb6f07a37d3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23434, "upload_time": "2014-01-15T16:03:18", "url": "https://files.pythonhosted.org/packages/90/5f/cab6ae1be6f4c4d11f50a66ea65637a24c07e3f0725ec613a89d9de03bb0/kotti_accounts-0.2.4.zip" } ], "0.2.5": [ { "comment_text": "", "digests": { "md5": "7f5008f6531c536d1c337136809f48cc", "sha256": "bf16cb741b8bb70d9753a4446d0f9f1a42349e558d52e121e9317df6dd2f3ab3" }, "downloads": -1, "filename": "kotti_accounts-0.2.5.tar.gz", "has_sig": false, "md5_digest": "7f5008f6531c536d1c337136809f48cc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17402, "upload_time": "2014-02-05T15:29:45", "url": "https://files.pythonhosted.org/packages/7d/59/0c51a05aa595fe2fe04abf20bf2ee44a326dd33b4703e7b0a06af88bdf45/kotti_accounts-0.2.5.tar.gz" }, { "comment_text": "", "digests": { "md5": "8d1ed9091914218453742a7edc4253b1", "sha256": "7d05c6572053ef55a7279c49a5e9791f46353d0abec96e1d2f77f3591fc35d4f" }, "downloads": -1, "filename": "kotti_accounts-0.2.5.zip", "has_sig": false, "md5_digest": "8d1ed9091914218453742a7edc4253b1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23581, "upload_time": "2014-02-05T15:29:50", "url": "https://files.pythonhosted.org/packages/46/b3/810c892a9f44c9f82c3d28510b655dbeed5ab6ecf7e9d86e89b3dcc5a353/kotti_accounts-0.2.5.zip" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "7f5008f6531c536d1c337136809f48cc", "sha256": "bf16cb741b8bb70d9753a4446d0f9f1a42349e558d52e121e9317df6dd2f3ab3" }, "downloads": -1, "filename": "kotti_accounts-0.2.5.tar.gz", "has_sig": false, "md5_digest": "7f5008f6531c536d1c337136809f48cc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17402, "upload_time": "2014-02-05T15:29:45", "url": "https://files.pythonhosted.org/packages/7d/59/0c51a05aa595fe2fe04abf20bf2ee44a326dd33b4703e7b0a06af88bdf45/kotti_accounts-0.2.5.tar.gz" }, { "comment_text": "", "digests": { "md5": "8d1ed9091914218453742a7edc4253b1", "sha256": "7d05c6572053ef55a7279c49a5e9791f46353d0abec96e1d2f77f3591fc35d4f" }, "downloads": -1, "filename": "kotti_accounts-0.2.5.zip", "has_sig": false, "md5_digest": "8d1ed9091914218453742a7edc4253b1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23581, "upload_time": "2014-02-05T15:29:50", "url": "https://files.pythonhosted.org/packages/46/b3/810c892a9f44c9f82c3d28510b655dbeed5ab6ecf7e9d86e89b3dcc5a353/kotti_accounts-0.2.5.zip" } ] }