Compare commits
No commits in common. "468391489ccd9514fd719a794a69ab2e52a8a248" and "54e5040348a374e60ebcfc4e6b91c2aa3fd82936" have entirely different histories.
468391489c
...
54e5040348
@ -39,7 +39,6 @@ export default function EmailContent({
|
|||||||
</p>
|
</p>
|
||||||
{problems.map((problem) => problem.getEmailContent())}
|
{problems.map((problem) => problem.getEmailContent())}
|
||||||
{explainers.map((explainer) => explainer(answers.zaimek))}
|
{explainers.map((explainer) => explainer(answers.zaimek))}
|
||||||
<h2>Państwa rola jako współadministratora danych osobowych</h2>
|
|
||||||
<p>
|
<p>
|
||||||
{_('Zwracam')} Państwa uwagę na fakt, że w myśl{' '}
|
{_('Zwracam')} Państwa uwagę na fakt, że w myśl{' '}
|
||||||
<a href="https://curia.europa.eu/juris/document/document.jsf?text=&docid=216555&pageIndex=0&doclang=PL&mode=lst&dir=&occ=first&part=1&cid=1254905">
|
<a href="https://curia.europa.eu/juris/document/document.jsf?text=&docid=216555&pageIndex=0&doclang=PL&mode=lst&dir=&occ=first&part=1&cid=1254905">
|
||||||
@ -48,10 +47,10 @@ export default function EmailContent({
|
|||||||
poprzez wysyłanie moich danych w wyżej opisanym zakresie stają się Państwo
|
poprzez wysyłanie moich danych w wyżej opisanym zakresie stają się Państwo
|
||||||
współadministratorem moich danych osobowych, dlatego ciąży na Państwu obowiązek
|
współadministratorem moich danych osobowych, dlatego ciąży na Państwu obowiązek
|
||||||
odpowiedzi na moje pytanie na mocy Art. 12 i 13 Rozporządzenia 2016/679 Parlamentu
|
odpowiedzi na moje pytanie na mocy Art. 12 i 13 Rozporządzenia 2016/679 Parlamentu
|
||||||
Europejskiego i Rady (UE) z dnia 27 kwietnia 2016 r. w sprawie ochrony osób fizycznych w
|
Europejskiego i Rady (UE) z dnia 27 kwietnia 2016 r. w sprawie ochrony osób
|
||||||
związku z przetwarzaniem danych osobowych i w sprawie swobodnego przepływu takich danych
|
fizycznych w związku z przetwarzaniem danych osobowych i w sprawie swobodnego
|
||||||
oraz uchylenia dyrektywy 95/46/WE (ogólne rozporządzenie o ochronie danych, dalej:
|
przepływu takich danych oraz uchylenia dyrektywy 95/46/WE (ogólne rozporządzenie o
|
||||||
„RODO”).
|
ochronie danych, dalej: „RODO”).
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
|
@ -3,7 +3,7 @@ export type ExplainerKey = 'cookies_are_pii';
|
|||||||
export const Explainers: Record<ExplainerKey, (zaimek_index: 0 | 1 | 2 | 3) => JSX.Element> = {
|
export const Explainers: Record<ExplainerKey, (zaimek_index: 0 | 1 | 2 | 3) => JSX.Element> = {
|
||||||
cookies_are_pii: () => (
|
cookies_are_pii: () => (
|
||||||
<>
|
<>
|
||||||
<h2>Ciasteczka stanowią dane osobowe</h2>
|
<h3>Ciasteczka stanowią dane osobowe</h3>
|
||||||
<p>
|
<p>
|
||||||
Sztucznie wygenerowane identyfikatory przechowywane w plikach Cookies stanowią dane
|
Sztucznie wygenerowane identyfikatory przechowywane w plikach Cookies stanowią dane
|
||||||
osobowe. Wskazuje na to wprost Art. 4. pkt 1. RODO, wymieniając „identyfikator
|
osobowe. Wskazuje na to wprost Art. 4. pkt 1. RODO, wymieniając „identyfikator
|
||||||
|
@ -1,5 +1,4 @@
|
|||||||
import { RequestCluster } from '../../request-cluster';
|
import { RequestCluster } from '../../request-cluster';
|
||||||
import { wordlist } from '../../util';
|
|
||||||
import { ExplainerKey } from '../explainers';
|
import { ExplainerKey } from '../explainers';
|
||||||
import { ParsedAnswers } from '../parse-answers';
|
import { ParsedAnswers } from '../parse-answers';
|
||||||
import { v } from '../verbs';
|
import { v } from '../verbs';
|
||||||
@ -146,7 +145,7 @@ export class UnlawfulCookieAccess extends Problem {
|
|||||||
{unnecessary_hosts.length > 0 ? (
|
{unnecessary_hosts.length > 0 ? (
|
||||||
<p>
|
<p>
|
||||||
W {_('mojej')} ocenie odczytywanie przez Państwa stronę treści plików cookies z{' '}
|
W {_('mojej')} ocenie odczytywanie przez Państwa stronę treści plików cookies z{' '}
|
||||||
{wordlist(unnecessary_hosts)} nie jest konieczne do wyświetlenia treści Państwa
|
{unnecessary_hosts.join(', ')} nie jest konieczne do wyświetlenia treści Państwa
|
||||||
strony, dlatego nie jest dla nich spełniony warunek 2. Jeżeli Państwa zdaniem jest
|
strony, dlatego nie jest dla nich spełniony warunek 2. Jeżeli Państwa zdaniem jest
|
||||||
inaczej, {_('proszę')} o wskazanie, co jest źródłem tej konieczności i co odróżnia
|
inaczej, {_('proszę')} o wskazanie, co jest źródłem tej konieczności i co odróżnia
|
||||||
Państwa stronę od wielu innych stron, które realizują te same funkcjonalności{' '}
|
Państwa stronę od wielu innych stron, które realizują te same funkcjonalności{' '}
|
||||||
@ -160,16 +159,12 @@ export class UnlawfulCookieAccess extends Problem {
|
|||||||
takiego przetwarzania {_('moich')} danych osobowych, czy przetwarzali je państwo bez
|
takiego przetwarzania {_('moich')} danych osobowych, czy przetwarzali je państwo bez
|
||||||
ważnej podstawy prawnej?
|
ważnej podstawy prawnej?
|
||||||
</p>
|
</p>
|
||||||
{maybe_unnecessary_hosts.length > 1 ? (
|
|
||||||
<p>
|
<p>
|
||||||
{_('Proszę')} też o wskazanie, czy dostęp do treści plików cookie z
|
{_('Proszę')} też o wskazanie, czy dostęp do treści plików cookie z
|
||||||
{wordlist(maybe_unnecessary_hosts)} jest konieczny do poprawnego działania strony?
|
{maybe_unnecessary_hosts.join(', ')} jest konieczny do poprawnego działania strony?
|
||||||
Jeżeli tak, to {_('proszę')} wskazać, w jaki sposób. Co sprawia, że strona nie
|
Jeżeli tak, to {_('proszę')} wskazać, w jaki sposób. Co sprawia, że strona nie może
|
||||||
może działać bez nich?
|
działać bez nich?
|
||||||
</p>
|
</p>
|
||||||
) : (
|
|
||||||
''
|
|
||||||
)}
|
|
||||||
</>
|
</>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,15 @@
|
|||||||
@import '../sidebar/fonts.scss';
|
@import '../sidebar/fonts.scss';
|
||||||
@import '../sidebar/colors.scss';
|
@import '../sidebar/colors.scss';
|
||||||
|
|
||||||
|
* {
|
||||||
|
margin: 0px;
|
||||||
|
box-sizing: border-box;
|
||||||
|
text-rendering: optimizelegibility;
|
||||||
|
font-smooth: auto;
|
||||||
|
-webkit-font-smoothing: auto;
|
||||||
|
user-select: none;
|
||||||
|
}
|
||||||
|
|
||||||
html {
|
html {
|
||||||
font-size: 1rem;
|
font-size: 1rem;
|
||||||
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell,
|
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell,
|
||||||
|
@ -10,13 +10,10 @@ import { parseAnswers, ParsedAnswers } from './parse-answers';
|
|||||||
|
|
||||||
function Report() {
|
function Report() {
|
||||||
try {
|
try {
|
||||||
const url = new URL(document.location.toString());
|
const origin = new URL(document.location.toString()).searchParams.get('origin');
|
||||||
const origin = url.searchParams.get('origin');
|
|
||||||
const [counter] = useEmitter(getMemory());
|
const [counter] = useEmitter(getMemory());
|
||||||
const [answers, setAnswers] = React.useState<ParsedAnswers>(
|
const [answers, setAnswers] = React.useState<ParsedAnswers>(null);
|
||||||
url.searchParams.get('answers') ? JSON.parse(url.searchParams.get('answers')) : null
|
const [mode, setMode] = React.useState('survey');
|
||||||
);
|
|
||||||
const [mode, setMode] = React.useState(url.searchParams.get('mode') || 'survey');
|
|
||||||
const clusters = getMemory().getClustersForOrigin(origin);
|
const clusters = getMemory().getClustersForOrigin(origin);
|
||||||
/* const [entries, setEntries] = React.useState<StolenDataEntry[]>([]); */
|
/* const [entries, setEntries] = React.useState<StolenDataEntry[]>([]); */
|
||||||
/* React.useEffect(() => {
|
/* React.useEffect(() => {
|
||||||
@ -33,14 +30,6 @@ function Report() {
|
|||||||
/* if (entries.length == 0) {
|
/* if (entries.length == 0) {
|
||||||
* return <>Wczytywanie...</>;
|
* return <>Wczytywanie...</>;
|
||||||
* } */
|
* } */
|
||||||
|
|
||||||
React.useEffect(() => {
|
|
||||||
const url = new URL(document.location.toString());
|
|
||||||
url.searchParams.set('origin', origin);
|
|
||||||
url.searchParams.set('answers', JSON.stringify(answers));
|
|
||||||
url.searchParams.set('mode', mode);
|
|
||||||
history.pushState({}, 'Rentgen', url.toString());
|
|
||||||
}, [mode, answers, origin]);
|
|
||||||
const visited_url = Object.values(clusters)
|
const visited_url = Object.values(clusters)
|
||||||
.find((cluster) => cluster.getMarkedRequests().length > 0)
|
.find((cluster) => cluster.getMarkedRequests().length > 0)
|
||||||
?.getMarkedRequests()[0].originalURL;
|
?.getMarkedRequests()[0].originalURL;
|
||||||
|
7
util.ts
7
util.ts
@ -269,10 +269,3 @@ export function safeDecodeURIComponent(s: string) {
|
|||||||
export function normalizeForClassname(string: string) {
|
export function normalizeForClassname(string: string) {
|
||||||
return string.replace(/[^a-z0-9]/gi, '-');
|
return string.replace(/[^a-z0-9]/gi, '-');
|
||||||
}
|
}
|
||||||
|
|
||||||
export function wordlist(words: string[]) {
|
|
||||||
return words.reduce(
|
|
||||||
(acc, word, i) => `${acc}${i > 0 ? (i < words.length - 1 ? ',' : ' i') : ''} ${word}`,
|
|
||||||
''
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user