Code Duplication    Length = 28-28 lines in 2 locations

src/Surfnet/StepupSelfService/SelfServiceBundle/Service/SecondFactorService.php 2 locations

@@ 143-170 (lines=28) @@
140
               $vettedSecondFactors->getTotalItems() > 0;
141
    }
142
143
    public function identityHasSecondFactorOfStateWithId($identityId, $state, $secondFactorId)
144
    {
145
        switch ($state) {
146
            case 'unverified':
147
                $secondFactors = $this->findUnverifiedByIdentity($identityId);
148
                break;
149
            case 'verified':
150
                $secondFactors = $this->findVerifiedByIdentity($identityId);
151
                break;
152
            case 'vetted':
153
                $secondFactors = $this->findVettedByIdentity($identityId);
154
                break;
155
            default:
156
                throw new LogicException(sprintf('Invalid second factor state "%s" given.', $state));
157
        }
158
159
        if (count($secondFactors->getElements()) === 0) {
160
            return false;
161
        }
162
163
        foreach ($secondFactors->getElements() as $secondFactor) {
164
            if ($secondFactor->id === $secondFactorId) {
165
                return true;
166
            }
167
        }
168
169
        return false;
170
    }
171
172
    /**
173
     * Tests if the identity owns a second factor token for a given state, with a satisfiable LoA
@@ 180-207 (lines=28) @@
177
     * @param Loa $loa
178
     * @return bool
179
     */
180
    public function identityHasSecondFactorOfStateWithMinimalLoa($identityId, $state, Loa $loa)
181
    {
182
        switch ($state) {
183
            case 'unverified':
184
                $secondFactors = $this->findUnverifiedByIdentity($identityId);
185
                break;
186
            case 'verified':
187
                $secondFactors = $this->findVerifiedByIdentity($identityId);
188
                break;
189
            case 'vetted':
190
                $secondFactors = $this->findVettedByIdentity($identityId);
191
                break;
192
            default:
193
                throw new LogicException(sprintf('Invalid second factor state "%s" given.', $state));
194
        }
195
196
        if (count($secondFactors->getElements()) === 0) {
197
            return false;
198
        }
199
200
        foreach ($secondFactors->getElements() as $secondFactor) {
201
            if ($this->secondFactorTypeService->canSatisfy(new SecondFactorType($secondFactor->type), $loa)) {
202
                return true;
203
            }
204
        }
205
206
        return false;
207
    }
208
209
    /**
210
     * Returns the given registrant's unverified second factors.