updated login mechanism

This commit is contained in:
Arthur Gerbaud
2016-11-16 20:04:00 +01:00
parent 96f013041b
commit 673c620be0
3 changed files with 23 additions and 20 deletions

View File

@@ -4,40 +4,32 @@ from django import views
from .mixins import WebsiteTemplateMixin
from django.contrib.auth.views import login
from django.http import HttpResponseRedirect
from django.http import HttpResponseRedirect, HttpResponsePermanentRedirect
class Index(WebsiteTemplateMixin, views.generic.TemplateView):
template_name = "main.html"
app_menu = None
login_response = None
class PageInfo:
title = "La maraude ALSA"
header = "La Maraude ALSA"
header_small = "accueil"
def dispatch(self, request, *args, **kwargs):
self.user = request.user
self.login_response = login(request)
return super().dispatch(request, *args, **kwargs)
def _get_user_entry_point(self):
# Should find best entry point according to user Group
return reverse('maraudes:index')
def post(self, request, *args, **kwargs):
if hasattr(self.login_response, 'url') and 'next' in self.request.POST:
return self.login_response
return self.get(request, *args, **kwargs)
def get(self, request, *args, **kwargs):
if request.user.is_authenticated():
return redirect(self._get_user_entry_point())
return super().get(request, *args, **kwargs)
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
context.update(self.login_response.context_data)
return context
def login_view(request):
if request.method == 'GET':
return HttpResponsePermanentRedirect('/')
elif request.method == 'POST':
response = login(request)
return HttpResponseRedirect('/')