Prepare for unlawful data problem
This commit is contained in:
parent
468391489c
commit
943e3bde1d
@ -1,20 +1,7 @@
|
||||
import { RequestCluster } from '../../request-cluster';
|
||||
import { ExplainerKey } from '../explainers';
|
||||
import { v } from '../verbs';
|
||||
import { Problem } from './problem';
|
||||
|
||||
function formatRange(cluster: RequestCluster) {
|
||||
const parts = [] as string[];
|
||||
console.log(cluster);
|
||||
if (cluster.hasMarkedCookies()) {
|
||||
parts.push('mojego identyfikatora internetowego pozyskanego z Cookie');
|
||||
}
|
||||
if (cluster.exposesOrigin()) {
|
||||
parts.push('części mojej historii przeglądania');
|
||||
}
|
||||
return parts.join(' oraz ');
|
||||
}
|
||||
|
||||
export default class NoInformationAtAllProblem extends Problem {
|
||||
getEmailContent() {
|
||||
const _ = (word: string) => v(word, this.answers.zaimek);
|
||||
@ -24,13 +11,7 @@ export default class NoInformationAtAllProblem extends Problem {
|
||||
<p>
|
||||
{_('Moje')} dane osobowe zostały ujawnione podmiotom, które są właścicielami domen:
|
||||
</p>
|
||||
<ul>
|
||||
{this.getMarkedClusters().map((cluster) => (
|
||||
<li key={cluster.id}>
|
||||
{cluster.id} (w zakresie: {formatRange(cluster)})
|
||||
</li>
|
||||
))}
|
||||
</ul>
|
||||
{this.getRangeDescription()}
|
||||
<p>
|
||||
Na stronie brakuje jednak jakichkolwiek informacji o tym, jakie są cele przetwarzania
|
||||
takich danych oraz jakie są podstawy prawne takiego przetwarzania.
|
||||
|
@ -1,14 +0,0 @@
|
||||
import { RequestCluster } from '../../request-cluster';
|
||||
import { ExplainerKey } from '../explainers';
|
||||
import { ParsedAnswers } from '../parse-answers';
|
||||
|
||||
export abstract class Problem {
|
||||
constructor(public answers: ParsedAnswers, public clusters: Record<string, RequestCluster>) {}
|
||||
|
||||
getMarkedClusters() {
|
||||
return Object.values(this.clusters).filter((c) => c.hasMarks());
|
||||
}
|
||||
|
||||
abstract getEmailContent(): JSX.Element;
|
||||
abstract getNecessaryExplainers(): ExplainerKey[];
|
||||
}
|
38
report-window/problems/problem.tsx
Normal file
38
report-window/problems/problem.tsx
Normal file
@ -0,0 +1,38 @@
|
||||
import { RequestCluster } from '../../request-cluster';
|
||||
import { ExplainerKey } from '../explainers';
|
||||
import { ParsedAnswers } from '../parse-answers';
|
||||
|
||||
function formatRange(cluster: RequestCluster) {
|
||||
const parts = [] as string[];
|
||||
console.log(cluster);
|
||||
if (cluster.hasMarkedCookies()) {
|
||||
parts.push('mojego identyfikatora internetowego pozyskanego z Cookie');
|
||||
}
|
||||
if (cluster.exposesOrigin()) {
|
||||
parts.push('części mojej historii przeglądania');
|
||||
}
|
||||
return parts.join(' oraz ');
|
||||
}
|
||||
|
||||
export abstract class Problem {
|
||||
constructor(public answers: ParsedAnswers, public clusters: Record<string, RequestCluster>) {}
|
||||
|
||||
abstract getEmailContent(): JSX.Element;
|
||||
abstract getNecessaryExplainers(): ExplainerKey[];
|
||||
|
||||
getMarkedClusters() {
|
||||
return Object.values(this.clusters).filter((c) => c.hasMarks());
|
||||
}
|
||||
|
||||
getRangeDescription() {
|
||||
return (
|
||||
<ul>
|
||||
{this.getMarkedClusters().map((cluster) => (
|
||||
<li key={cluster.id}>
|
||||
{cluster.id} (w zakresie: {formatRange(cluster)})
|
||||
</li>
|
||||
))}
|
||||
</ul>
|
||||
);
|
||||
}
|
||||
}
|
35
report-window/problems/unlawful-data.tsx
Normal file
35
report-window/problems/unlawful-data.tsx
Normal file
@ -0,0 +1,35 @@
|
||||
import { RequestCluster } from '../../request-cluster';
|
||||
import { ExplainerKey } from '../explainers';
|
||||
import { ParsedAnswers, ParsedHostAnswers } from '../parse-answers';
|
||||
import { v } from '../verbs';
|
||||
import { Problem } from './problem';
|
||||
|
||||
type UnlawfulDataClassification = 'no_purpose';
|
||||
|
||||
export function classifyUnlawfulData(
|
||||
hostAnswers: ParsedHostAnswers,
|
||||
cluster: RequestCluster
|
||||
): UnlawfulDataClassification {
|
||||
if (hostAnswers.present == 'not_mentioned' && hostAnswers.was_processing_necessary == 'no') {
|
||||
return 'no_purpose';
|
||||
}
|
||||
}
|
||||
|
||||
export class UnlawfulData extends Problem {
|
||||
static qualifies(answers: ParsedAnswers, clusters: RequestCluster[]): boolean {}
|
||||
getEmailContent() {
|
||||
const _ = (key: string) => v(key, this.answers.zaimek);
|
||||
return (
|
||||
<>
|
||||
<h2>Przetwarzanie danych osobowych bez ważnej podsawy prawnej</h2>
|
||||
<p>
|
||||
{_('Moje')} dane osobowe zostały ujawnione podmiotom, które są właścicielami domen:
|
||||
</p>
|
||||
{this.getRangeDescription()}
|
||||
</>
|
||||
);
|
||||
}
|
||||
getNecessaryExplainers() {
|
||||
return [] as ExplainerKey[];
|
||||
}
|
||||
}
|
@ -27,3 +27,11 @@ nav {
|
||||
margin-right: 0.5rem;
|
||||
}
|
||||
}
|
||||
|
||||
p,
|
||||
li,
|
||||
h1,
|
||||
h2,
|
||||
h3 {
|
||||
max-width: 70ex;
|
||||
}
|
||||
|
@ -31,6 +31,7 @@ const words = {
|
||||
odmówiłeś: ['odmówiłeś', 'odmówiłaś', 'odmówiłoś', 'odmówiliście'],
|
||||
odznaczyłem: ['odznaczyłem', 'odznaczyłam', 'odznaczyłom', 'odznaczyliśmy'],
|
||||
proszę: ['proszę', 'proszę', 'proszę', 'prosimy'],
|
||||
odmówiłem: ['odmówiłem', 'odmówiłam', 'odmówiłom', 'odmówiliśmy'],
|
||||
} as { [key: string]: string[] };
|
||||
|
||||
export default words;
|
||||
|
Loading…
Reference in New Issue
Block a user