PluginProbe ʕ •ᴥ•ʔ
Booking for Appointments and Events Calendar – Amelia / trunk
Booking for Appointments and Events Calendar – Amelia vtrunk
2.4.3 2.4.2 2.4.1 2.4 trunk 1.2.1 1.2.10 1.2.11 1.2.12 1.2.13 1.2.14 1.2.15 1.2.16 1.2.17 1.2.18 1.2.19 1.2.2 1.2.20 1.2.21 1.2.22 1.2.23 1.2.24 1.2.25 1.2.26 1.2.27 1.2.28 1.2.29 1.2.3 1.2.30 1.2.31 1.2.32 1.2.33 1.2.34 1.2.35 1.2.36 1.2.37 1.2.38 1.2.4 1.2.5 1.2.6 1.2.7 1.2.8 1.2.9 2.0 2.0.1 2.0.2 2.1 2.1.1 2.1.2 2.1.3 2.2 2.2.1 2.3
ameliabooking / src / Application / Commands / Google / VerifyRecaptchaCommandHandler.php
ameliabooking / src / Application / Commands / Google Last commit date
VerifyRecaptchaCommand.php 3 months ago VerifyRecaptchaCommandHandler.php 3 months ago
VerifyRecaptchaCommandHandler.php
54 lines
1 <?php
2
3 namespace AmeliaBooking\Application\Commands\Google;
4
5 use AmeliaBooking\Application\Commands\CommandHandler;
6 use AmeliaBooking\Application\Commands\CommandResult;
7 use AmeliaBooking\Application\Common\Exceptions\AccessDeniedException;
8 use AmeliaBooking\Domain\Entity\Entities;
9
10 /**
11 * Class VerifyRecaptchaCommandHandler
12 *
13 * @package AmeliaBooking\Application\Commands\Google
14 */
15 class VerifyRecaptchaCommandHandler extends CommandHandler
16 {
17 /**
18 * @param VerifyRecaptchaCommand $command
19 *
20 * @return CommandResult
21 * @throws AccessDeniedException
22 */
23 public function handle(VerifyRecaptchaCommand $command)
24 {
25 $result = new CommandResult();
26
27 if (!$this->getContainer()->getPermissionsService()->currentUserCanWrite(Entities::SETTINGS)) {
28 throw new AccessDeniedException('You are not allowed to read settings.');
29 }
30
31 $fields = $command->getFields();
32 $secret = isset($fields['secret']) ? $fields['secret'] : '';
33 $token = isset($fields['token']) ? $fields['token'] : null;
34
35 /** @var \AmeliaBooking\Infrastructure\Services\Recaptcha\AbstractRecaptchaService $recaptchaService */
36 $recaptchaService = $this->getContainer()->get('infrastructure.recaptcha.service');
37
38 $verification = $recaptchaService->verifyWithSecret($secret, $token);
39
40 if ($verification['success']) {
41 $result->setResult(CommandResult::RESULT_SUCCESS);
42 $result->setMessage($verification['message']);
43 } else {
44 $result->setResult(CommandResult::RESULT_ERROR);
45 $result->setMessage($verification['message']);
46 if (isset($verification['error_codes'])) {
47 $result->setData(['error_codes' => $verification['error_codes']]);
48 }
49 }
50
51 return $result;
52 }
53 }
54