def register(request): ''' join the server ''' if request.method == 'GET': return redirect('/login') if not models.SiteSettings.get().allow_registration: invite_code = request.POST.get('invite_code') if not invite_code: raise PermissionDenied try: invite = models.SiteInvite.objects.get(code=invite_code) except models.SiteInvite.DoesNotExist: raise PermissionDenied else: invite = None form = forms.RegisterForm(request.POST) if not form.is_valid(): return redirect('/register/') username = form.data['username'] email = form.data['email'] password = form.data['password'] user = models.User.objects.create_user(username, email, password) if invite: invite.times_used += 1 invite.save() login(request, user) return redirect('/')
def login_page(request): ''' authentication ''' # send user to the login page data = { 'login_form': forms.LoginForm(), 'register_form': forms.RegisterForm(), } return TemplateResponse(request, 'login.html', data)
def register(request): ''' join the server ''' if request.method == 'GET': form = forms.RegisterForm() return TemplateResponse(request, 'register.html', {'register_form': form}) form = forms.RegisterForm(request.POST) if not form.is_valid(): return redirect('/register/') username = form.data['username'] email = form.data['email'] password = form.data['password'] user = models.User.objects.create_user(username, email, password) login(request, user) return redirect('/')
def login_page(request): ''' authentication ''' # send user to the login page data = { 'site_settings': models.SiteSettings.get(), 'login_form': forms.LoginForm(), 'register_form': forms.RegisterForm(), } return TemplateResponse(request, 'login.html', data)
def invite_page(request, code): ''' Handle invites. ''' try: invite = models.SiteInvite.objects.get(code=code) if not invite.valid(): raise PermissionDenied except models.SiteInvite.DoesNotExist: raise PermissionDenied data = { 'site_settings': models.SiteSettings.get(), 'register_form': forms.RegisterForm(), 'invite': invite, } return TemplateResponse(request, 'invite.html', data)
def user_login(request): ''' authenticate user login ''' if request.method == 'GET': return redirect('/login') register_form = forms.RegisterForm() login_form = forms.LoginForm(request.POST) if not login_form.is_valid(): return TemplateResponse(request, 'login.html', { 'login_form': login_form, 'register_form': register_form }) username = login_form.data['username'] username = '******' % (username, DOMAIN) password = login_form.data['password'] user = authenticate(request, username=username, password=password) if user is not None: login(request, user) return redirect(request.GET.get('next', '/')) return TemplateResponse(request, 'login.html', { 'login_form': login_form, 'register_form': register_form })