{ "info": { "author": "Vinta Chen", "author_email": "vinta.chen@gmail.com", "bugtrack_url": null, "classifiers": [], "description": "Copyright (c) 2014 Vinta\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n\n\nDescription: django-email-confirm-la\n =======================\n \n .. image:: http://img.shields.io/travis/vinta/django-email-confirm-la/master.svg?style=flat-square\n :target: https://travis-ci.org/vinta/django-email-confirm-la\n \n .. image:: https://img.shields.io/coveralls/vinta/django-email-confirm-la/master.svg?style=flat-square\n :target: https://coveralls.io/github/vinta/django-email-confirm-la\n \n .. image:: http://img.shields.io/pypi/v/django-email-confirm-la.svg?style=flat-square\n :target: https://pypi.python.org/pypi/django-email-confirm-la\n \n Django email confirmation for any Model and any Field.\n \n Requirements\n ============\n \n - Python (2.6, 2.7, 3.3, 3.4, 3.5)\n - Django (1.5, 1.6, 1.7, 1.8, 1.9)\n \n Installation\n ============\n \n .. code-block:: bash\n \n $ pip install django-email-confirm-la\n \n \n In your ``settings.py``:\n \n Add the ``email_confirm_la`` app (put it *after* your apps) and set the required settings:\n \n .. code-block:: python\n \n INSTALLED_APPS = (\n ...\n 'your_app',\n 'email_confirm_la',\n ...\n )\n \n EMAIL_CONFIRM_LA_HTTP_PROTOCOL = 'https'\n EMAIL_CONFIRM_LA_DOMAIN = 'vinta.ws'\n EMAIL_CONFIRM_LA_AUTOLOGIN = True\n EMAIL_CONFIRM_LA_TEMPLATE_CONTEXT = {\n 'THE_ANSWER': 42,\n }\n \n If you are using the `sites `_ framework, then ``EMAIL_CONFIRM_LA_DOMAIN`` can be omitted and ``Site.objects.get_current().domain`` will be used.\n \n In your ``urls.py``:\n \n .. code-block:: python\n \n urlpatterns = [\n ...\n url(r'^email_confirmation/', include('email_confirm_la.urls', namespace='email_confirm_la')),\n ...\n ]\n \n then run\n \n .. code-block:: bash\n \n $ python manage.py migrate\n \n Models\n ======\n \n For User Model\n ==============\n \n .. code-block:: python\n \n from django.contrib.auth.models import User\n from email_confirm_la.models import EmailConfirmation\n \n user = User.objects.get(username='vinta')\n email = 'vinta.chen@gmail.com'\n EmailConfirmation.objects.verify_email_for_object(email, user)\n \n For Any Model And Any Field\n ===========================\n \n Assumed you have a model:\n \n .. code-block:: python\n \n from django.db import models\n from django.contrib.contenttypes.fields import GenericRelation # Django 1.7+\n from django.contrib.contenttypes.generic import GenericRelation\n \n class YourModel(models.Model):\n ...\n customer_support_email = models.EmailField(max_length=255, null=True, blank=True)\n marketing_email = models.EmailField(max_length=255, null=True, blank=True)\n ...\n \n # optional, but recommended when you want to perform cascade-deletions\n email_confirmations = GenericRelation('email_confirm_la.EmailConfirmation', content_type_field='content_type', object_id_field='object_id')\n \n And you want to verify some emails:\n \n .. code-block:: python\n \n from your_app.models import YourModel\n from email_confirm_la.models import EmailConfirmation\n \n some_model_instance = YourModel.objects.get(id=42)\n \n EmailConfirmation.objects.verify_email_for_object(\n email='marvin@therestaurantattheendoftheuniverse.com',\n content_object=some_model_instance,\n email_field_name='customer_support_email'\n )\n \n EmailConfirmation.objects.verify_email_for_object(\n email='arthur.dent@therestaurantattheendoftheuniverse.com',\n content_object=some_model_instance,\n email_field_name='marketing_email'\n )\n \n Signals\n =======\n \n - ``post_email_confirmation_send``\n - ``post_email_confirmation_confirm``\n \n In your ``models.py``:\n \n .. code-block:: python\n \n from django.dispatch import receiver\n from email_confirm_la.signals import post_email_confirmation_confirm\n \n @receiver(post_email_confirmation_confirm)\n def post_email_confirmation_confirm_callback(sender, confirmation, **kwargs):\n model_instace = confirmation.content_object\n email = confirmation.email\n old_email = kwargs['old_email']\n \n do_your_stuff()\n \n Commands\n ========\n \n .. code-block:: bash\n \n $ python manage.py clear_expired_email_confirmations\n \n Templates\n =========\n \n You will want to override the project's email message and confirmation pages.\n \n Ensure the ``email_confirm_la`` app in ``INSTALLED_APPS`` is after the app that you will place the customized templates in so that the `django.template.loaders.app_directories.Loader `_ finds *your* templates first.\n \n There are following template that you can override:\n \n * ``email_confirm_la/email/email_confirmation_subject.txt``: Produces the subject line of the email.\n * ``email_confirm_la/email/email_confirmation_message.html``: The HTML body of the email.\n * ``email_confirm_la/email_confirmation_success.html``: What the user sees after clicking a confirmation link (on success).\n * ``email_confirm_la/email_confirmation_fail.html:`` What the user sees after clicking a invalid confirmation link.\n * ``email_confirm_la/email_confirmation_expiration.html:`` What the user sees after clicking an expired confirmation link.\n \n Settings\n ========\n \n Default values of app settings:\n \n .. code-block:: python\n \n EMAIL_CONFIRM_LA_HTTP_PROTOCOL = 'http'\n EMAIL_CONFIRM_LA_DOMAIN = 'example.com'\n EMAIL_CONFIRM_LA_CONFIRM_EXPIRE_SEC = 60 * 60 * 24 * 1 # 1 day\n EMAIL_CONFIRM_LA_CONFIRM_URL_REVERSE_NAME = 'email_confirm_la:confirm_email'\n EMAIL_CONFIRM_LA_TEMPLATE_CONTEXT = {}\n EMAIL_CONFIRM_LA_AUTOLOGIN = False\n \n Run Tests\n =========\n \n .. code-block:: bash\n \n $ pip install -r requirements_test.txt\n $ python setup.py test\n \n # or\n \n $ docker build -t email_confirm_la .\n $ docker run --rm=true -v `pwd`:/app email_confirm_la\n \n \n Changes\n =======\n \n 2.3.0 (2016-09-09)\n ++++++++++++++++++\n \n - Support automatically login after email confirmation via `EMAIL_CONFIRM_LA_AUTOLOGIN` setting\n - Use `uuid.uuid4()` to generate confirmation key\n \n \n 2.2.0 (2016-07-25)\n ++++++++++++++++++\n \n - Fix migration dependencies\n - New parameter ``old_email`` in `post_email_confirmation_confirm` signal\n \n \n 2.1.0 (2016-07-25)\n ++++++++++++++++++\n \n - Reset migration\n - Fix ``EmailConfirmationValidator``\n \n \n 2.0.0 (2016-07-22)\n ++++++++++++++++++\n \n - **v2.0.0 is a BACKWARD-INCOMPATIBLE release!**\n - Full refactoring\n - Drop support for Django 1.4\n \n \n 0.2.3 (2015-03-08)\n ++++++++++++++++++\n \n - Fix `#14 `_ Admin raises an `AttributeError` when `content_object` doesn't exist\n \n \n 0.2.2 (2014-11-13)\n ++++++++++++++++++\n \n - New admin action: Re-send confirmation email\n - New setting: ``EMAIL_CONFIRM_LA_EMAIL_BACKEND``\n - Change ``EMAIL_CONFIRM_LA_DOMAIN`` default value to ``''``, fail fast\n - Fix circular import\n \n \n 0.2.1 (2014-11-09)\n ++++++++++++++++++\n \n - Django 1.6 compatibility: ``transaction.atomic``\n - Django 1.4 compatibility: ``update_fields``\n \n \n 0.2.0 (2014-11-08)\n ++++++++++++++++++\n \n - Django 1.7 compatibility: ``migrations``\n \n \n 0.1.0 (2014-10-31)\n ++++++++++++++++++\n \n - Initial release\n \nKeywords: django,email,mail,confirm,confirmation,content type\nPlatform: UNKNOWN\nClassifier: Development Status :: 4 - Beta\nClassifier: Environment :: Web Environment\nClassifier: Framework :: Django\nClassifier: Intended Audience :: Developers\nClassifier: License :: OSI Approved :: MIT License\nClassifier: Operating System :: OS Independent\nClassifier: Programming Language :: Python\nClassifier: Programming Language :: Python :: 2\nClassifier: Programming Language :: Python :: 2.6\nClassifier: Programming Language :: Python :: 2.7\nClassifier: Programming Language :: Python :: 3\nClassifier: Programming Language :: Python :: 3.3\nClassifier: Programming Language :: Python :: 3.4\nClassifier: Programming Language :: Python :: 3.5\nClassifier: Topic :: Communications :: Email\nClassifier: Topic :: Internet\nClassifier: Topic :: Software Development :: Libraries\nClassifier: Topic :: Software Development :: Libraries :: Python Modules\nClassifier: Topic :: Utilities\n", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/vinta/django-email-confirm-la", "keywords": "", "license": "The MIT License (MIT)", "maintainer": "", "maintainer_email": "", "name": "django-email-confirm-la", "package_url": "https://pypi.org/project/django-email-confirm-la/", "platform": "", "project_url": "https://pypi.org/project/django-email-confirm-la/", "project_urls": { "Homepage": "https://github.com/vinta/django-email-confirm-la" }, "release_url": "https://pypi.org/project/django-email-confirm-la/2.3.1/", "requires_dist": [ "django (>=1.5)" ], "requires_python": "", "summary": "Django email confirmation for any Model and any Field.", "version": "2.3.1" }, "last_serial": 3022287, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "7a689850cd0617753bbc787702c9f8ea", "sha256": "a292e769e3b38f10a76d80fc21f597a30d0d000eb015ac2088b76b24da124836" }, "downloads": -1, "filename": "django-email-confirm-la-0.1.0.tar.gz", "has_sig": false, "md5_digest": "7a689850cd0617753bbc787702c9f8ea", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9824, "upload_time": "2014-10-30T17:40:53", "url": "https://files.pythonhosted.org/packages/cd/aa/826232dad8d60385eece7f83c8c6147d11beaed879b1cd72dab81531b31f/django-email-confirm-la-0.1.0.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "b5816caa5486379b93507d814b28f4c5", "sha256": "8604aacbbfffeaa8536b58dd57a65ead7109f46a13ba7cc07d8bf22afe14500b" }, "downloads": -1, "filename": "django-email-confirm-la-0.2.0.tar.gz", "has_sig": false, "md5_digest": "b5816caa5486379b93507d814b28f4c5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10766, "upload_time": "2014-11-08T09:04:39", "url": "https://files.pythonhosted.org/packages/83/8c/d162cc2b7f5bce0186cdfc13a19e597bd1fbb5b7886ae1ae9772c849b454/django-email-confirm-la-0.2.0.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "e518a3c1120a119fadbf77a309165660", "sha256": "5caecf0136c2501cb165f4cb0a72b6e94adbfcfb4bec253ba48a79a23411825d" }, "downloads": -1, "filename": "django-email-confirm-la-0.2.1.tar.gz", "has_sig": false, "md5_digest": "e518a3c1120a119fadbf77a309165660", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14343, "upload_time": "2014-11-09T12:04:16", "url": "https://files.pythonhosted.org/packages/22/64/54553b29bfc5f99407f2e49e705135cde6f43350cee3e26097b735cfc7a2/django-email-confirm-la-0.2.1.tar.gz" } ], "0.2.2": [ { "comment_text": "", "digests": { "md5": "5fa4cff3e321fb3a417e37e5ef52c5c7", "sha256": "5478b77e4af2d5bd22ce9017587f6093a8727903372113ebb0104bfa1b93f780" }, "downloads": -1, "filename": "django-email-confirm-la-0.2.2.tar.gz", "has_sig": false, "md5_digest": "5fa4cff3e321fb3a417e37e5ef52c5c7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15826, "upload_time": "2014-11-13T06:06:30", "url": "https://files.pythonhosted.org/packages/dd/14/73ead3efddbf9032230e970e3b9004ec58f6fb8844bae0674ba94efc676e/django-email-confirm-la-0.2.2.tar.gz" } ], "0.2.3": [ { "comment_text": "", "digests": { "md5": "dc898e747f737f515e72ac16fea4118f", "sha256": "92159955002c805afb4215b1db9248c6f29c3a2d5f21fda2d78e027936a8cdda" }, "downloads": -1, "filename": "django-email-confirm-la-0.2.3.tar.gz", "has_sig": false, "md5_digest": "dc898e747f737f515e72ac16fea4118f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16285, "upload_time": "2015-03-08T15:55:01", "url": "https://files.pythonhosted.org/packages/4a/08/10b18095a14a6c7de36083d75aa3d3dba1d59870fa0c5d697571bda7dd54/django-email-confirm-la-0.2.3.tar.gz" } ], "2.0.0": [ { "comment_text": "", "digests": { "md5": "d2c298d3e2855d8915bf91b28fbd9417", "sha256": "33148aef4684691660fc0d5b6feb0dd9d67e0ecf70ef05949128382cb10d8ab9" }, "downloads": -1, "filename": "django_email_confirm_la-2.0.0-py2-none-any.whl", "has_sig": false, "md5_digest": "d2c298d3e2855d8915bf91b28fbd9417", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 22353, "upload_time": "2016-07-24T11:08:41", "url": "https://files.pythonhosted.org/packages/bb/5b/60d29c9671f2dd9170c4aebd55b48c88d55397aa5ceda41c1a375d24cb10/django_email_confirm_la-2.0.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "103d426ffcc4854644e11eda61a2b6fb", "sha256": "d2a73c740ab1eaceacb812d8a5a5df2b3f20a8ed5380cc6d90b83cc153af824a" }, "downloads": -1, "filename": "django-email-confirm-la-2.0.0.tar.gz", "has_sig": false, "md5_digest": "103d426ffcc4854644e11eda61a2b6fb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14601, "upload_time": "2016-07-24T11:08:37", "url": "https://files.pythonhosted.org/packages/15/65/c049aa0bcae5ebbd39d8fee71eb5cf4e8934792c6954cac79d47cde4ee8c/django-email-confirm-la-2.0.0.tar.gz" } ], "2.1.0": [ { "comment_text": "", "digests": { "md5": "bbd2ed0098a9b24b72b96db2537b7876", "sha256": "85777754c42f98a952f57d0dcb4c2d39c83eea304b5603883c0f637335051edb" }, "downloads": -1, "filename": "django_email_confirm_la-2.1.0-py2-none-any.whl", "has_sig": false, "md5_digest": "bbd2ed0098a9b24b72b96db2537b7876", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 22457, "upload_time": "2016-07-25T09:12:41", "url": "https://files.pythonhosted.org/packages/8d/d2/c0784306e321b4914e409bbcbb30693363fb6834c3343a71d7acb574dbdc/django_email_confirm_la-2.1.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "fe4aae3091bec4407de3e980d2ccbf9a", "sha256": "42908a320e271f4e447bb76dcecdf80a1d3cc040e5f63889d976d263f98b45e6" }, "downloads": -1, "filename": "django-email-confirm-la-2.1.0.tar.gz", "has_sig": false, "md5_digest": "fe4aae3091bec4407de3e980d2ccbf9a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14693, "upload_time": "2016-07-25T09:12:38", "url": "https://files.pythonhosted.org/packages/27/fb/d29b38773a4e2917bdbaed7c66bd8d747e7994b7314530525924657f8052/django-email-confirm-la-2.1.0.tar.gz" } ], "2.2.0": [ { "comment_text": "", "digests": { "md5": "fa5af0b6368fc1e9088d6f8b67d258d9", "sha256": "210f7fc1d66e8cfc5f9285d91dc898ef9ec2d782ba177b0477e3d431ecb074c5" }, "downloads": -1, "filename": "django_email_confirm_la-2.2.0-py2-none-any.whl", "has_sig": false, "md5_digest": "fa5af0b6368fc1e9088d6f8b67d258d9", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 22560, "upload_time": "2016-07-25T10:08:30", "url": "https://files.pythonhosted.org/packages/e0/d4/3ef3d3a23e1c73af907c30a456815a9480ab6cd6273cad7695fc1952a30d/django_email_confirm_la-2.2.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4bbbe553375afdf87211fe02858151e8", "sha256": "85625c836db8296a09abf68dd95af5d412747b6720c4eab4a0f8fb86fb672633" }, "downloads": -1, "filename": "django-email-confirm-la-2.2.0.tar.gz", "has_sig": false, "md5_digest": "4bbbe553375afdf87211fe02858151e8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14813, "upload_time": "2016-07-25T10:08:27", "url": "https://files.pythonhosted.org/packages/9e/b0/c29212603e39735c2f8ac017b797b7278b9c560ba37cec7d53a710c0845d/django-email-confirm-la-2.2.0.tar.gz" } ], "2.3.0": [ { "comment_text": "", "digests": { "md5": "b97908c52f48f37291a9a27a35fb0baa", "sha256": "759e2397ca2a58c63c032ac73f70c25dd8c92e5e56212440c0b18490ad15525b" }, "downloads": -1, "filename": "django_email_confirm_la-2.3.0-py2-none-any.whl", "has_sig": false, "md5_digest": "b97908c52f48f37291a9a27a35fb0baa", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 22837, "upload_time": "2016-09-09T14:03:23", "url": "https://files.pythonhosted.org/packages/55/fd/799805427fd3844c0424d956150dde787bd4e8f989f4a83a42982eab29c6/django_email_confirm_la-2.3.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4a2231570613886c22348780ee95f81b", "sha256": "1ef54d2a86d744ad428d0ebfa4edf90d749b63e6bb6c503aed655b7bbe824c14" }, "downloads": -1, "filename": "django-email-confirm-la-2.3.0.tar.gz", "has_sig": false, "md5_digest": "4a2231570613886c22348780ee95f81b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15073, "upload_time": "2016-09-09T14:03:19", "url": "https://files.pythonhosted.org/packages/92/ee/308ed45c688ef6ffb286d16c4651568264672ac6e34ffd82a10cc41ff3f9/django-email-confirm-la-2.3.0.tar.gz" } ], "2.3.1": [ { "comment_text": "", "digests": { "md5": "ca2c88da6548076beba17caa405dc29f", "sha256": "08662bd8bf45639acd28637c6d2d55b50416bc6a5a598852d85f4e1c62310697" }, "downloads": -1, "filename": "django_email_confirm_la-2.3.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "ca2c88da6548076beba17caa405dc29f", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 23381, "upload_time": "2017-07-14T06:33:02", "url": "https://files.pythonhosted.org/packages/e0/50/7e1c39d30fc0f752e86eed36e0ba76ff69df819b20b8f492908075d6a8b2/django_email_confirm_la-2.3.1-py2.py3-none-any.whl" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "ca2c88da6548076beba17caa405dc29f", "sha256": "08662bd8bf45639acd28637c6d2d55b50416bc6a5a598852d85f4e1c62310697" }, "downloads": -1, "filename": "django_email_confirm_la-2.3.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "ca2c88da6548076beba17caa405dc29f", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 23381, "upload_time": "2017-07-14T06:33:02", "url": "https://files.pythonhosted.org/packages/e0/50/7e1c39d30fc0f752e86eed36e0ba76ff69df819b20b8f492908075d6a8b2/django_email_confirm_la-2.3.1-py2.py3-none-any.whl" } ] }