mirror of
https://github.com/phpbb/phpbb.git
synced 2025-06-07 20:08:53 +00:00
[ticket/17413] Add migration for turnstile and acp demo
PHPBB-17413
This commit is contained in:
parent
52acd2709b
commit
b55b42d09f
7 changed files with 146 additions and 3 deletions
23
phpBB/adm/style/captcha_turnstile_acp_demo.html
Normal file
23
phpBB/adm/style/captcha_turnstile_acp_demo.html
Normal file
|
@ -0,0 +1,23 @@
|
|||
<dl>
|
||||
<dt><div id="captcha_turnstile"></div></dt>
|
||||
</dl>
|
||||
{% INCLUDEJS 'https://challenges.cloudflare.com/turnstile/v0/api.js' %}
|
||||
<script>
|
||||
function domReady(callBack) {
|
||||
if (document.readyState === 'loading') {
|
||||
document.addEventListener('DOMContentLoaded', callBack);
|
||||
} else {
|
||||
callBack();
|
||||
}
|
||||
}
|
||||
|
||||
domReady(() => {
|
||||
/* global turnstile */
|
||||
console.debug('_turnstileCb called');
|
||||
|
||||
turnstile.render('#captcha_turnstile', {
|
||||
sitekey: '1x00000000000000000000AA',
|
||||
theme: 'light',
|
||||
});
|
||||
});
|
||||
</script>
|
|
@ -64,4 +64,4 @@ services:
|
|||
calls:
|
||||
- ['set_name', ['core.captcha.plugins.turnstile']]
|
||||
tags:
|
||||
- { name: catpcha.plugins }
|
||||
- { name: captcha.plugins }
|
||||
|
|
41
phpBB/language/en/captcha_turnstile.php
Normal file
41
phpBB/language/en/captcha_turnstile.php
Normal file
|
@ -0,0 +1,41 @@
|
|||
<?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.
|
||||
*
|
||||
*/
|
||||
|
||||
/**
|
||||
* DO NOT CHANGE
|
||||
*/
|
||||
if (!defined('IN_PHPBB'))
|
||||
{
|
||||
exit;
|
||||
}
|
||||
|
||||
if (empty($lang) || !is_array($lang))
|
||||
{
|
||||
$lang = [];
|
||||
}
|
||||
|
||||
// DEVELOPERS PLEASE NOTE
|
||||
//
|
||||
// All language files should use UTF-8 as their encoding and the files must not contain a BOM.
|
||||
//
|
||||
// Placeholders can now contain order information, e.g. instead of
|
||||
// 'Page %s of %s' you can (and should) write 'Page %1$s of %2$s', this allows
|
||||
// translators to re-order the output of data while ensuring it remains correct
|
||||
//
|
||||
// You do not need this where single placeholders are used, e.g. 'Message %d' is fine
|
||||
// equally where a string contains only two placeholders which are used to wrap text
|
||||
// in a url you again do not need to specify an order e.g., 'Click %sHERE%s' is fine
|
||||
|
||||
$lang = array_merge($lang, [
|
||||
'CAPTCHA_TURNSTILE' => 'Turnstile',
|
||||
]);
|
|
@ -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}
|
||||
*/
|
||||
|
|
|
@ -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
|
||||
*
|
||||
|
|
|
@ -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
|
||||
|
|
48
phpBB/phpbb/db/migration/data/v400/turnstile_captcha.php
Normal file
48
phpBB/phpbb/db/migration/data/v400/turnstile_captcha.php
Normal 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']],
|
||||
];
|
||||
}
|
||||
}
|
Loading…
Add table
Reference in a new issue