web-base/Core/API/Traits/Captcha.trait.php

30 lines
773 B
PHP

<?php
namespace Core\API\Traits;
use Core\API\Parameter\StringType;
use Core\API\VerifyCaptcha;
use Core\Objects\Context;
trait Captcha {
function addCaptchaParameters(Context $context, array &$parameters): void {
$settings = $context->getSettings();
if ($settings->isCaptchaEnabled()) {
$parameters["captcha"] = new StringType("captcha");
}
}
function checkCaptcha(string $action): bool {
$settings = $this->context->getSettings();
if ($settings->isCaptchaEnabled()) {
$captcha = $this->getParam("captcha");
$req = new VerifyCaptcha($this->context);
if (!$req->execute(array("captcha" => $captcha, "action" => $action))) {
return $this->createError($req->getLastError());
}
}
return true;
}
}