Add Unknown Identity problem

Closes #10
This commit is contained in:
Kuba Orlik 2022-07-08 21:13:50 +02:00
parent ebad5ab022
commit 895260b096
2 changed files with 68 additions and 1 deletions

View File

@ -3,6 +3,7 @@ import { ParsedAnswers } from './parse-answers';
import NoInformationAtAllProblem from './problems/no-information-at-all'; import NoInformationAtAllProblem from './problems/no-information-at-all';
import { Problem } from './problems/problem'; import { Problem } from './problems/problem';
import { TransferOutsideEU } from './problems/transfer-outside-eu'; import { TransferOutsideEU } from './problems/transfer-outside-eu';
import { UnknownIdentity } from './problems/unknown-identity';
import { UnknownLegalBasis } from './problems/unknown-legal-basis'; import { UnknownLegalBasis } from './problems/unknown-legal-basis';
import { UnlawfulCookieAccess } from './problems/unlawful-cookies'; import { UnlawfulCookieAccess } from './problems/unlawful-cookies';
@ -10,7 +11,13 @@ export default function deduceProblems(
answers: ParsedAnswers, answers: ParsedAnswers,
clusters: Record<string, RequestCluster> clusters: Record<string, RequestCluster>
): Problem[] { ): Problem[] {
return [NoInformationAtAllProblem, UnlawfulCookieAccess, UnknownLegalBasis, TransferOutsideEU] return [
NoInformationAtAllProblem,
UnlawfulCookieAccess,
UnknownLegalBasis,
UnknownIdentity,
TransferOutsideEU,
]
.map((c) => new c(answers, clusters)) .map((c) => new c(answers, clusters))
.filter((p) => p.qualifies()); .filter((p) => p.qualifies());
} }

View File

@ -0,0 +1,60 @@
import { RequestCluster } from '../../../request-cluster';
import { ExplainerKey } from '../explainers';
import { ParsedHostAnswers } from '../parse-answers';
import { v } from '../verbs';
import { Problem } from './problem';
export class UnknownIdentity extends Problem {
getNecessaryExplainers(): ExplainerKey[] {
return ['responsibility_for_third_parties'];
}
qualifies(): boolean {
return this.answers.administrator_identity_available_before_choice == 'no';
}
getEmailContent(mode: 'email' | 'report', tone: 'polite' | 'official') {
const _ = (key: string) => v(key, this.answers.zaimek);
return (
<>
<h2>Tożsamość administratora</h2>
{mode == 'email' ? (
<p>
Na Państwa stronie nie {_('znalazłem')} informacji o tym, kto jest
administratorem moich danych osobowych przetwarzanych przez Państwa stronę w
trakcie {_('moich')} odwiedzin.
</p>
) : (
<p>
Na stronie brakuje informacji o tym, kto jest administratorem danych
osobowych osób odwiedzających.
</p>
)}
<p>
Zgodnie z treścią Art. 13 RODO, jeżeli dane osobowe osoby, której dane dotyczą,
zbierane od tej osoby, administrator podczas pozyskiwania danych osobowych
musi podać jej swoją tożsamość i dane kontaktowe.
</p>
{mode == 'email' ? (
tone == 'official' ? (
<p>
Zwracam się zatem z pytaniem:{' '}
<strong>jaka jest tożsamość administratora tej strony?</strong>
</p>
) : (
<p>
Apeluję o dodanie do Państwa strony informacji o tym, kto (np. pełna
nazwa firmy + NIP oraz dane kontaktowe) jest administratorem danych
osobowych przetwarzanych przez stronę.
</p>
)
) : (
<p>
Zalecane jest dodanie informacji o administratorze strony (pełna nazwa firmy
+ NIP i dane kontaktowe) w łatwo dostępnym miejscu na stronie.
</p>
)}
</>
);
}
}