Completed
Push — main ( 68a97b...17b783 )
by
unknown
24s queued 18s
created

applySsoRegistrationBypassOptionChangedEvent()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 6
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 3
nc 1
nop 1
dl 0
loc 6
rs 10
c 0
b 0
f 0
1
<?php
2
3
/**
4
 * Copyright 2016 SURFnet B.V.
5
 *
6
 * Licensed under the Apache License, Version 2.0 (the "License");
7
 * you may not use this file except in compliance with the License.
8
 * You may obtain a copy of the License at
9
 *
10
 *     http://www.apache.org/licenses/LICENSE-2.0
11
 *
12
 * Unless required by applicable law or agreed to in writing, software
13
 * distributed under the License is distributed on an "AS IS" BASIS,
14
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
 * See the License for the specific language governing permissions and
16
 * limitations under the License.
17
 */
0 ignored issues
show
Coding Style introduced by
Missing @link tag in file comment
Loading history...
18
19
namespace Surfnet\StepupMiddleware\ApiBundle\Configuration\Projector;
20
21
use Surfnet\Stepup\Identity\Event\IdentityForgottenEvent;
22
use Surfnet\Stepup\Projector\Projector;
23
use Surfnet\Stepup\Configuration\Event\InstitutionConfigurationRemovedEvent;
24
use Surfnet\Stepup\Configuration\Event\NewInstitutionConfigurationCreatedEvent;
25
use Surfnet\Stepup\Configuration\Event\NumberOfTokensPerIdentityOptionChangedEvent;
26
use Surfnet\Stepup\Configuration\Event\SelfAssertedTokensOptionChangedEvent;
27
use Surfnet\Stepup\Configuration\Event\SelfVetOptionChangedEvent;
28
use Surfnet\Stepup\Configuration\Event\ShowRaaContactInformationOptionChangedEvent;
29
use Surfnet\Stepup\Configuration\Event\SsoOn2faOptionChangedEvent;
30
use Surfnet\Stepup\Configuration\Event\SsoRegistrationBypassOptionChangedEvent;
31
use Surfnet\Stepup\Configuration\Event\UseRaLocationsOptionChangedEvent;
32
use Surfnet\Stepup\Configuration\Event\VerifyEmailOptionChangedEvent;
33
use Surfnet\StepupMiddleware\ApiBundle\Configuration\Entity\InstitutionConfigurationOptions;
34
use Surfnet\StepupMiddleware\ApiBundle\Configuration\Repository\AllowedSecondFactorRepository;
35
use Surfnet\StepupMiddleware\ApiBundle\Configuration\Repository\InstitutionConfigurationOptionsRepository;
36
37
/**
38
 * @SuppressWarnings(PHPMD.CouplingBetweenObjects)
39
 * @SuppressWarnings(PHPMD.TooManyPublicMethods)
40
 */
