{ "info": { "author": "kaleissin", "author_email": "kaleissin@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Environment :: Web Environment", "Framework :: Django", "Framework :: Django :: 1.11", "Framework :: Django :: 2.0", "Framework :: Django :: 2.1", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Topic :: Software Development :: Libraries :: Application Frameworks", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "===================\ndjango-verification\n===================\n\nGeneralized app for two-step verification.\n\nSupports Python 2.7, 3.5, 3.6, 3.7; Django 1.8 and Django 1.11.\n\nInstallation\n============\n\n1. Install the library, for instance with pip::\n\n pip install django-verification\n\n2. Add the library to your INSTALLED_APPS of an exiting project::\n\n INSTALLED_APPS += ['verification']\n\n3. Add the tables to the existing project::\n\n python manage.py migrate verification\n\nUpgrade\n=======\n\nTo 0.4.1 (needs Django 1.7+)::\n\n python manage.py migrate --fake verification 0001_initial\n\nDemo\n====\n\nCopy the entire django-verification directory somewhere, set up and enter a\nvirtualenv, then provided you are on some Un*x::\n\n make demo\n\nThis'll automatically make a user \"admin\" with the password \"demo\".\n\nThe demo should now be running on http://127.0.0.1/\n\nRunning `make demo` again will erase the database from the previous run.\n\nTests\n=====\n\nTo run the tests, first install the testing-requirements::\n\n pip install -r requirements/test.txt\n\nthen run the tests with::\n\n make test APP=verification\n\nUsage\n=====\n\nCreate a KeyGroup. KeyGroups hold the config for your Keys, so you might want\nto make fixtures of them.\n\n.. code-block:: python\n\n from verification.models import KeyGroup\n\n keygroup = KeyGroup(\n name='activate_account', # Unique\n generator='sha1', # See verification.generators\n )\n\nCreate a Key on some event, for instance when a user clicks a button:\n\n.. code-block:: python\n\n from verification.models import Key\n\n Key.generate(group=keygroup)\n\nSet Key.send_func to some callable:\n\n.. code-block:: python\n\n from django.core.mail import send_mail\n\n # In this minimal example, the contents of the email is created earlier\n def email_key(recipient, content):\n subject = \"Activate account on FooBlog\"\n recipient = ''.join(recipient.strip().split())\n # Use any kind of messaging-system here\n send_mail(subject, content, 'noreply@example.com', [recipient])\n\n key.send_func = email_key\n\nChoose the claim-view, make the content of the email, send it with\nkey.send_key():\n\n.. code-block:: python\n\n from django.core.urlresolvers import reverse\n\n activate_url = reverse('verification-claim-post-url',\n kwargs={'key': key, 'group': key.group})\n content = \"Click on %s to activate your account on FooBlog!\" % activate_url\n recipient = 'john.oe@example.com'\n\n key.send_key(recipient, content)\n\nHook the ``key_claimed``-signal in order to do something after the key is claimed:\n\n.. code-block:: python\n\n from django.dispatch import receiver\n\n from verification.signals import key_claimed\n\n @receiver(key_claimed)\n def user_created_key_claimed(sender, **kwargs):\n claimant = kwargs['claimant']\n claimant.is_active = True\n claimant.save()\n\n:Version: 1.0.0\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/kaleissin/django-verification", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "django-verification", "package_url": "https://pypi.org/project/django-verification/", "platform": "any", "project_url": "https://pypi.org/project/django-verification/", "project_urls": { "Homepage": "https://github.com/kaleissin/django-verification" }, "release_url": "https://pypi.org/project/django-verification/1.0.0/", "requires_dist": [ "Django (<2.2,>=1.11)" ], "requires_python": "", "summary": "Generalized app for two-step verification", "version": "1.0.0" }, "last_serial": 4527114, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "0f7448557073c41d14215cfc3ecc7277", "sha256": "de147ff43458215567e863b1fd251db1743fce760f7a195c88cd5146b6f67457" }, "downloads": -1, "filename": "django-verification-0.1.tar.gz", "has_sig": false, "md5_digest": "0f7448557073c41d14215cfc3ecc7277", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11103, "upload_time": "2014-03-28T08:04:20", "url": "https://files.pythonhosted.org/packages/d7/ec/354c3499331db0fc7f10f0cd95b84176efe4a833ff7d6926abef8779c335/django-verification-0.1.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "471691d66d6c4cd24b8874dca63e8576", "sha256": "cc5e825d279b2b0127e987a5964760e704fdd20c33696bf3280e88ea04cebe09" }, "downloads": -1, "filename": "django-verification-0.1.1.tar.gz", "has_sig": false, "md5_digest": "471691d66d6c4cd24b8874dca63e8576", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11159, "upload_time": "2014-04-04T09:01:12", "url": "https://files.pythonhosted.org/packages/e8/40/2321ea6b60718e2e6c76f23d7faea46382157b51482e23ac4ff3f8ef1ed9/django-verification-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "961a1f1a5a220e33e126ef20f180326f", "sha256": "e946370928c6748030f5d43c5ea2e45392c88a9525c45b1e31584b6373a3f251" }, "downloads": -1, "filename": "django-verification-0.1.2.tar.gz", "has_sig": false, "md5_digest": "961a1f1a5a220e33e126ef20f180326f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11571, "upload_time": "2014-04-04T13:47:55", "url": "https://files.pythonhosted.org/packages/8e/4b/1dd58a15c8af040503ecc99bc1c0aa238cadc976664845c88ee425585809/django-verification-0.1.2.tar.gz" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "e04a8b372b02f768e52d02bb65f64f99", "sha256": "66e26adc6aafdca4abde0c90adc47b9aac100f5bb040abb3e0bdaa0471104662" }, "downloads": -1, "filename": "django-verification-0.1.3.tar.gz", "has_sig": false, "md5_digest": "e04a8b372b02f768e52d02bb65f64f99", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11783, "upload_time": "2014-05-06T09:21:33", "url": "https://files.pythonhosted.org/packages/71/46/283c420c3a03553c17708ac65108cbcd871f9ce60acfc5d5c3fd619c8dae/django-verification-0.1.3.tar.gz" } ], "0.1.4": [ { "comment_text": "", "digests": { "md5": "36a7e4ce59bd84e7d562a05376a18f4e", "sha256": "ceb5056990eb4e6e0c5f6366a35b57ecdb54847403ac6291164708b987313eb2" }, "downloads": -1, "filename": "django-verification-0.1.4.tar.gz", "has_sig": false, "md5_digest": "36a7e4ce59bd84e7d562a05376a18f4e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11835, "upload_time": "2014-05-13T13:45:57", "url": "https://files.pythonhosted.org/packages/70/e4/9b6e9ec2ff6f92877b8dfe471182d8ed6b03a1795cb2bf09eafa9317d546/django-verification-0.1.4.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "07514e1c0ece1984d768fc880bf3a852", "sha256": "dcd10ede1e74e76e39179f0bf00a4e927b00d1d127915194af0eb622f05f9167" }, "downloads": -1, "filename": "django-verification-0.2.0.tar.gz", "has_sig": false, "md5_digest": "07514e1c0ece1984d768fc880bf3a852", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12364, "upload_time": "2014-06-27T12:04:39", "url": "https://files.pythonhosted.org/packages/05/a5/16b3b7a7534a71df68f841bab0554f5446c2ac71516bbc93d3fa8f59d4de/django-verification-0.2.0.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "b401b7e429a39281fc99a36111bcaf9d", "sha256": "cc906f117066127e07d19dd11cfdb6291a0fceb1f98c55eea8815789bc505519" }, "downloads": -1, "filename": "django-verification-0.3.0.tar.gz", "has_sig": false, "md5_digest": "b401b7e429a39281fc99a36111bcaf9d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12348, "upload_time": "2014-06-30T09:36:59", "url": "https://files.pythonhosted.org/packages/6e/74/e6d99d1cf37b42fba1da28989c8c0a8a5da1f6255d8561f76001ea6d6f1c/django-verification-0.3.0.tar.gz" } ], "0.3.1": [ { "comment_text": "", "digests": { "md5": "c1d5470b6b011fa5ba5d0b6ab4ec5ab8", "sha256": "1ae56019794e16f42c61bec9cb5e8b916781dc34d63098644abf99c6a3e329f3" }, "downloads": -1, "filename": "django-verification-0.3.1.tar.gz", "has_sig": false, "md5_digest": "c1d5470b6b011fa5ba5d0b6ab4ec5ab8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12339, "upload_time": "2014-07-29T08:30:50", "url": "https://files.pythonhosted.org/packages/0c/eb/f01258166dcb4e7a8fa8a14bc422927912ae94da6a30b1a8059c35c5e7d4/django-verification-0.3.1.tar.gz" } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "9ce6886dc352089994c39502255f338a", "sha256": "f7396cbc23af9bc1de78904079fc8a0a87ac1a287e56effae0df62f5cf922348" }, "downloads": -1, "filename": "django_verification-0.4.0-py2-none-any.whl", "has_sig": false, "md5_digest": "9ce6886dc352089994c39502255f338a", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 14601, "upload_time": "2015-03-15T20:52:10", "url": "https://files.pythonhosted.org/packages/7b/a1/08b1fd36272f15b28bdc1e44fb4d3a1cb047ffe68928393ace2f9579683b/django_verification-0.4.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "cccbc19e5c4421d643803d72c17023b3", "sha256": "f46c2f6d03e8f0a9425965c95a03ee7c8c1bfc37a4f65de908c470d455c29986" }, "downloads": -1, "filename": "django-verification-0.4.0.tar.gz", "has_sig": false, "md5_digest": "cccbc19e5c4421d643803d72c17023b3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10496, "upload_time": "2015-03-15T20:52:13", "url": "https://files.pythonhosted.org/packages/41/1c/6bc8ddda022d7b186ed5eed41ce34711d60dd090c0162b8fe96f8955648f/django-verification-0.4.0.tar.gz" } ], "0.4.1": [ { "comment_text": "", "digests": { "md5": "cc6ffce9d679dd4bf31e57ff59c69fa9", "sha256": "a2cfd8e7d8fdfb724786eecac36959d0d72f0fdefb9771da3a0a7884a7e9944d" }, "downloads": -1, "filename": "django_verification-0.4.1-py2-none-any.whl", "has_sig": false, "md5_digest": "cc6ffce9d679dd4bf31e57ff59c69fa9", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 15641, "upload_time": "2016-06-13T19:06:19", "url": "https://files.pythonhosted.org/packages/92/4d/00f3ff98b4eeafcd6f21fc6b2372aef57028c5f7c2f0585144c06cd392a9/django_verification-0.4.1-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "991a78675cfa2f0c57b3c736556687fd", "sha256": "2af8aa686f9dad823254d236d86c41a9c7a8645ac5934b2cd5339dfb193fdf3e" }, "downloads": -1, "filename": "django-verification-0.4.1.tar.gz", "has_sig": false, "md5_digest": "991a78675cfa2f0c57b3c736556687fd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10979, "upload_time": "2016-06-13T19:06:30", "url": "https://files.pythonhosted.org/packages/64/cd/b45cc5eb7519a68ed73f7e9b14e3f487bb62b423d5d398ff4f38144d80e6/django-verification-0.4.1.tar.gz" } ], "0.5.1": [ { "comment_text": "", "digests": { "md5": "0ac0f74d98a083fd4b9375ec0c79b624", "sha256": "864c540ded55a134c9570201ae00f2444a9e7c90c9738c10c5540d8f46b8cae4" }, "downloads": -1, "filename": "django_verification-0.5.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "0ac0f74d98a083fd4b9375ec0c79b624", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 15878, "upload_time": "2018-10-09T12:12:36", "url": "https://files.pythonhosted.org/packages/67/68/ace5bf66e470a4a945d12b7b1192ee767bbf7c077e800f9e7af979e5880f/django_verification-0.5.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "1ba40f79ec4e50d031b829c8f8d3199e", "sha256": "7c58f50dec0646f4d4cc2a3699ed00328037f95ecd76da62ada490e59fef4443" }, "downloads": -1, "filename": "django-verification-0.5.1.tar.gz", "has_sig": false, "md5_digest": "1ba40f79ec4e50d031b829c8f8d3199e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10611, "upload_time": "2018-10-09T12:12:37", "url": "https://files.pythonhosted.org/packages/20/e3/59660a8f4820476d4f3fccae00a0c381d14ea37acc16728add3e3e72d54b/django-verification-0.5.1.tar.gz" } ], "0.5.2": [ { "comment_text": "", "digests": { "md5": "2fa4e1963ee52737f0879392d56f5099", "sha256": "cd0e63d96e1c638c8b61e38fcb926340a8b9e76374e17a7ae32efb915cadaa55" }, "downloads": -1, "filename": "django_verification-0.5.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "2fa4e1963ee52737f0879392d56f5099", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 13622, "upload_time": "2018-11-25T21:33:16", "url": "https://files.pythonhosted.org/packages/7b/fd/67cb10c8a54c9770dc4ee0a964baec3d2db3d9d6d30d7a7afd77e8cfeeb2/django_verification-0.5.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "377fd2747d3af5dcf08aef847ff695b8", "sha256": "845c6fc82796544e17b6456a88dda745fe2454d38992c08bbef0fe4612562b45" }, "downloads": -1, "filename": "django-verification-0.5.2.tar.gz", "has_sig": false, "md5_digest": "377fd2747d3af5dcf08aef847ff695b8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11215, "upload_time": "2018-11-25T21:33:18", "url": "https://files.pythonhosted.org/packages/fb/3d/274a09d80869d38d77887742d65a2bb86ece26eb80e268212e97dadc439a/django-verification-0.5.2.tar.gz" } ], "1.0.0": [ { "comment_text": "", "digests": { "md5": "a7ea205024e667c67157f3dab3d24c14", "sha256": "7014bc74885b2b43a57ab5c4290e1d41c4d7f2494fe9d8330ff63a5ddadb335c" }, "downloads": -1, "filename": "django_verification-1.0.0-py3-none-any.whl", "has_sig": false, "md5_digest": "a7ea205024e667c67157f3dab3d24c14", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 13797, "upload_time": "2018-11-25T21:43:45", "url": "https://files.pythonhosted.org/packages/4d/40/b4a257e2692c7b1951d34983ffbc09816b2f07e7c92aefe9db261b00d07d/django_verification-1.0.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2b5e891f499dac896dcb7b1103b1968b", "sha256": "04cd8e3390d3d9560931df0d131456beebc4b5d6e52ee4a5005247032e9b0acf" }, "downloads": -1, "filename": "django-verification-1.0.0.tar.gz", "has_sig": false, "md5_digest": "2b5e891f499dac896dcb7b1103b1968b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11343, "upload_time": "2018-11-25T21:43:47", "url": "https://files.pythonhosted.org/packages/a9/5b/e922c5406b46c9d934e293e759a01e920375388a67eb2cb62ea8de79b1fd/django-verification-1.0.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "a7ea205024e667c67157f3dab3d24c14", "sha256": "7014bc74885b2b43a57ab5c4290e1d41c4d7f2494fe9d8330ff63a5ddadb335c" }, "downloads": -1, "filename": "django_verification-1.0.0-py3-none-any.whl", "has_sig": false, "md5_digest": "a7ea205024e667c67157f3dab3d24c14", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 13797, "upload_time": "2018-11-25T21:43:45", "url": "https://files.pythonhosted.org/packages/4d/40/b4a257e2692c7b1951d34983ffbc09816b2f07e7c92aefe9db261b00d07d/django_verification-1.0.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2b5e891f499dac896dcb7b1103b1968b", "sha256": "04cd8e3390d3d9560931df0d131456beebc4b5d6e52ee4a5005247032e9b0acf" }, "downloads": -1, "filename": "django-verification-1.0.0.tar.gz", "has_sig": false, "md5_digest": "2b5e891f499dac896dcb7b1103b1968b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11343, "upload_time": "2018-11-25T21:43:47", "url": "https://files.pythonhosted.org/packages/a9/5b/e922c5406b46c9d934e293e759a01e920375388a67eb2cb62ea8de79b1fd/django-verification-1.0.0.tar.gz" } ] }