API: Improvements to action=emailuser:
[lhc/web/wiklou.git] / includes / api / ApiQueryInfo.php
index 5353fcf..884473e 100644 (file)
@@ -68,7 +68,8 @@ class ApiQueryInfo extends ApiQueryBase {
                        'protect' => array( 'ApiQueryInfo', 'getProtectToken' ),
                        'move' => array( 'ApiQueryInfo', 'getMoveToken' ),
                        'block' => array( 'ApiQueryInfo', 'getBlockToken' ),
-                       'unblock' => array( 'ApiQueryInfo', 'getUnblockToken' )
+                       'unblock' => array( 'ApiQueryInfo', 'getUnblockToken' ),
+                       'email' => array( 'ApiQueryInfo', 'getEmailToken' ),
                );
                wfRunHooks('APIQueryInfoTokens', array(&$this->tokenFunctions));
                return $this->tokenFunctions;
@@ -153,6 +154,20 @@ class ApiQueryInfo extends ApiQueryBase {
                return self::getBlockToken($pageid, $title);
        }
 
+       public static function getEmailToken($pageid, $title)
+       {
+               global $wgUser;
+               if(!$wgUser->canSendEmail() || $wgUser->isBlockedFromEmailUser())
+                       return false;
+
+               static $cachedEmailToken = null;
+               if(!is_null($cachedEmailToken))
+                       return $cachedEmailToken;
+
+               $cachedEmailToken = $wgUser->editToken();
+               return $cachedEmailToken;
+       }
+
        public function execute() {
 
                global $wgUser;