| @@ 231-249 (lines=19) @@ | ||
| 228 | * @param string $verificationNonce |
|
| 229 | * @return UnverifiedSecondFactor|null |
|
| 230 | */ |
|
| 231 | public function findUnverifiedByVerificationNonce($identityId, $verificationNonce) |
|
| 232 | { |
|
| 233 | $secondFactors = $this->secondFactors->searchUnverified( |
|
| 234 | (new UnverifiedSecondFactorSearchQuery()) |
|
| 235 | ->setIdentityId($identityId) |
|
| 236 | ->setVerificationNonce($verificationNonce) |
|
| 237 | ); |
|
| 238 | ||
| 239 | $elements = $secondFactors->getElements(); |
|
| 240 | ||
| 241 | switch (count($elements)) { |
|
| 242 | case 0: |
|
| 243 | return null; |
|
| 244 | case 1: |
|
| 245 | return reset($elements); |
|
| 246 | default: |
|
| 247 | throw new LogicException('There cannot be more than one unverified second factor with the same nonce'); |
|
| 248 | } |
|
| 249 | } |
|
| 250 | ||
| 251 | /** |
|
| 252 | * @param string $secondFactorId |
|
| @@ 256-273 (lines=18) @@ | ||
| 253 | * @param string $identityId |
|
| 254 | * @return null|string |
|
| 255 | */ |
|
| 256 | public function getRegistrationCode($secondFactorId, $identityId) |
|
| 257 | { |
|
| 258 | $query = (new VerifiedSecondFactorSearchQuery()) |
|
| 259 | ->setIdentityId($identityId) |
|
| 260 | ->setSecondFactorId($secondFactorId); |
|
| 261 | ||
| 262 | /** @var VerifiedSecondFactor[] $verifiedSecondFactors */ |
|
| 263 | $verifiedSecondFactors = $this->secondFactors->searchVerified($query)->getElements(); |
|
| 264 | ||
| 265 | switch (count($verifiedSecondFactors)) { |
|
| 266 | case 0: |
|
| 267 | return null; |
|
| 268 | case 1: |
|
| 269 | return reset($verifiedSecondFactors)->registrationCode; |
|
| 270 | default: |
|
| 271 | throw new LogicException('Searching by second factor ID cannot result in multiple results.'); |
|
| 272 | } |
|
| 273 | } |
|
| 274 | } |
|
| 275 | ||