Browse Source

Show secret management link after contrib submission

Jocelyn Delalande 7 years ago
parent
commit
868e62db9c

+ 13 - 0
wifiwithme/apps/contribmap/templates/contribmap/thanks.html

@@ -9,6 +9,19 @@
 <p>
 Votre contribution a bien été enregistrée.
 </p>
+
+<p>
+Pour la modifier ou la supprimer, conservez le lien suivant.
+
+<a href="{{ management_link }}">{{ management_link }}</a>
+</p>
+
+{% if contrib.email %}
+<p>
+    Ce lien vous a également été envoyé par email.
+</p>
+{% endif %}
+
 <p>
 Si vous voulez <strong>rester en
 contact</strong> avec {{ isp.NAME }}, nous rencontrer ou vous tenir informé, ça

+ 1 - 1
wifiwithme/apps/contribmap/urls.py

@@ -7,7 +7,7 @@ from .views import (
 urlpatterns = [
     url(r'^$', display_map, name='display_map'),
     url(r'^legal$', legal, name='legal'),
-    url(r'^contribute/thanks', thanks, name='thanks'),
+    url(r'^contribute/thanks/(?P<token>\w+)', thanks, name='thanks'),
     url(r'^contribute', add_contrib, name='add_contrib'),
     url(r'^manage/(?P<pk>\d+)', manage_contrib, name='manage_contrib'),
     url(r'^public.json$', PublicJSON.as_view(), name='public_json'),

+ 25 - 8
wifiwithme/apps/contribmap/views.py

@@ -29,13 +29,19 @@ def add_contrib(request):
 
         if form.is_valid():
             contrib = form.save()
+            mgmt_token = ContribTokenManager().mk_token(contrib)
+
+            context = {
+                'site_url': (settings.SITE_URL + reverse('display_map')
+                             + '#{}'.format(contrib.id)),
+                'contrib': contrib,
+                'management_link': contrib.make_management_url(
+                    mgmt_token, request),
+                'permalink': contrib.get_absolute_url(request),
+            }
+
             # Send notification email to site administrator
             if len(settings.NOTIFICATION_EMAILS) > 0:
-                context = {
-                    'contrib_url': settings.SITE_URL + reverse('display_map') + '#{}'.format(contrib.id),
-                    'contrib': contrib,
-                }
-                subject = get_template(
                 admin_subject = get_template(
                     'contribmap/mails/new_contrib_moderator_notice.subject')
                 admin_body = get_template(
@@ -47,7 +53,10 @@ def add_contrib(request):
                     settings.NOTIFICATION_EMAILS,
                 )
 
-            return redirect(reverse('thanks'))
+            return redirect(reverse('thanks', kwargs={
+                'token': mgmt_token,
+            }))
+
     return render(request, 'contribmap/wifi-form.html', {
         'form': form,
         'isp':settings.ISP,
@@ -130,9 +139,17 @@ def display_map(request):
     })
 
 
-def thanks(request):
+def thanks(request, token):
+    try:
+        contrib = ContribTokenManager().get_instance_if_allowed(token)
+    except TokenError:
+        return HttpResponseForbidden(
+            'Bad signature, or expired token')
+
     return render(request, 'contribmap/thanks.html', {
-        'isp':settings.ISP,
+        'isp': settings.ISP,
+        'management_link': contrib.make_management_url(token, request),
+        'contrib': contrib,
     })
 
 def legal(request):

+ 1 - 1
wifiwithme/static/main.css

@@ -1,4 +1,3 @@
-
 .main-header h1 a,
 .main-header h1 a:visited,
 .main-header h1 a:link {
@@ -21,6 +20,7 @@ body {
   position: relative;
   min-height: 1500px;
   padding-bottom: 200px;
+  font-size: auto;
 }