<?php
/**
- * Resource loader module for user tokens.
+ * ResourceLoader module for user tokens.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
/**
* Fetch the tokens for the current user.
*
+ * @param ResourceLoaderContext $context
* @return array List of tokens keyed by token type
*/
- protected function contextUserTokens() {
- global $wgUser;
+ protected function contextUserTokens( ResourceLoaderContext $context ) {
+ $user = $context->getUserObj();
return array(
- 'editToken' => $wgUser->getEditToken(),
- 'patrolToken' => $wgUser->getEditToken( 'patrol' ),
- 'watchToken' => $wgUser->getEditToken( 'watch' ),
+ 'editToken' => $user->getEditToken(),
+ 'patrolToken' => $user->getEditToken( 'patrol' ),
+ 'watchToken' => $user->getEditToken( 'watch' ),
+ 'csrfToken' => $user->getEditToken(),
);
}
/**
+ * Generate the JavaScript content of this module.
+ *
+ * Add '@nomin' annotation to prevent the module's contents from getting
+ * cached (T84960).
+ *
* @param ResourceLoaderContext $context
* @return string
*/
public function getScript( ResourceLoaderContext $context ) {
- return Xml::encodeJsCall( 'mw.user.tokens.set',
- array( $this->contextUserTokens() ),
+ return Xml::encodeJsCall(
+ 'mw.user.tokens.set',
+ array( $this->contextUserTokens( $context ) ),
ResourceLoader::inDebugMode()
- );
+ ) . ResourceLoader::FILTER_NOMIN;
}
/**