Add hooks in API action=createaccount for Captcha
authorBrion Vibber <brion@pobox.com>
Fri, 10 Jan 2014 23:16:40 +0000 (15:16 -0800)
committerBrion Vibber <brion@pobox.com>
Fri, 17 Jan 2014 20:41:22 +0000 (12:41 -0800)
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
includes/api/ApiCreateAccount.php

index bbe1680..b617430 100644 (file)
@@ -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
index 439f46b..7727b28 100644 (file)
@@ -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 );
        }