From 3ab97b23aaefa6fa6222b8324d5f65204fc5c449 Mon Sep 17 00:00:00 2001
From: Kuba Orlik
Date: Thu, 7 Jul 2022 22:10:03 +0200
Subject: [PATCH] Add OutsideEU problem, improve wording
---
components/report-window/deduce-problems.tsx | 3 +-
.../generate-survey-questions.ts | 4 +-
.../problems/transfer-outside-eu.tsx | 63 +++++++++++++++++++
.../problems/unknown-legal-basis.tsx | 7 ++-
.../problems/unlawful-cookies.tsx | 9 ++-
5 files changed, 78 insertions(+), 8 deletions(-)
create mode 100644 components/report-window/problems/transfer-outside-eu.tsx
diff --git a/components/report-window/deduce-problems.tsx b/components/report-window/deduce-problems.tsx
index 68e45a5..2eb7716 100644
--- a/components/report-window/deduce-problems.tsx
+++ b/components/report-window/deduce-problems.tsx
@@ -2,6 +2,7 @@ import { RequestCluster } from '../../request-cluster';
import { ParsedAnswers } from './parse-answers';
import NoInformationAtAllProblem from './problems/no-information-at-all';
import { Problem } from './problems/problem';
+import { TransferOutsideEU } from './problems/transfer-outside-eu';
import { UnknownLegalBasis } from './problems/unknown-legal-basis';
import { UnlawfulCookieAccess } from './problems/unlawful-cookies';
@@ -9,7 +10,7 @@ export default function deduceProblems(
answers: ParsedAnswers,
clusters: Record
): Problem[] {
- return [NoInformationAtAllProblem, UnlawfulCookieAccess, UnknownLegalBasis]
+ return [NoInformationAtAllProblem, UnlawfulCookieAccess, UnknownLegalBasis, TransferOutsideEU]
.map((c) => new c(answers, clusters))
.filter((p) => p.qualifies());
}
diff --git a/components/report-window/generate-survey-questions.ts b/components/report-window/generate-survey-questions.ts
index cbf8011..6ec0d1b 100644
--- a/components/report-window/generate-survey-questions.ts
+++ b/components/report-window/generate-survey-questions.ts
@@ -60,10 +60,10 @@ function generateHostPage(
'present'
)}} != "not_mentioned" and {${f('present')}} != "not_before_making_a_choice"`,
choices: [
- { value: 'consent', text: 'to zgoda.' },
+ { value: 'consent', text: 'to zgoda (art. 6 ust. 1 lit. a RODO).' },
{
value: 'legitimate_interest',
- text: 'to uzasadniony interes.',
+ text: 'to uzasadniony interes (art. 6 ust. 1 lit. f RODO).',
},
{ value: 'not_mentioned', text: 'nie jest wskazana nigdzie na stronie.' },
],
diff --git a/components/report-window/problems/transfer-outside-eu.tsx b/components/report-window/problems/transfer-outside-eu.tsx
new file mode 100644
index 0000000..12e49b7
--- /dev/null
+++ b/components/report-window/problems/transfer-outside-eu.tsx
@@ -0,0 +1,63 @@
+import { RequestCluster } from '../../../request-cluster';
+import { ExplainerKey } from '../explainers';
+import { v } from '../verbs';
+import { Problem } from './problem';
+
+export class TransferOutsideEU extends Problem {
+ getNecessaryExplainers(): ExplainerKey[] {
+ return [];
+ }
+
+ qualifies(): boolean {
+ return Object.values(this.answers.hosts).some(
+ (hostAnswers) => hostAnswers.outside_eu == 'yes'
+ );
+ }
+
+ getRelatedClusters(): RequestCluster[] {
+ return Object.entries(this.answers.hosts)
+ .filter(([_, hostAnswers]) => hostAnswers.outside_eu == 'yes')
+ .map(([id]) => this.clusters[id]);
+ }
+
+ getEmailContent() {
+ const clusters = this.getRelatedClusters();
+ const _ = (key: string) => v(key, this.answers.zaimek);
+ return (
+ <>
+ Transfer danych osobowych poza Europejski Obszar Gospodarczy
+
+ Państwa strona przetworzyła {_('moje')} dane osobowe poprzez przesłanie danych
+ do:
+
+
+ {clusters.map((cluster) => (
+ -
+ Właściciela domeny {cluster.id}: (w zakresie:{' '}
+ {cluster.getDataTypeDescription('mojej')});
+
+ ))}
+
+
+ Według {_('mojej')} najlepszej wiedzy, każdy z tych podmiotów utrzymuje swoje
+ serwery poza Europejskim Obszarem Gospodarczym. Zatem Państwa strona przesłała
+ {_('moje')} dane osobowe poza EOG. Jeżeli tak jest, to takie przetwarzanie
+ danych jest niezgodne z prawem, gdyż dane trafiają do krajów, które nie
+ gwarantują ochrony danych w stopniu, jakiego wymaga RODO, a tzw. „Tarcza
+ Prywatności” została unieważniona w 2020r. Zob.{' '}
+
+ artykuł Fundacji Panoptykon w tej sprawie
+
+ .
+
+
+ {_('Zwracam')} się zatem do Państwa z pytaniem:{' '}
+
+ czy wyżej wymienione podmioty, którym Państwa strona ujawniła moje dane
+ osobowe, przechowują moje dane poza EOG?
+
+
+ >
+ );
+ }
+}
diff --git a/components/report-window/problems/unknown-legal-basis.tsx b/components/report-window/problems/unknown-legal-basis.tsx
index 598d18d..3aa048e 100644
--- a/components/report-window/problems/unknown-legal-basis.tsx
+++ b/components/report-window/problems/unknown-legal-basis.tsx
@@ -61,8 +61,11 @@ export class UnknownLegalBasis extends Problem {
o tym, jaka jest podstawa prawna takiego przetwarzania danych.
- Zwracam się zatem z pytaniem: jakie były podstawy prawne ujawnienia moich danych
- każdemu z wyżej wymienionych podmiotów przez Państwa stronę?
+ Zwracam się zatem z pytaniem:{' '}
+
+ jakie były podstawy prawne ujawnienia moich danych każdemu z wyżej
+ wymienionych podmiotów przez Państwa stronę?
+
>
);
diff --git a/components/report-window/problems/unlawful-cookies.tsx b/components/report-window/problems/unlawful-cookies.tsx
index c848502..6e03c34 100644
--- a/components/report-window/problems/unlawful-cookies.tsx
+++ b/components/report-window/problems/unlawful-cookies.tsx
@@ -162,9 +162,12 @@ export class UnlawfulCookieAccess extends Problem {
''
)}
- {_('Proszę')} o wskazanie, czy być może stosowali Państwo inną podstawę prawną
- do takiego przetwarzania {_('moich')} danych osobowych, czy przetwarzali je
- państwo bez ważnej podstawy prawnej?
+ {_('Proszę')} o wskazanie,{' '}
+
+ czy być może stosowali Państwo inną podstawę prawną do takiego przetwarzania{' '}
+ {_('moich')} danych osobowych, czy przetwarzali je państwo bez ważnej
+ podstawy prawnej?
+
{maybe_unnecessary_hosts.length > 1 ? (