class OrganizationSignup(FormView): """View that allows unregistered users to create an organization account. It simply processes the form and then calls the specified registration backend. """ form_class = SignUpForm template_name = "organizations/signup_form.html" # TODO get success from backend, because some backends may do something # else, like require verification backend = registration_backend() def dispatch(self, request, *args, **kwargs): if request.user.is_authenticated(): return redirect('organization_add') return super(OrganizationSignup, self).dispatch(request, *args, **kwargs) def get_success_url(self): if hasattr(self, 'success_url'): return self.success_url return reverse('organization_signup_success') def form_valid(self, form): """ """ user = self.backend.register_by_email(form.cleaned_data['email']) create_organization(user=user, name=form.cleaned_data['name'], slug=form.cleaned_data['slug'], is_active=False) return redirect(self.get_success_url())
class OrganizationSignup(FormView): """ View that allows unregistered users to create an organization account. It simply processes the form and then calls the specified registration backend. """ form_class = SignUpForm template_name = "organizations/signup_form.html" # TODO get success from backend, because some backends may do something # else, like require verification backend = registration_backend() def dispatch(self, request, *args, **kwargs): if request.user.is_authenticated: return redirect("organization_add") return super().dispatch(request, *args, **kwargs) def get_success_url(self): if getattr(self, "success_url", None): return self.success_url raise ImproperlyConfigured( "{cls} must either have a `success_url` attribute defined" "or override `get_success_url`".format( cls=self.__class__.__name__)) def form_valid(self, form): """ Register user and create the organization """ user = self.backend.register_by_email(form.cleaned_data["email"]) create_organization( user=user, name=form.cleaned_data["name"], slug=form.cleaned_data["slug"], is_active=False, ) return redirect(self.get_success_url())
from django.conf.urls import include, url from django.contrib import admin from organizations.backends import invitation_backend, registration_backend admin.autodiscover() urlpatterns = [ url(r'^admin/', include(admin.site.urls)), url(r'^organizations/', include('organizations.urls')), url(r'^invite/', include(invitation_backend().get_urls())), url(r'^register/', include(registration_backend().get_urls())), ]
def test_backend_definition(self): from organizations.backends import registration_backend self.assertTrue(isinstance(registration_backend(), RegistrationBackend))
# -*- coding: utf-8 -*- from django.conf.urls import include, url from django.contrib import admin from organizations.backends import invitation_backend, registration_backend urlpatterns = [ url(r'^admin/', admin.site.urls), url(r'^organizations/', include('organizations.urls')), url(r'^invite/', include(invitation_backend().get_urls())), url(r'^register/', include(registration_backend().get_urls())), ]
from django.contrib import admin from django.contrib.staticfiles.urls import staticfiles_urlpatterns from django.urls import include from django.urls import path from organizations.backends import invitation_backend from organizations.backends import registration_backend admin.autodiscover() urlpatterns = [ path("admin/", admin.site.urls), path("organizations/", include("organizations.urls")), path("invite/", include(invitation_backend().get_urls())), path("register/", include(registration_backend().get_urls())), path("accounts/", include("test_accounts.urls", namespace="test_accounts")), ] + staticfiles_urlpatterns()
from django.conf.urls import include, url from django.contrib import admin from django.urls import path from organizations.backends import invitation_backend, registration_backend from vendors.views import home, LoginView, LogOutView urlpatterns = [ path("", home, name="home"), path("admin/", admin.site.urls), path("organizations/", include("organizations.urls")), path("invite/", include(invitation_backend().get_urls())), path("register/", include(registration_backend().get_urls()), name="register"), path("login/", LoginView.as_view(), name='login'), path("logout/", LogOutView.as_view(), name='logout'), ]