Legoktm has uploaded a new change for review.
https://gerrit.wikimedia.org/r/94685
Change subject: Clean up global state when job finishes
......................................................................
Clean up global state when job finishes
Change-Id: Iff001ac95c0d7236c58434fddb843a52f32aa202
---
M MassMessageJob.php
1 file changed, 16 insertions(+), 3 deletions(-)
git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/MassMessage
refs/changes/85/94685/1
diff --git a/MassMessageJob.php b/MassMessageJob.php
index 0ed30c2..84a8e33 100644
--- a/MassMessageJob.php
+++ b/MassMessageJob.php
@@ -193,20 +193,26 @@
function makeAPIRequest( array $params ) {
global $wgUser, $wgRequest;
+ $oldRequest = $wgRequest;
+ $oldUser = $wgUser;
+
$wgRequest = new DerivativeRequest(
$wgRequest,
$params,
true // was posted?
);
- $wgUser = MassMessage::getMessengerUser();
// New user objects will use $wgRequest, so we set that
// to our DerivativeRequest, so we don't run into any issues
+ $wgUser = MassMessage::getMessengerUser();
- RequestContext::getMain()->setUser( $wgUser );
- RequestContext::getMain()->setRequest( $wgRequest );
+ $context = RequestContext::getMain();
// All further internal API requests will use the main
// RequestContext, so setting it here will fix it for
// all other internal uses, like how LQT does
+ $oldCUser = $context->getUser();
+ $oldCRequest = $context->getRequest();
+ $context->setUser( $wgUser );
+ $context->setRequest( $wgRequest );
$api = new ApiMain(
$wgRequest,
@@ -218,5 +224,12 @@
} catch ( UsageException $e ) {
$this->logLocalFailure( $e->getCodeString() );
}
+
+ // Cleanup all the stuff we polluted
+ $context->setUser( $oldCUser );
+ $context->setRequest( $oldCRequest );
+ $wgUser = $oldUser;
+ $wgRequest = $oldRequest;
+
}
}
--
To view, visit https://gerrit.wikimedia.org/r/94685
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: Iff001ac95c0d7236c58434fddb843a52f32aa202
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/MassMessage
Gerrit-Branch: master
Gerrit-Owner: Legoktm <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits