aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Schadt <kingdread@gmx.de>2025-12-28 21:50:28 +0100
committerDaniel Schadt <kingdread@gmx.de>2025-12-30 19:16:32 +0100
commit8dbdfd8c042dcb8b4640e989077cc308d1879cc6 (patch)
tree494090f7f465d07d4f7e419a9e9fedf1566d0c96
parentaeab3749f487755001d11c20c714cf6f6d82e53f (diff)
downloadfietsboek-8dbdfd8c042dcb8b4640e989077cc308d1879cc6.tar.gz
fietsboek-8dbdfd8c042dcb8b4640e989077cc308d1879cc6.tar.bz2
fietsboek-8dbdfd8c042dcb8b4640e989077cc308d1879cc6.zip
make journey link secrets work
-rw-r--r--fietsboek/templates/journey_details.jinja24
-rw-r--r--fietsboek/views/journey.py12
2 files changed, 16 insertions, 0 deletions
diff --git a/fietsboek/templates/journey_details.jinja2 b/fietsboek/templates/journey_details.jinja2
index 0133ed8..b669f13 100644
--- a/fietsboek/templates/journey_details.jinja2
+++ b/fietsboek/templates/journey_details.jinja2
@@ -56,7 +56,11 @@
</div>
{% endif %}
+ {% if 'secret' in request.GET %}
+ {% set gpx_url = request.route_path("journey-gpx", journey_id=journey.id, _query=[('secret', request.GET['secret'])]) %}
+ {% else %}
{% set gpx_url = request.route_path("journey-gpx", journey_id=journey.id) %}
+ {% endif %}
<div id="mainmap" class="gpxview:{{ gpx_url }}:OSM" style="width:100%;height:600px">
<noscript><p>{{ _("page.noscript") }}<p></noscript>
</div>
diff --git a/fietsboek/views/journey.py b/fietsboek/views/journey.py
index 75381a9..60ed433 100644
--- a/fietsboek/views/journey.py
+++ b/fietsboek/views/journey.py
@@ -98,6 +98,7 @@ def do_journey_new(request: Request):
title=request.params.get("journeyTitle"),
description=request.params.get("journeyDescription"),
visibility=_extract_visibility(request),
+ link_secret=util.random_link_secret(),
tracks=[],
)
@@ -184,3 +185,14 @@ def do_journey_delete(request: Request):
request.dbsession.delete(journey)
request.session.flash(request.localizer.translate(_("journeys.deleted")))
return HTTPFound(request.route_url("journey-list"))
+
+
+@view_config(
+ route_name="journey-invalidate-share",
+ permission="journey.edit",
+ request_method="POST",
+)
+def do_journey_invalidate_share(request: Request):
+ journey: Journey = request.context
+ journey.link_secret = util.random_link_secret()
+ return HTTPFound(request.route_url("journey-details", journey_id=journey.id))