From 33a2f42b213513098cbfb3690280116ccac708bb Mon Sep 17 00:00:00 2001 From: jbergner Date: Tue, 21 Jul 2026 03:59:31 +0200 Subject: [PATCH] =?UTF-8?q?Updatze=20f=C3=BCr=20Texte=20(Privyca,Legal)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- internal/app/legal.go | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/internal/app/legal.go b/internal/app/legal.go index b8a26a1..df539ae 100644 --- a/internal/app/legal.go +++ b/internal/app/legal.go @@ -66,7 +66,7 @@ func imprintPage(cfg Config, lang string) legalPage { {Label: "Registernummer", Value: cfg.LegalRegisterNumber}, {Label: "Umsatzsteuer-ID", Value: cfg.LegalVATID}, }), - Paragraphs: []string{"Nur tatsächlich einschlägige Register-, Aufsichts- und Steuerangaben eintragen. Berufsrechtliche Pflichtangaben müssen bei reglementierten Berufen zusätzlich ergänzt werden."}, + Paragraphs: []string{"Es werden nur Daten angezeigt, wenn der Betreiber tatsächlich relevante Daten anzugeben hat. Die Software ist grundsätzlich nicht für gewinnorientiere Zwecke freigegeben."}, }, } if cfg.EditorialResponsibleName != "" || cfg.EditorialResponsibleAddress != "" { @@ -98,7 +98,7 @@ func imprintPage(cfg Config, lang string) legalPage { ) return legalPage{ Title: "Impressum", MetaDescription: "Anbieterkennzeichnung und Kontaktangaben.", Eyebrow: "Rechtliche Informationen", - Intro: "Betreiberangaben für diesen digitalen Dienst. Platzhalter müssen vor dem öffentlichen Produktivbetrieb durch zutreffende Angaben ersetzt werden.", + Intro: "Betreiberangaben für diesen digitalen Dienst.", Warning: legalWarning(missing, true), Sections: sections, LastUpdated: "20. Juli 2026", } } @@ -113,7 +113,7 @@ func imprintPage(cfg Config, lang string) legalPage { })}, {Title: "Registration and tax details", Fields: compactFields([]legalField{ {Label: "Register / court", Value: cfg.LegalRegister}, {Label: "Registration number", Value: cfg.LegalRegisterNumber}, {Label: "VAT ID", Value: cfg.LegalVATID}, - }), Paragraphs: []string{"Only include registration, supervisory and professional details that actually apply to the operator."}}, + }), Paragraphs: []string{"Data is only displayed if the operator actually has relevant data to provide. The software is generally not released for profit-oriented purposes."}}, } if cfg.EditorialResponsibleName != "" || cfg.EditorialResponsibleAddress != "" { sections = append(sections, legalSection{Title: "Editorial responsibility", Paragraphs: []string{"Responsible for journalistic-editorial content where applicable under German media law:"}, Fields: compactFields([]legalField{{Label: "Name", Value: cfg.EditorialResponsibleName}, {Label: "Address", Value: cfg.EditorialResponsibleAddress}})}) @@ -125,7 +125,7 @@ func imprintPage(cfg Config, lang string) legalPage { "The service creates technical transparency notices from the information supplied. It does not automatically determine whether a particular disclosure is legally required, complete or accurate.", "The publishing person or organisation remains responsible for declarations, editorial content and linked material.", }}) - return legalPage{Title: "Legal notice", MetaDescription: "Provider identification and contact details.", Eyebrow: "Legal information", Intro: "Operator information for this digital service. Replace all placeholders with accurate details before public production use.", Warning: legalWarning(missing, false), Sections: sections, LastUpdated: "20 July 2026"} + return legalPage{Title: "Legal notice", MetaDescription: "Provider identification and contact details.", Eyebrow: "Legal information", Intro: "Operator information for this digital service.", Warning: legalWarning(missing, false), Sections: sections, LastUpdated: "20 July 2026"} } func privacyPage(cfg Config, lang string) legalPage { @@ -190,18 +190,17 @@ func privacyPage(cfg Config, lang string) legalPage { { Title: "8. Sicherheit und Änderungen", Paragraphs: []string{ - "Die Anwendung verwendet unter anderem restriktive Browser-Sicherheitsrichtlinien, Größenlimits für JSON-Anfragen, sichere Standard-Containeroptionen und minimierte Protokollierung. TLS/HTTPS, Backups, Zugriffsschutz, Patch-Management, Monitoring und Löschfristen müssen zusätzlich in der Betriebsumgebung umgesetzt werden.", - "Diese Hinweise sind anzupassen, sobald Funktionen, Empfänger, Hosting, Protokollierung oder Rechtsgrundlagen geändert werden.", + "Die Anwendung verwendet unter anderem restriktive Browser-Sicherheitsrichtlinien, Größenlimits für JSON-Anfragen, sichere Standard-Containeroptionen und minimierte Protokollierung.", }, }, } - return legalPage{Title: "Datenschutzerklärung", MetaDescription: "Informationen zur Verarbeitung personenbezogener Daten.", Eyebrow: "Datenschutz", Intro: "Diese Vorlage beschreibt den technischen Standardzustand der Anwendung. Der tatsächliche Betreiber muss sie an Hosting, Logs, Verträge und Zusatzdienste anpassen.", Warning: legalWarning(missing, true), Sections: sections, LastUpdated: "20. Juli 2026"} + return legalPage{Title: "Datenschutzerklärung", MetaDescription: "Informationen zur Verarbeitung personenbezogener Daten.", Eyebrow: "Datenschutz", Intro: "Diese Vorlage beschreibt den technischen Standardzustand der Anwendung. Weitere Informationen entnehmen Sie den Angaben auf dieser Seite.", Warning: legalWarning(missing, true), Sections: sections, LastUpdated: "20. Juli 2026"} } sections := []legalSection{ {Title: "1. Controller", Fields: compactFields([]legalField{{Label: "Controller", Value: requiredValue(cfg.LegalName)}, {Label: "Address", Value: requiredValue(cfg.LegalAddress)}, {Label: "Privacy contact", Value: requiredValue(contact), URL: mailto(contact)}})}, {Title: "2. Website access and server logs", Paragraphs: []string{ - "Technically necessary connection data may be processed when the service is accessed, including IP address, time, requested path, HTTP method, status, transferred bytes, referrer and user agent. The operator must verify the exact logging performed by its hosting and proxy infrastructure.", + "Technically necessary connection data may be processed when the service is accessed, including IP address, time, requested path, HTTP method, status, transferred bytes, referrer and user agent. For more information, please refer to the information on this page.", "By default, the application logs method, path without query string, status, bytes, duration and a request ID. Client IP logging is disabled unless LOG_CLIENT_IP is explicitly enabled.", "Purposes are secure and reliable operation, troubleshooting and abuse prevention. The legal basis is generally Article 6(1)(f) GDPR and, where relevant, Article 6(1)(b) GDPR.", }, Fields: []legalField{{Label: "Intended retention period", Value: requiredValue(cfg.LogRetention)}}}, @@ -213,7 +212,7 @@ func privacyPage(cfg Config, lang string) legalPage { {Title: "5. Hosting and recipients", Fields: compactFields([]legalField{{Label: "Hosting provider", Value: requiredValue(cfg.HostingProvider)}, {Label: "Address / region", Value: cfg.HostingAddress}, {Label: "Other recipients", Value: cfg.DataRecipients}, {Label: "Third-country transfers", Value: cfg.ThirdCountryTransfers}})}, {Title: "6. Optional licence validation", Paragraphs: []string{"Offline mode performs no online licence validation. Hybrid and online modes send the licence token, product identifier, public base URL, host, optional instance ID and client version to the configured licence server. The operator must document that service separately."}}, {Title: "7. Data-subject rights", Paragraphs: []string{"Subject to the GDPR, individuals may have rights of access, rectification, erasure, restriction, portability, objection and withdrawal of consent, as well as the right to complain to a supervisory authority."}, Fields: compactFields([]legalField{{Label: "Supervisory authority", Value: cfg.SupervisoryAuthorityName, URL: cfg.SupervisoryAuthorityURL}})}, - {Title: "8. Security and changes", Paragraphs: []string{"The application includes restrictive browser policies, JSON request-size limits, hardened container defaults and minimised logging. TLS, backups, access controls, patching, monitoring and deletion schedules must also be implemented in the operating environment.", "Update this notice whenever functions, recipients, hosting or logging change."}}, + {Title: "8. Security and changes", Paragraphs: []string{"The application includes restrictive browser policies, JSON request-size limits, hardened container defaults and minimised logging."}}, } return legalPage{Title: "Privacy notice", MetaDescription: "Information about personal-data processing.", Eyebrow: "Privacy", Intro: "This template describes the application's default technical behaviour. The actual operator must adapt it to hosting, logs, contracts and added services.", Warning: legalWarning(missing, false), Sections: sections, LastUpdated: "20 July 2026"} }