From 2fc330138eae41dde63ef0fd935f7b1fe2763c8d Mon Sep 17 00:00:00 2001 From: Brion Vibber Date: Fri, 10 Jan 2014 15:16:40 -0800 Subject: [PATCH] Add hooks in API action=createaccount for Captcha New hooks: * AddNewAccountApiForm * AddNewAccountApiResult These hooks are used in ConfirmEdit here: Id628def Sample API client: https://github.com/brion/api-createaccount Bug: 46072 Change-Id: If5b7dab80ac85dbfa0f7a54a445356783df5e914 --- docs/hooks.txt | 9 +++++++++ includes/api/ApiCreateAccount.php | 4 ++++ 2 files changed, 13 insertions(+) diff --git a/docs/hooks.txt b/docs/hooks.txt index bbe1680201..b61743000a 100644 --- a/docs/hooks.txt +++ b/docs/hooks.txt @@ -295,6 +295,15 @@ $article: Article object $user: the User object that was created. (Parameter added in 1.7) $byEmail: true when account was created "by email" (added in 1.12) +'AddNewAccountApiForm': Allow modifying internal login form when creating an account via API. +$apiModule: the ApiCreateAccount module calling +$loginForm: the LoginForm used + +'AddNewAccountApiResult': Modify API output when creating a new account via API. +$apiModule: the ApiCreateAccount module calling +$loginForm: the LoginForm used +&$result: associative array for API result data + 'AfterFinalPageOutput': At the end of OutputPage::output() but before final ob_end_flush() which will send the buffered output to the client. This allows for last-minute modification of the output within the buffer by using diff --git a/includes/api/ApiCreateAccount.php b/includes/api/ApiCreateAccount.php index 439f46b9ad..7727b282c0 100644 --- a/includes/api/ApiCreateAccount.php +++ b/includes/api/ApiCreateAccount.php @@ -83,6 +83,7 @@ class ApiCreateAccount extends ApiBase { $loginForm = new LoginForm(); $loginForm->setContext( $context ); + wfRunHooks( 'AddNewAccountApiForm', array( $this, $loginForm ) ); $loginForm->load(); $status = $loginForm->addNewaccountInternal(); @@ -159,6 +160,9 @@ class ApiCreateAccount extends ApiBase { $result['result'] = 'success'; } + // Give extensions a chance to modify the API result data + wfRunHooks( 'AddNewAccountApiResult', array( $this, $loginForm, &$result ) ); + $apiResult->addValue( null, 'createaccount', $result ); } -- 2.20.1