mirror of
https://git.friendi.ca/friendica/friendica.git
synced 2025-06-07 20:04:32 +02:00
Create events for register_form and register_post hook
This commit is contained in:
parent
27e474c83c
commit
e4cb372760
5 changed files with 34 additions and 7 deletions
|
@ -86,6 +86,8 @@ final class HookEventBridge
|
|||
ArrayFilterEvent::UNBLOCK_CONTACT => 'unblock',
|
||||
ArrayFilterEvent::AVATAR_LOOKUP => 'avatar_lookup',
|
||||
ArrayFilterEvent::ACCOUNT_AUTHENTICATE => 'authenticate',
|
||||
ArrayFilterEvent::ACCOUNT_REGISTER_FORM => 'register_form',
|
||||
ArrayFilterEvent::ACCOUNT_REGISTER_POST => 'register_post',
|
||||
ArrayFilterEvent::ACCOUNT_REGISTER => 'register_account',
|
||||
ArrayFilterEvent::ACCOUNT_REMOVE => 'remove_user',
|
||||
ArrayFilterEvent::EVENT_CREATED => 'event_created',
|
||||
|
@ -163,6 +165,8 @@ final class HookEventBridge
|
|||
ArrayFilterEvent::UNBLOCK_CONTACT => 'onArrayFilterEvent',
|
||||
ArrayFilterEvent::AVATAR_LOOKUP => 'onArrayFilterEvent',
|
||||
ArrayFilterEvent::ACCOUNT_AUTHENTICATE => 'onArrayFilterEvent',
|
||||
ArrayFilterEvent::ACCOUNT_REGISTER_FORM => 'onArrayFilterEvent',
|
||||
ArrayFilterEvent::ACCOUNT_REGISTER_POST => 'onArrayFilterEvent',
|
||||
ArrayFilterEvent::ACCOUNT_REGISTER => 'onAccountRegisterEvent',
|
||||
ArrayFilterEvent::ACCOUNT_REMOVE => 'onAccountRemoveEvent',
|
||||
ArrayFilterEvent::EVENT_CREATED => 'onEventCreatedEvent',
|
||||
|
|
|
@ -122,6 +122,10 @@ final class ArrayFilterEvent extends Event
|
|||
|
||||
public const ACCOUNT_AUTHENTICATE = 'friendica.data.account_authenticate';
|
||||
|
||||
public const ACCOUNT_REGISTER_FORM = 'friendica.data.account_register_form';
|
||||
|
||||
public const ACCOUNT_REGISTER_POST = 'friendica.data.account_register_post';
|
||||
|
||||
public const ACCOUNT_REGISTER = 'friendica.data.account_register';
|
||||
|
||||
public const ACCOUNT_REMOVE = 'friendica.data.account_remove';
|
||||
|
|
|
@ -12,18 +12,19 @@ use Friendica\App\BaseURL;
|
|||
use Friendica\BaseModule;
|
||||
use Friendica\Content\Text\BBCode;
|
||||
use Friendica\Core\Config\Capability\IManageConfigValues;
|
||||
use Friendica\Core\Hook;
|
||||
use Friendica\Core\L10n;
|
||||
use Friendica\Core\Renderer;
|
||||
use Friendica\Core\Session\Capability\IHandleUserSessions;
|
||||
use Friendica\Core\Worker;
|
||||
use Friendica\Database\DBA;
|
||||
use Friendica\DI;
|
||||
use Friendica\Event\ArrayFilterEvent;
|
||||
use Friendica\Model;
|
||||
use Friendica\Model\User;
|
||||
use Friendica\Util\DateTimeFormat;
|
||||
use Friendica\Util\Profiler;
|
||||
use Friendica\Util\Proxy;
|
||||
use Psr\EventDispatcher\EventDispatcherInterface;
|
||||
use Psr\Log\LoggerInterface;
|
||||
|
||||
/**
|
||||
|
@ -41,13 +42,16 @@ class Register extends BaseModule
|
|||
/** @var IHandleUserSessions */
|
||||
private $session;
|
||||
|
||||
public function __construct(IHandleUserSessions $session, L10n $l10n, BaseURL $baseUrl, Arguments $args, LoggerInterface $logger, Profiler $profiler, Response $response, IManageConfigValues $config, array $server, array $parameters = [])
|
||||
private EventDispatcherInterface $eventDispatcher;
|
||||
|
||||
public function __construct(IHandleUserSessions $session, EventDispatcherInterface $eventDispatcher, L10n $l10n, BaseURL $baseUrl, Arguments $args, LoggerInterface $logger, Profiler $profiler, Response $response, IManageConfigValues $config, array $server, array $parameters = [])
|
||||
{
|
||||
parent::__construct($l10n, $baseUrl, $args, $logger, $profiler, $response, $server, $parameters);
|
||||
|
||||
$this->tos = new Tos($l10n, $baseUrl, $args, $logger, $profiler, $response, $config, $server, $parameters);
|
||||
|
||||
$this->session = $session;
|
||||
$this->eventDispatcher = $eventDispatcher;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -129,11 +133,15 @@ class Register extends BaseModule
|
|||
|
||||
$tpl = Renderer::getMarkupTemplate('register.tpl');
|
||||
|
||||
$arr = ['template' => $tpl];
|
||||
$hook_data = [
|
||||
'template' => $tpl,
|
||||
];
|
||||
|
||||
Hook::callAll('register_form', $arr);
|
||||
$hook_data = $this->eventDispatcher->dispatch(
|
||||
new ArrayFilterEvent(ArrayFilterEvent::ACCOUNT_REGISTER_FORM, $hook_data),
|
||||
)->getArray();
|
||||
|
||||
$tpl = $arr['template'];
|
||||
$tpl = $hook_data['template'] ?? $tpl;
|
||||
|
||||
$o = Renderer::replaceMacros($tpl, [
|
||||
'$invitations' => DI::config()->get('system', 'invitation_only'),
|
||||
|
@ -190,8 +198,13 @@ class Register extends BaseModule
|
|||
{
|
||||
BaseModule::checkFormSecurityTokenRedirectOnError('/register', 'register');
|
||||
|
||||
$arr = ['post' => $_POST];
|
||||
Hook::callAll('register_post', $arr);
|
||||
$arr = [
|
||||
'post' => $_POST,
|
||||
];
|
||||
|
||||
$arr = $this->eventDispatcher->dispatch(
|
||||
new ArrayFilterEvent(ArrayFilterEvent::ACCOUNT_REGISTER_POST, $arr),
|
||||
)->getArray();
|
||||
|
||||
$additional_account = false;
|
||||
|
||||
|
|
|
@ -75,6 +75,8 @@ class HookEventBridgeTest extends TestCase
|
|||
ArrayFilterEvent::UNBLOCK_CONTACT => 'onArrayFilterEvent',
|
||||
ArrayFilterEvent::AVATAR_LOOKUP => 'onArrayFilterEvent',
|
||||
ArrayFilterEvent::ACCOUNT_AUTHENTICATE => 'onArrayFilterEvent',
|
||||
ArrayFilterEvent::ACCOUNT_REGISTER_FORM => 'onArrayFilterEvent',
|
||||
ArrayFilterEvent::ACCOUNT_REGISTER_POST => 'onArrayFilterEvent',
|
||||
ArrayFilterEvent::ACCOUNT_REGISTER => 'onAccountRegisterEvent',
|
||||
ArrayFilterEvent::ACCOUNT_REMOVE => 'onAccountRemoveEvent',
|
||||
ArrayFilterEvent::EVENT_CREATED => 'onEventCreatedEvent',
|
||||
|
@ -488,6 +490,8 @@ class HookEventBridgeTest extends TestCase
|
|||
[ArrayFilterEvent::UNBLOCK_CONTACT, 'unblock'],
|
||||
[ArrayFilterEvent::AVATAR_LOOKUP, 'avatar_lookup'],
|
||||
[ArrayFilterEvent::ACCOUNT_AUTHENTICATE, 'authenticate'],
|
||||
[ArrayFilterEvent::ACCOUNT_REGISTER_FORM, 'register_form'],
|
||||
[ArrayFilterEvent::ACCOUNT_REGISTER_POST, 'register_post'],
|
||||
[ArrayFilterEvent::ACCOUNT_REGISTER, 'register_account'],
|
||||
[ArrayFilterEvent::ACCOUNT_REMOVE, 'remove_user'],
|
||||
[ArrayFilterEvent::EVENT_CREATED, 'event_created'],
|
||||
|
|
|
@ -72,6 +72,8 @@ class ArrayFilterEventTest extends TestCase
|
|||
[ArrayFilterEvent::UNBLOCK_CONTACT, 'friendica.data.unblock_contact'],
|
||||
[ArrayFilterEvent::AVATAR_LOOKUP, 'friendica.data.avatar_lookup'],
|
||||
[ArrayFilterEvent::ACCOUNT_AUTHENTICATE, 'friendica.data.account_authenticate'],
|
||||
[ArrayFilterEvent::ACCOUNT_REGISTER_FORM, 'friendica.data.account_register_form'],
|
||||
[ArrayFilterEvent::ACCOUNT_REGISTER_POST, 'friendica.data.account_register_post'],
|
||||
[ArrayFilterEvent::ACCOUNT_REGISTER, 'friendica.data.account_register'],
|
||||
[ArrayFilterEvent::ACCOUNT_REMOVE, 'friendica.data.account_remove'],
|
||||
[ArrayFilterEvent::EVENT_CREATED, 'friendica.data.event_created'],
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue