{ "info": { "author": "Julian Perelli", "author_email": "jperelli@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Framework :: Django", "Intended Audience :: Developers", "License :: OSI Approved :: BSD License", "Operating System :: OS Independent", "Programming Language :: Python", "Topic :: Internet :: WWW/HTTP" ], "description": "=============================\ndjango-class-based-auth-views\n=============================\n\nrelated packages\n================\n\n* `django-password-reset `_ has class based views to reset\n forgotten passwords by email confirmation.\n\n\nA reimplementation of ``django.contrib.auth.views`` as class based views. Hopefully at some point this project or\nsomething similar will make it into django proper.\n\nCurrently ``LoginView`` and ``LogoutView`` are implemented.\n\n\nInstallation\n============\n\n::\n\n pip install django-class-based-auth-views\n\n\nBasic usage\n===========\n\nInstead of including ``django.contrib.auth.login`` into your ``urls.py``, just use the one provided by this project.\n``urls.py``::\n\n from class_based_auth_views.views import LoginView, LogoutView\n urlpatterns = patterns('',\n url(r'^login/$', LoginView.as_view(form_class=EmailAsUsernameAuthenticationForm), name=\"login\"),\n url(r'^logout/$', LogoutView.as_view(), name=\"logout\"),\n )\n\n\nBe aware that the logout view requires a ``POST`` to actually logout. So the ``registration/logout.html`` template\nshould contain a form with a submit button.\n\n\nExtending LoginView Example\n===========================\n\nNow that LoginView is based on generic class based views it is much easier to extend. Say you need to implement a\n2 step login procedure with a one time password::\n\n\n from django.contrib.auth import login\n\n class PhaseOneLoginView(LoginView):\n def form_valid(self, form):\n \"\"\"\n Forces superusers to login in a 2 step process (One Time Password). Other users are logged in normally\n \"\"\"\n user = form.get_user()\n if user.is_superuser:\n self.save_user(user)\n return HttpResponseRedirect(self.get_phase_two_url())\n else:\n login(self.request, user)\n return HttpResponseRedirect(self.get_success_url())\n\n def get_phase_two_url(self):\n return reverse('phase_two_login')\n\n def save_user(self, user):\n self.request.session['otp_user'] = user\n\n\n class PhaseTwoLoginView(FormView):\n form_class = OTPTokenForm\n\n def get_user(self):\n return self.request.session.get('otp_user', None)\n\n def clean_user(self):\n if 'otp_user' in self.request.session:\n del self.request.session['otp_user']\n\n def form_valid(self, form):\n code = form.cleaned_data.get('code')\n user = self.get_user()\n login(request, user)", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://github.com/jperelli/django-class-based-auth-views", "keywords": null, "license": "BSD", "maintainer": null, "maintainer_email": null, "name": "django-class-based-auth-views-jp", "package_url": "https://pypi.org/project/django-class-based-auth-views-jp/", "platform": "OS Independent", "project_url": "https://pypi.org/project/django-class-based-auth-views-jp/", "project_urls": { "Download": "UNKNOWN", "Homepage": "http://github.com/jperelli/django-class-based-auth-views" }, "release_url": "https://pypi.org/project/django-class-based-auth-views-jp/0.3.1/", "requires_dist": null, "requires_python": null, "summary": "A reimplementation of django.contrib.auth.views as class based views.", "version": "0.3.1" }, "last_serial": 1952309, "releases": { "0.3.1": [ { "comment_text": "", "digests": { "md5": "bc90dbf1fdd0959cf5fb1fd0d25e342a", "sha256": "a6bfba975fa274c469fd222906b6dd441dad613ae307370540488a685bccb690" }, "downloads": -1, "filename": "django-class-based-auth-views-jp-0.3.1.tar.gz", "has_sig": false, "md5_digest": "bc90dbf1fdd0959cf5fb1fd0d25e342a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5077, "upload_time": "2016-02-12T04:05:10", "url": "https://files.pythonhosted.org/packages/a9/29/3d60b17af55c1bce11259736ae86ad2ced58bf79b07eb96e175a1619c1ed/django-class-based-auth-views-jp-0.3.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "bc90dbf1fdd0959cf5fb1fd0d25e342a", "sha256": "a6bfba975fa274c469fd222906b6dd441dad613ae307370540488a685bccb690" }, "downloads": -1, "filename": "django-class-based-auth-views-jp-0.3.1.tar.gz", "has_sig": false, "md5_digest": "bc90dbf1fdd0959cf5fb1fd0d25e342a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5077, "upload_time": "2016-02-12T04:05:10", "url": "https://files.pythonhosted.org/packages/a9/29/3d60b17af55c1bce11259736ae86ad2ced58bf79b07eb96e175a1619c1ed/django-class-based-auth-views-jp-0.3.1.tar.gz" } ] }