1
0
mirror of https://github.com/phpbb/phpbb.git synced 2025-08-19 23:11:45 +02:00

[ticket/17413] Add migration for turnstile and acp demo

PHPBB-17413
This commit is contained in:
Marc Alexander
2024-10-12 20:36:12 +02:00
parent 52acd2709b
commit b55b42d09f
7 changed files with 146 additions and 3 deletions

View File

@@ -63,6 +63,17 @@ class legacy_wrapper implements plugin_interface
return false;
}
/**
* {@inheritDoc}
*/
public function set_name(string $name): void
{
if (method_exists($this->legacy_captcha, 'set_name'))
{
$this->legacy_captcha->set_name($name);
}
}
/**
* {@inheritDoc}
*/

View File

@@ -44,6 +44,13 @@ interface plugin_interface
*/
public function get_name(): string;
/**
* Set the service name of the plugin
*
* @param string $name
*/
public function set_name(string $name): void;
/**
* Display the captcha for the specified type
*

View File

@@ -26,6 +26,8 @@ class turnstile implements plugin_interface
/** @var language */
protected $language;
protected string $service_name = '';
public function __construct(config $config, language $language)
{
$this->config = $config;
@@ -34,7 +36,10 @@ class turnstile implements plugin_interface
public function is_available(): bool
{
return ($this->config->offsetGet('captcha_turnstile_key') ?? false);
$this->language->add_lang('captcha_turnstile');
return !empty($this->config->offsetGet('captcha_turnstile_sitekey'))
&& !empty($this->config->offsetGet('captcha_turnstile_secret'));
}
public function has_config(): bool
@@ -47,6 +52,14 @@ class turnstile implements plugin_interface
return 'CAPTCHA_TURNSTILE';
}
/**
* {@inheritDoc}
*/
public function set_name(string $name): void
{
$this->service_name = $name;
}
public function init(int $type): void
{
$this->language->add_lang('captcha_turnstile');
@@ -147,7 +160,7 @@ class turnstile implements plugin_interface
public function get_demo_template(): string
{
return '';
return 'captcha_turnstile_acp_demo.html';
}
public function garbage_collect(int $confirm_type = 0): void

View File

@@ -0,0 +1,48 @@
<?php
/**
*
* This file is part of the phpBB Forum Software package.
*
* @copyright (c) phpBB Limited <https://www.phpbb.com>
* @license GNU General Public License, version 2 (GPL-2.0)
*
* For full copyright and license information, please see
* the docs/CREDITS.txt file.
*
*/
namespace phpbb\db\migration\data\v400;
use phpbb\db\migration\migration;
class turnstile_captcha extends migration
{
public function effectively_installed(): bool
{
return $this->config->offsetExists('captcha_turnstile_sitekey')
&& $this->config->offsetExists('captcha_turnstile_secret');
}
public static function depends_on(): array
{
return [
'\phpbb\db\migration\data\v400\dev',
];
}
public function update_data(): array
{
return [
['config.add', ['captcha_turnstile_sitekey', '']],
['config.add', ['captcha_turnstile_secret', '']],
];
}
public function revert_data(): array
{
return [
['config.remove', ['captcha_turnstile_sitekey']],
['config.remove', ['captcha_turnstile_secret']],
];
}
}