Per-client ICS calendar feed, replacing the shared ICS_TOKEN (#22)
Test backoffice (smb-crm) / test (push) Has been cancelled

Each client now gets their own clients.ics_token (lazily generated on
first /owner/settings visit), which both authenticates and scopes
/api/bookings.ics -- closing the gap where any shared-token holder
could view another client's bookings by swapping the client_id query
param. The owner settings page now surfaces a copyable subscribe URL.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
2026-08-04 11:55:35 +02:00
parent 319218ce21
commit 24d9aca812
9 changed files with 196 additions and 20 deletions
@@ -155,6 +155,13 @@
</form>
</section>
<section>
<h2>Kalender-Abo</h2>
<p class="muted">Diese Adresse in Apple/Google Kalender als Abo hinzufügen, um Ihre eigenen
Termine automatisch angezeigt zu bekommen.</p>
<input type="text" value="{{ ics_url }}" readonly onclick="this.select()" style="width:100%;" />
</section>
<p class="muted"><a href="{{ url_for('owner_auth.dashboard') }}">Zurück</a></p>
</body>
</html>