145 lines
6.5 KiB
TypeScript
145 lines
6.5 KiB
TypeScript
import React from 'react';
|
|
import { RequestCluster } from '../request-cluster';
|
|
import { StolenDataEntry } from '../stolen-data-entry';
|
|
import { getDate } from '../util';
|
|
import EmailTemplate3Controls from './email-template-3-controls';
|
|
import './email-template-3.scss';
|
|
|
|
declare var PLUGIN_NAME: string;
|
|
declare var PLUGIN_URL: string;
|
|
|
|
export type EmailTemplate3Config = {
|
|
pronoun: 0 | 1 | 2 | 3; // masc, fem, neutral, plural
|
|
policy_readable: 'null' | 'yes' | 'entirely_obscured_by_popup' | 'cant_find';
|
|
hosts_settings: Record<
|
|
string,
|
|
{
|
|
presence: 'null' | 'not_mentioned' | 'mentioned_in_popup' | 'mentioned_in_policy';
|
|
legal_basis_type: 'null' | 'consent' | 'legitimate_interest' | 'not_mentioned';
|
|
consent_problems?:
|
|
| 'claims_consent_but_sends_before_consent'
|
|
| 'claims_consent_but_there_was_no_easy_refuse'
|
|
| 'none'
|
|
| 'null';
|
|
|
|
legitimate_interest_activity_specified: 'null' | 'no' | 'precise' | 'vague';
|
|
legitimate_interest_activity_description: string;
|
|
}
|
|
>;
|
|
popup_type: 'none' | 'passive_cookie_banner' | 'consent';
|
|
popup_action: 'ignored' | 'accepted' | 'closed';
|
|
popup_closed_how: string;
|
|
popup_screenshot_base64: string | null;
|
|
popup_accept_all_text: string;
|
|
popup_mentions_passive_consent: boolean;
|
|
popup_passive_consent_text: string;
|
|
};
|
|
|
|
export default function EmailTemplate3({
|
|
entries,
|
|
clusters,
|
|
}: {
|
|
entries: StolenDataEntry[];
|
|
clusters: Record<string, RequestCluster>;
|
|
version: number;
|
|
}): JSX.Element {
|
|
const all_host_ids = Array.from(new Set(entries.map((entry) => entry.request.shorthost)));
|
|
|
|
const [config, setConfig] = React.useState<EmailTemplate3Config>({
|
|
pronoun: Math.round(Math.random()) as 0 | 1,
|
|
policy_readable: 'null',
|
|
hosts_settings: Object.fromEntries(
|
|
all_host_ids.map((cluster_id) => [
|
|
cluster_id,
|
|
{
|
|
presence: 'null',
|
|
legal_basis_presence: 'null',
|
|
legal_basis_type: 'null',
|
|
consent_problems: 'null',
|
|
legitimate_interest_activity_specified: 'null',
|
|
legitimate_interest_activity_description: '',
|
|
},
|
|
])
|
|
),
|
|
popup_type: 'none',
|
|
popup_action: 'ignored',
|
|
popup_screenshot_base64: null,
|
|
popup_accept_all_text: 'Zaakceptuj wszystkie',
|
|
popup_mentions_passive_consent: false,
|
|
popup_passive_consent_text: '',
|
|
popup_closed_how: 'kliknięcie przycisku „X”',
|
|
});
|
|
|
|
const visited_url = entries[0].request.originalURL;
|
|
|
|
const p = config.pronoun;
|
|
|
|
return (
|
|
<div className="mail-wrapper">
|
|
<div className="mail-controls">
|
|
<EmailTemplate3Controls {...{ config, setConfig, hosts: all_host_ids }} />
|
|
</div>
|
|
<div className="mail-content-wrapper">
|
|
<article className="mail-content">
|
|
<p>
|
|
Dzień dobry, w dniu {getDate()}{' '}
|
|
{['odwiedziłem', 'odwiedziłam', 'odwiedziłom', 'odwiedziliśmy'][p]} stronę{' '}
|
|
{visited_url} i {['zbadałem', 'zbadałam', 'zbadałom', 'zbadaliśmy'][p]} ją
|
|
za pomocą wtyczki <a href={PLUGIN_URL}>{PLUGIN_NAME}</a> w celu zbadania,
|
|
jakie informacje o {['mnie', 'mnie', 'mnie', 'nas'][p]} wysyła ta strona do
|
|
podmiotów trzecich.
|
|
</p>
|
|
<p>
|
|
{['Moją', 'Moją', 'Moją', 'Naszą'][p]} szczególną uwagę przykuło:
|
|
WYFILTROWANE WZGLĘDEM TEGO, CZY DANEGO PODMIOTU NIE MA W POLITYCE
|
|
PRYWATNOŚCI LUB POWIADOMIENIU O COOKIESACH{' '}
|
|
<ul>
|
|
<li>
|
|
- wysyłanie mojego identyfikatora internetowego [z Cookie] (value)
|
|
oraz części mojej historii przeglądania do właściciela domeny
|
|
(domain);
|
|
</li>
|
|
<li> - (...).</li>
|
|
</ul>
|
|
</p>
|
|
<p>
|
|
Dane te zostały wysłane zanim{' '}
|
|
{['miałem', 'miałam', 'miałom', 'mieliśmy'][p]} szansę przeczytać Państwa
|
|
politykę prywatności i w jakikolwiek czynny i jednoznaczny sposób wyrazić
|
|
zgodę na takie przetwarzanie moich danych osobowych.
|
|
</p>
|
|
{!['yes', 'null'].includes(config.policy_readable) ? (
|
|
<p>
|
|
{['Chciałem', 'Chciałam', 'Chciałom', 'Chcieliśmy'][p]} przeczytać
|
|
Państwa politykę prywatności przed akceptacją, ale{' '}
|
|
{config.policy_readable == 'cant_find' ? (
|
|
<>nie mogę znaleźć jej nigdzie na Państwa stronie.</>
|
|
) : (
|
|
''
|
|
)}{' '}
|
|
{config.policy_readable == 'entirely_obscured_by_popup' ? (
|
|
<>jest ona przesłonięta przez okienko o RODO.</>
|
|
) : (
|
|
''
|
|
)}
|
|
</p>
|
|
) : (
|
|
''
|
|
)}
|
|
<p>
|
|
Dane zostały udostępnione podmiotom, o których nie{' '}
|
|
{['znalazłem', 'znalazłam', 'znalazłom', 'znaleźliśmy'][p]} informacji ani w
|
|
Państwa polityce prywatności, ani w żadnym wyskakującym okienku na Państwa
|
|
stronie. Z tego powodu zwracam{p == 3 ? 'y' : ''} się do Państwa z pytaniem:
|
|
jakie były podstawy prawne takiego ujawnienia{' '}
|
|
{['moich', 'moich', 'moich', 'naszych'][p]} danych osobowych wyżej
|
|
wymienionym podmiotom? Uprzejmie{' '}
|
|
{['proszę', 'proszę', 'proszę', 'prosimy'][p]} o wskazanie podstawy prawnej
|
|
dla każdego z tych podmiotów z osobna.
|
|
</p>
|
|
</article>
|
|
</div>
|
|
</div>
|
|
);
|
|
}
|