0 ignored issues
show
Coding Style introduced by
Missing @category tag in class comment
Loading history...
Coding Style introduced by
Missing @package tag in class comment
Loading history...
Coding Style introduced by
Missing @author tag in class comment
Loading history...
Coding Style introduced by
Missing @license tag in class comment
Loading history...
Coding Style introduced by
Missing @link tag in class comment
Loading history...
41
final class InstitutionConfigurationOptionsProjector extends Projector
42
{
43
    public function __construct(
44
        private readonly InstitutionConfigurationOptionsRepository $institutionConfigurationOptionsRepository,
45
        private readonly AllowedSecondFactorRepository $allowedSecondFactorRepository,
46
    ) {
47
    }
48
49
    public function applyNewInstitutionConfigurationCreatedEvent(NewInstitutionConfigurationCreatedEvent $event): void
50
    {
51
        $institutionConfigurationOptions = InstitutionConfigurationOptions::create(
52
            $event->institution,
53
            $event->useRaLocationsOption,
54
            $event->showRaaContactInformationOption,
55
            $event->verifyEmailOption,
56
            $event->numberOfTokensPerIdentityOption,
57
            $event->ssoOn2faOption,
58
            $event->ssoRegistrationBypassOption,
59
            $event->selfVetOption,
60
            $event->selfAssertedTokensOption,
61
        );
62
63
        $this->institutionConfigurationOptionsRepository->save($institutionConfigurationOptions);
64
    }
65
66
    public function applyUseRaLocationsOptionChangedEvent(UseRaLocationsOptionChangedEvent $event): void
67
    {
68
        $institutionConfigurationOptions = $this->institutionConfigurationOptionsRepository->findConfigurationOptionsFor(
69
            $event->institution,
70
        );
71
        $institutionConfigurationOptions->useRaLocationsOption = $event->useRaLocationsOption;
72
73
        $this->institutionConfigurationOptionsRepository->save($institutionConfigurationOptions);
0 ignored issues
show
Bug introduced by
It seems like $institutionConfigurationOptions can also be of type null; however, parameter $institutionConfigurationOptions of Surfnet\StepupMiddleware...tionsRepository::save() does only seem to accept Surfnet\StepupMiddleware...ionConfigurationOptions, maybe add an additional type check? ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-type  annotation

73
        $this->institutionConfigurationOptionsRepository->save(/** @scrutinizer ignore-type */ $institutionConfigurationOptions);
Loading history...
74
    }
75
76
    public function applyShowRaaContactInformationOptionChangedEvent(ShowRaaContactInformationOptionChangedEvent $event,): void
77
    {
78
        $institutionConfigurationOptions = $this->institutionConfigurationOptionsRepository->findConfigurationOptionsFor(
79
            $event->institution,
80
        );
81
        $institutionConfigurationOptions->showRaaContactInformationOption = $event->showRaaContactInformationOption;
82
83
        $this->institutionConfigurationOptionsRepository->save($institutionConfigurationOptions);
0 ignored issues
show
Bug introduced by
It seems like $institutionConfigurationOptions can also be of type null; however, parameter $institutionConfigurationOptions of Surfnet\StepupMiddleware...tionsRepository::save() does only seem to accept Surfnet\StepupMiddleware...ionConfigurationOptions, maybe add an additional type check? ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-type  annotation

83
        $this->institutionConfigurationOptionsRepository->save(/** @scrutinizer ignore-type */ $institutionConfigurationOptions);
Loading history...
84
    }
85
86
    public function applyVerifyEmailOptionChangedEvent(VerifyEmailOptionChangedEvent $event): void
87
    {
88
        $institutionConfigurationOptions = $this->institutionConfigurationOptionsRepository->findConfigurationOptionsFor(
89
            $event->institution,
90
        );
91
        $institutionConfigurationOptions->verifyEmailOption = $event->verifyEmailOption;
92
93
        $this->institutionConfigurationOptionsRepository->save($institutionConfigurationOptions);
0 ignored issues
show
Bug introduced by
It seems like $institutionConfigurationOptions can also be of type null; however, parameter $institutionConfigurationOptions of Surfnet\StepupMiddleware...tionsRepository::save() does only seem to accept Surfnet\StepupMiddleware...ionConfigurationOptions, maybe add an additional type check? ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-type  annotation

93
        $this->institutionConfigurationOptionsRepository->save(/** @scrutinizer ignore-type */ $institutionConfigurationOptions);
Loading history...
94
    }
95
96
    public function applyNumberOfTokensPerIdentityOptionChangedEvent(NumberOfTokensPerIdentityOptionChangedEvent $event,): void
97
    {
98
        $institutionConfigurationOptions = $this->institutionConfigurationOptionsRepository->findConfigurationOptionsFor(
99
            $event->institution,
100
        );
101
        $institutionConfigurationOptions->numberOfTokensPerIdentityOption = $event->numberOfTokensPerIdentityOption;
102
103
        $this->institutionConfigurationOptionsRepository->save($institutionConfigurationOptions);
0 ignored issues
show
Bug introduced by
It seems like $institutionConfigurationOptions can also be of type null; however, parameter $institutionConfigurationOptions of Surfnet\StepupMiddleware...tionsRepository::save() does only seem to accept Surfnet\StepupMiddleware...ionConfigurationOptions, maybe add an additional type check? ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-type  annotation

103
        $this->institutionConfigurationOptionsRepository->save(/** @scrutinizer ignore-type */ $institutionConfigurationOptions);
Loading history...
104
    }
105
106
    public function applySelfVetOptionChangedEvent(SelfVetOptionChangedEvent $event): void
107
    {
108
        $institutionConfigurationOptions = $this->institutionConfigurationOptionsRepository->findConfigurationOptionsFor(
109
            $event->institution,
110
        );
111
        $institutionConfigurationOptions->selfVetOption = $event->selfVetOption;
112
113
        $this->institutionConfigurationOptionsRepository->save($institutionConfigurationOptions);
0 ignored issues
show
Bug introduced by
It seems like $institutionConfigurationOptions can also be of type null; however, parameter $institutionConfigurationOptions of Surfnet\StepupMiddleware...tionsRepository::save() does only seem to accept Surfnet\StepupMiddleware...ionConfigurationOptions, maybe add an additional type check? ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-type  annotation

113
        $this->institutionConfigurationOptionsRepository->save(/** @scrutinizer ignore-type */ $institutionConfigurationOptions);
Loading history...
114
    }
115
116
    public function applySsoOn2faOptionChangedEvent(SsoOn2faOptionChangedEvent $event): void
117
    {
118
        $institutionConfigurationOptions = $this->institutionConfigurationOptionsRepository->findConfigurationOptionsFor(
119
            $event->institution,
120
        );
121
        $institutionConfigurationOptions->ssoOn2faOption = $event->ssoOn2faOption;
122
123
        $this->institutionConfigurationOptionsRepository->save($institutionConfigurationOptions);
0 ignored issues
show
Bug introduced by
It seems like $institutionConfigurationOptions can also be of type null; however, parameter $institutionConfigurationOptions of Surfnet\StepupMiddleware...tionsRepository::save() does only seem to accept Surfnet\StepupMiddleware...ionConfigurationOptions, maybe add an additional type check? ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-type  annotation

123
        $this->institutionConfigurationOptionsRepository->save(/** @scrutinizer ignore-type */ $institutionConfigurationOptions);
Loading history...
124
    }
125
126
    public function applySsoRegistrationBypassOptionChangedEvent(SsoRegistrationBypassOptionChangedEvent $event): void
127
    {
128
        $institutionConfigurationOptions = $this->institutionConfigurationOptionsRepository->findConfigurationOptionsFor($event->institution);
129
        $institutionConfigurationOptions->ssoRegistrationBypassOption = $event->ssoRegistrationBypassOption;
130
131
        $this->institutionConfigurationOptionsRepository->save($institutionConfigurationOptions);
0 ignored issues
show
Bug introduced by
It seems like $institutionConfigurationOptions can also be of type null; however, parameter $institutionConfigurationOptions of Surfnet\StepupMiddleware...tionsRepository::save() does only seem to accept Surfnet\StepupMiddleware...ionConfigurationOptions, maybe add an additional type check? ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-type  annotation

131
        $this->institutionConfigurationOptionsRepository->save(/** @scrutinizer ignore-type */ $institutionConfigurationOptions);
Loading history...
132
    }
133
134
135
    public function applySelfAssertedTokensOptionChangedEvent(SelfAssertedTokensOptionChangedEvent $event): void
136
    {
137
        $institutionConfigurationOptions = $this->institutionConfigurationOptionsRepository->findConfigurationOptionsFor(
138
            $event->institution,
139
        );
140
        $institutionConfigurationOptions->selfAssertedTokensOption = $event->selfAssertedTokensOption;
141
142
        $this->institutionConfigurationOptionsRepository->save($institutionConfigurationOptions);
0 ignored issues
show
Bug introduced by
It seems like $institutionConfigurationOptions can also be of type null; however, parameter $institutionConfigurationOptions of Surfnet\StepupMiddleware...tionsRepository::save() does only seem to accept Surfnet\StepupMiddleware...ionConfigurationOptions, maybe add an additional type check? ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-type  annotation

142
        $this->institutionConfigurationOptionsRepository->save(/** @scrutinizer ignore-type */ $institutionConfigurationOptions);
Loading history...
143
    }
144
145
    public function applyInstitutionConfigurationRemovedEvent(InstitutionConfigurationRemovedEvent $event): void
146
    {
147
        $this->institutionConfigurationOptionsRepository->removeConfigurationOptionsFor($event->institution);
148
        $this->allowedSecondFactorRepository->clearAllowedSecondFactorListFor($event->institution);
149
    }
150
151
    protected function applyIdentityForgottenEvent(IdentityForgottenEvent $event): void
152
    {
153
        // do nothing, no sensitive data in this projection
154
    }
155
}
156