def login_view(request): username = password = '' # if already logged in if request.user.is_authenticated: return HttpResponseRedirect(reverse(STR_OPPIA_HOME)) if request.POST: form = LoginForm(request.POST) username = request.POST.get('username') password = request.POST.get('password') next_page = filter_redirect(request.POST) user = authenticate(username=username, password=password) if user is not None and user.is_active: login(request, user) if next_page is not None: parsed_uri = urlparse(next_page) if parsed_uri.netloc == '': return HttpResponseRedirect(next_page) else: return HttpResponseRedirect(reverse(STR_OPPIA_HOME)) else: return HttpResponseRedirect(reverse(STR_OPPIA_HOME)) else: form = LoginForm(initial={ 'next': filter_redirect(request.GET), }) return render(request, 'common/form/form.html', { 'username': username, 'form': form, 'title': _(u'Login') })
def register(request): self_register = SettingProperties \ .get_bool(constants.OPPIA_ALLOW_SELF_REGISTRATION, settings.OPPIA_ALLOW_SELF_REGISTRATION) if not self_register: raise Http404 if request.method == 'POST': # if form submitted... form = RegisterForm(request.POST) if form.is_valid(): # All validation rules pass # Create new user username = form.cleaned_data.get("username") password = form.cleaned_data.get("password") register_form_process(form) u = authenticate(username=username, password=password) if u is not None and u.is_active: login(request, u) return HttpResponseRedirect('thanks/') else: form = RegisterForm(initial={ 'next': filter_redirect(request.GET), }) return render(request, STR_COMMON_FORM, { 'form': form, 'title': _(u'Register') })
def form_valid(self, form): username = form.cleaned_data.get("username") password = form.cleaned_data.get("password") next_page = filter_redirect(self.request.POST) user = authenticate(username=username, password=password) if user is not None and user.is_active: login(self.request, user) if next_page is not None: parsed_uri = urlparse(next_page) if parsed_uri.netloc == '': return HttpResponseRedirect(next_page) return HttpResponseRedirect(reverse(STR_OPPIA_HOME))
def get_initial(self): return {'next': filter_redirect(self.request.GET) }