From ab7f1acd0c83a77936c452eab1c6b3e9dcc612b3 Mon Sep 17 00:00:00 2001
From: Christof Schulze <christof.schulze@gmx.net>
Date: Sat, 19 May 2018 19:26:33 +0200
Subject: [PATCH] gluon-config-mode-contact-info: provide enhancements for
 german, english and french translation to comply with DSGVO (#1394)

* do not allow to obligatorily require contact information
* add remark that the data is provided voluntarily
* mention how to delete the data
* be very clear about the fact that the data being entered is public and
  can be downloaded and processed by anyone.
---
 docs/user/site.rst                                |  6 ------
 .../gluon-config-mode-contact-info/check_site.lua |  1 -
 package/gluon-config-mode-contact-info/i18n/de.po | 10 ++++++++--
 package/gluon-config-mode-contact-info/i18n/fr.po | 15 +++++++++++----
 .../i18n/gluon-config-mode-contact-info.pot       |  5 ++++-
 .../config-mode/wizard/0500-contact-info.lua      | 14 +++++++-------
 6 files changed, 30 insertions(+), 21 deletions(-)

diff --git a/docs/user/site.rst b/docs/user/site.rst
index c5b845aca..cd139623b 100644
--- a/docs/user/site.rst
+++ b/docs/user/site.rst
@@ -387,9 +387,6 @@ config_mode \: optional
     and *gluon-config-mode:altitude-help* strings must be provided in the site i18n
     data as well.
 
-    The *owner.optional* option can be set to *false* to make the contact
-    information field mandatory.
-
     The remote login page only shows SSH key configuration by default. A
     password form can be displayed by setting *remote_login.show_password_form*
     to true; in this case, *remote_login.min_password_length* defines the
@@ -403,9 +400,6 @@ config_mode \: optional
           geo_location = {
             show_altitude = true,
           },
-          owner = {
-            optional = false,
-          },
           remote_login = {
             show_password_form = true,
             min_password_length = 10,
diff --git a/package/gluon-config-mode-contact-info/check_site.lua b/package/gluon-config-mode-contact-info/check_site.lua
index 7dd39e38d..e69de29bb 100644
--- a/package/gluon-config-mode-contact-info/check_site.lua
+++ b/package/gluon-config-mode-contact-info/check_site.lua
@@ -1 +0,0 @@
-need_boolean(in_site({'config_mode', 'owner', 'optional'}), false)
diff --git a/package/gluon-config-mode-contact-info/i18n/de.po b/package/gluon-config-mode-contact-info/i18n/de.po
index 35f0ee955..651fdde44 100644
--- a/package/gluon-config-mode-contact-info/i18n/de.po
+++ b/package/gluon-config-mode-contact-info/i18n/de.po
@@ -16,12 +16,18 @@ msgstr "Kontakt"
 msgid ""
 "Please provide your contact information here to allow others to contact "
 "you. Note that this information will be visible <em>publicly</em> on "
-"the internet together with your node's coordinates."
+"the internet together with your node's coordinates. This means it can "
+"be downloaded and processed by anyone. This information is "
+"not required to operate a node. If you chose to enter data, it will be "
+"stored on this node and can be deleted by yourself at any time."
 msgstr ""
 "Bitte hinterlege hier einen Hinweis, um anderen zu ermöglichen, "
 "Kontakt mit dir aufzunehmen. Beachte, dass dieser Hinweis auch "
 "<em>öffentlich</em> im Internet, zusammen mit den Koordinaten "
-"deines Knotens, einsehbar sein wird."
+"deines Knotens, einsehbar sein wird. Das bedeutet, dass diese Informationen "
+"von jedem heruntergeladen und verarbeitet werden können. Für den Betrieb sind diese "
+"Informationen nicht erforderlich. Eine Speicherung erfolgt auf diesem Knoten. "
+"Die Daten können durch dich in diesem Menü eigenständig gelöscht werden."
 
 msgid "e.g. E-mail or phone number"
 msgstr "z.B. E-Mail oder Telefonnummer"
diff --git a/package/gluon-config-mode-contact-info/i18n/fr.po b/package/gluon-config-mode-contact-info/i18n/fr.po
index 624b18640..f20e06cba 100644
--- a/package/gluon-config-mode-contact-info/i18n/fr.po
+++ b/package/gluon-config-mode-contact-info/i18n/fr.po
@@ -16,11 +16,18 @@ msgstr "Informations de Contact"
 msgid ""
 "Please provide your contact information here to allow others to contact "
 "you. Note that this information will be visible <em>publicly</em> on "
-"the internet together with your node's coordinates."
+"the internet together with your node's coordinates. This means it can "
+"be downloaded and processed by anyone. This information is "
+"not required to operate a node. If you chose to enter data, it will be "
+"stored on this node and can be deleted by yourself at any time."
 msgstr ""
-"S'il vous plaît entrez ici des informations <em>publiques</em> pour "
-"permettre aux autres de vous contacter. "
-"Ces informations seront affichées en ligne, avec les coordonnées du nœud."
+"Entrez vos coordonnées ici si vous souhaitez permettre à d'autres "
+"personnes de communiquer avec vous. Ces informations seront affichées "
+"<em>en ligne</em> avec les coordonnées du nœud. Il peut être téléchargé "
+"et traité par tous. Il n'est pas obligatoire "
+"de fournir ces informations pour pouvoir opérer un nœud. Si vous avez "
+"choisi d'entrer des données, elles seront stockées sur ce nœud et vous "
+"pourrez les effacer par vous-même à tout moment."
 
 msgid "e.g. E-mail or phone number"
 msgstr "Ex : E-mail ou numéro de téléphone"
diff --git a/package/gluon-config-mode-contact-info/i18n/gluon-config-mode-contact-info.pot b/package/gluon-config-mode-contact-info/i18n/gluon-config-mode-contact-info.pot
index 9dcaf9ecd..913f38a5d 100644
--- a/package/gluon-config-mode-contact-info/i18n/gluon-config-mode-contact-info.pot
+++ b/package/gluon-config-mode-contact-info/i18n/gluon-config-mode-contact-info.pot
@@ -7,7 +7,10 @@ msgstr ""
 msgid ""
 "Please provide your contact information here to allow others to contact "
 "you. Note that this information will be visible <em>publicly</em> on "
-"the internet together with your node's coordinates."
+"the internet together with your node's coordinates. This means it can be "
+"downloaded and processed by anyone. This information is "
+"not required to operate a node. If you chose to enter data, it will be "
+"stored on this node and can be deleted by yourself at any time."
 msgstr ""
 
 msgid "e.g. E-mail or phone number"
diff --git a/package/gluon-config-mode-contact-info/luasrc/lib/gluon/config-mode/wizard/0500-contact-info.lua b/package/gluon-config-mode-contact-info/luasrc/lib/gluon/config-mode/wizard/0500-contact-info.lua
index 3afff6b4b..3b44773e8 100644
--- a/package/gluon-config-mode-contact-info/luasrc/lib/gluon/config-mode/wizard/0500-contact-info.lua
+++ b/package/gluon-config-mode-contact-info/luasrc/lib/gluon/config-mode/wizard/0500-contact-info.lua
@@ -6,17 +6,17 @@ return function(form, uci)
 	local owner = uci:get_first("gluon-node-info", "owner")
 
 	local s = form:section(Section, nil, pkg_i18n.translate(
-		'Please provide your contact information here to '
-		.. 'allow others to contact you. Note that '
-		.. 'this information will be visible <em>publicly</em> '
-		.. 'on the internet together with your node\'s coordinates.'
+		'Please provide your contact information here to allow others to contact '
+		.. 'you. Note that this information will be visible <em>publicly</em> on '
+		.. 'the internet together with your node\'s coordinates. This means it can '
+		.. 'be downloaded and processed by anyone. This information is '
+		.. 'not required to operate a node. If you chose to enter data, it will be '
+		.. 'stored on this node and can be deleted by yourself at any time.'
 	))
 
 	local o = s:option(Value, "contact", pkg_i18n.translate("Contact info"), pkg_i18n.translate("e.g. E-mail or phone number"))
 	o.default = uci:get("gluon-node-info", owner, "contact")
-	o.optional = site.config_mode.owner.optional(true)
-	-- without a minimal length, an empty string will be accepted even with "optional = false"
-	o.datatype = "minlength(1)"
+	o.optional = true
 	function o:write(data)
 		uci:set("gluon-node-info", owner, "contact", data)
 	end
-- 
GitLab