Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
100.00% covered (success)
100.00%
14 / 14
100.00% covered (success)
100.00%
3 / 3
CRAP
100.00% covered (success)
100.00%
1 / 1
ViolationImpactDictionary
100.00% covered (success)
100.00%
14 / 14
100.00% covered (success)
100.00%
3 / 3
3
100.00% covered (success)
100.00%
1 / 1
 __construct
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 getImpacts
100.00% covered (success)
100.00%
12 / 12
100.00% covered (success)
100.00%
1 / 1
1
 getImpactsKeys
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
1<?php
2
3/**
4 * This file is part of the MADIS - RGPD Management application.
5 *
6 * @copyright Copyright (c) 2018-2019 Soluris - Solutions Numériques Territoriales Innovantes
7 *
8 * This program is free software: you can redistribute it and/or modify
9 * it under the terms of the GNU Affero General Public License as published by
10 * the Free Software Foundation, either version 3 of the License, or
11 * (at your option) any later version.
12 *
13 * This program is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU Affero General Public License for more details.
17 *
18 * You should have received a copy of the GNU Affero General Public License
19 * along with this program. If not, see <https://www.gnu.org/licenses/>.
20 */
21
22declare(strict_types=1);
23
24namespace App\Domain\Registry\Dictionary;
25
26use App\Application\Dictionary\SimpleDictionary;
27
28class ViolationImpactDictionary extends SimpleDictionary
29{
30    public const IMPACT_LOSS_CONTROL_PERSONAL_DATA        = 'loss_control_personal_data';
31    public const IMPACT_LIMITATION_RIGHT                  = 'limitation_right';
32    public const IMPACT_DISCRIMINATION                    = 'discrimination';
33    public const IMPACT_IDENTITY_THEFT                    = 'identity_theft';
34    public const IMPACT_FRAUD                             = 'fraud';
35    public const IMPACT_UNAUTHORIZED_PSEUDO_LIFTING       = 'unauthorized_pseudo_lifting';
36    public const IMPACT_FINANCIAL_LOSSES                  = 'financial_losses';
37    public const IMPACT_REPUTATION_DAMAGE                 = 'reputation_damage';
38    public const IMPACT_LOSS_PROFESSIONAL_CONFIDENTIALITY = 'loss_professional_confidentiality';
39    public const IMPACT_OTHER                             = 'other';
40
41    public function __construct()
42    {
43        parent::__construct('registry_violation_impact', self::getImpacts());
44    }
45
46    /**
47     * Get an array of Impacts.
48     *
49     * @return array
50     */
51    public static function getImpacts()
52    {
53        return [
54            self::IMPACT_LOSS_CONTROL_PERSONAL_DATA        => 'Perte de contrôle sur leurs données personnelles',
55            self::IMPACT_LIMITATION_RIGHT                  => 'Limitation de leurs droits',
56            self::IMPACT_DISCRIMINATION                    => 'Discrimination',
57            self::IMPACT_IDENTITY_THEFT                    => 'Vol d\'identité',
58            self::IMPACT_FRAUD                             => 'Fraude',
59            self::IMPACT_UNAUTHORIZED_PSEUDO_LIFTING       => 'Levée non autorisée de pseudonymisation',
60            self::IMPACT_FINANCIAL_LOSSES                  => 'Pertes financières',
61            self::IMPACT_REPUTATION_DAMAGE                 => 'Atteinte à la réputation',
62            self::IMPACT_LOSS_PROFESSIONAL_CONFIDENTIALITY => 'Perte de la confidentialité de données protégées par un secret professionnel',
63            self::IMPACT_OTHER                             => 'Autre',
64        ];
65    }
66
67    /**
68     * Get keys of the Impacts array.
69     *
70     * @return array
71     */
72    public static function getImpactsKeys()
73    {
74        return \array_keys(self::getImpacts());
75    }
76}