From: Brion Vibber Date: Fri, 10 Jan 2014 23:16:40 +0000 (-0800) Subject: Add hooks in API action=createaccount for Captcha X-Git-Tag: 1.31.0-rc.0~17186^2~1 X-Git-Url: https://git.cyclocoop.org/%27.WWW_URL.%27admin/?a=commitdiff_plain;h=2fc330138eae41dde63ef0fd935f7b1fe2763c8d;p=lhc%2Fweb%2Fwiklou.git 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 --- 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 ); }