diff --git a/website/templates/navbar.html b/website/templates/navbar.html index fada0f9..7c7c86f 100644 --- a/website/templates/navbar.html +++ b/website/templates/navbar.html @@ -28,13 +28,23 @@
  • {% bootstrap_icon "log-out" %} Déconnecter
  • {% else %}
  • - diff --git a/website/urls.py b/website/urls.py index 2bcc8d6..124beea 100644 --- a/website/urls.py +++ b/website/urls.py @@ -2,14 +2,15 @@ from django.conf.urls import include, url from django.contrib.auth import views as auth_views -from .views import Index +from .views import Index, login_view from maraudes import urls as maraudes_urls from suivi import urls as suivi_urls from sujets import urls as sujets_urls urlpatterns = [ # Authentification - url('^$', Index.as_view(), name="index"), + url(r'^$', Index.as_view(), name="index"), + url(r'^login/$', login_view), url(r'^logout/$', auth_views.logout, { 'template_name': 'logout.html', 'next_page': 'index', diff --git a/website/views.py b/website/views.py index 3809465..7637126 100644 --- a/website/views.py +++ b/website/views.py @@ -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('/')