Package: summit.debconf.org
Severity: wishlist
Tags: patch

Please canonicalise meeting URLs with HTTP 301.

This will not only correctly redirect if the name changes, it also
avoids
"embarrassing" URLs such as:

 https://summit.debconf.org/debconf15/meeting/183/boring-and-tedious-talk

Patch attached.


Regards,

-- 
      ,''`.
     : :'  :     Chris Lamb
     `. `'`      la...@debian.org / chris-lamb.co.uk
       `-
From ac27076470b2be01c2e07359986207dac8c63ab4 Mon Sep 17 00:00:00 2001
From: Chris Lamb <la...@debian.org>
Date: Thu, 30 Jul 2015 13:11:39 +0100
Subject: [PATCH] Canonicalise meeting URLs with HTTP 301

This will not only correctly redirect if the name changes, it also avoids
"embarrassing" URLs such as:

 https://summit.debconf.org/debconf15/meeting/183/boring-and-tedious-talks

Signed-off-by: Chris Lamb <la...@debian.org>
---
 summit/schedule/views.py | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/summit/schedule/views.py b/summit/schedule/views.py
index 595dc3f..ed28c17 100644
--- a/summit/schedule/views.py
+++ b/summit/schedule/views.py
@@ -18,7 +18,7 @@ import datetime
 
 from django.db.models import Q
 from django.contrib.auth import logout
-from django.http import Http404, HttpResponse, HttpResponseRedirect
+from django.http import Http404, HttpResponse, HttpResponseRedirect, HttpResponsePermanentRedirect
 from django.shortcuts import render_to_response, get_object_or_404
 from django.template import RequestContext
 from django.core.urlresolvers import reverse
@@ -457,6 +457,9 @@ def tracks(request, summit):
 @summit_required
 def meeting(request, summit, attendee, meeting_id, meeting_slug):
     meeting = get_object_or_404(summit.meeting_set, id=meeting_id)
+    # Canonicalise
+    if meeting_slug != meeting.slug:
+        return HttpResponsePermanentRedirect(meeting.get_meeting_page_url())
     if meeting.private and not meeting.can_view_pm(attendee):
         raise Http404
     return _show_meeting(request, summit, meeting, attendee)
-- 
2.1.4

Reply via email to