mirror of
https://github.com/phpbb/phpbb.git
synced 2025-06-10 13:28:55 +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:
|
calls:
|
||||||
- ['set_name', ['core.captcha.plugins.turnstile']]
|
- ['set_name', ['core.captcha.plugins.turnstile']]
|
||||||
tags:
|
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;
|
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}
|
* {@inheritDoc}
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -44,6 +44,13 @@ interface plugin_interface
|
||||||
*/
|
*/
|
||||||
public function get_name(): string;
|
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
|
* Display the captcha for the specified type
|
||||||
*
|
*
|
||||||
|
|
|
@ -26,6 +26,8 @@ class turnstile implements plugin_interface
|
||||||
/** @var language */
|
/** @var language */
|
||||||
protected $language;
|
protected $language;
|
||||||
|
|
||||||
|
protected string $service_name = '';
|
||||||
|
|
||||||
public function __construct(config $config, language $language)
|
public function __construct(config $config, language $language)
|
||||||
{
|
{
|
||||||
$this->config = $config;
|
$this->config = $config;
|
||||||
|
@ -34,7 +36,10 @@ class turnstile implements plugin_interface
|
||||||
|
|
||||||
public function is_available(): bool
|
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
|
public function has_config(): bool
|
||||||
|
@ -47,6 +52,14 @@ class turnstile implements plugin_interface
|
||||||
return 'CAPTCHA_TURNSTILE';
|
return 'CAPTCHA_TURNSTILE';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* {@inheritDoc}
|
||||||
|
*/
|
||||||
|
public function set_name(string $name): void
|
||||||
|
{
|
||||||
|
$this->service_name = $name;
|
||||||
|
}
|
||||||
|
|
||||||
public function init(int $type): void
|
public function init(int $type): void
|
||||||
{
|
{
|
||||||
$this->language->add_lang('captcha_turnstile');
|
$this->language->add_lang('captcha_turnstile');
|
||||||
|
@ -147,7 +160,7 @@ class turnstile implements plugin_interface
|
||||||
|
|
||||||
public function get_demo_template(): string
|
public function get_demo_template(): string
|
||||||
{
|
{
|
||||||
return '';
|
return 'captcha_turnstile_acp_demo.html';
|
||||||
}
|
}
|
||||||
|
|
||||||
public function garbage_collect(int $confirm_type = 0): void
|
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