* (T206979) Fix PHP 7.3 warnings of using "compact()" when some variables may
not be set.
* Fix PHP 7.3 warnings "preg_replace(): [...] invalid range in character class"
+* (T207540) Include IP address in "Login for $1 succeeded" log entry.
== MediaWiki 1.31.1 ==
// Step 4: Authentication complete! Set the user in the session and
// clean up.
- $this->logger->info( 'Login for {user} succeeded', [
+ $this->logger->info( 'Login for {user} succeeded from {clientip}', [
'user' => $user->getName(),
+ 'clientip' => $this->request->getIP(),
] );
/** @var RememberMeAuthenticationRequest $req */
$req = AuthenticationRequest::getRequestByClass(
"config-help": "help",
"config-help-tooltip": "click to expand",
"config-nofile": "File \"$1\" could not be found. Has it been deleted?",
- "config-extension-link": "Did you know that your wiki supports [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Extensions extensions]?\n\nYou can browse [https://www.mediawiki.org/wiki/Special:MyLanguage/Category:Extensions_by_category extensions by category] or the [https://www.mediawiki.org/wiki/Extension_Matrix Extension Matrix] to see the full list of extensions.",
+ "config-extension-link": "Did you know that your wiki supports [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Extensions extensions]?\n\nYou can browse [https://www.mediawiki.org/wiki/Special:MyLanguage/Category:Extensions_by_category extensions by category].",
"config-skins-screenshots": "$1 (screenshots: $2)",
"config-skins-screenshot": "$1 ($2)",
"config-extensions-requires": "$1 (requires $2)",
$options = [ $options ];
}
- $res = $this->select( $table, $var, $cond, $fname, $options, $join_conds );
+ $res = $this->select( $table, [ 'value' => $var ], $cond, $fname, $options, $join_conds );
if ( $res === false ) {
return false;
}
$values = [];
foreach ( $res as $row ) {
- $values[] = $row->$var;
+ $values[] = $row->value;
}
return $values;
$this->assertLastSql( 'BEGIN; SELECT 1; COMMIT' );
$this->assertEquals( 0, $this->database->trxLevel() );
}
+
+ /**
+ * @covers Wikimedia\Rdbms\Database::selectFieldValues()
+ */
+ public function testSelectFieldValues() {
+ $this->database->forceNextResult( [
+ (object)[ 'value' => 'row1' ],
+ (object)[ 'value' => 'row2' ],
+ (object)[ 'value' => 'row3' ],
+ ] );
+
+ $this->assertSame(
+ [ 'row1', 'row2', 'row3' ],
+ $this->database->selectFieldValues( 'table', 'table.field', 'conds', __METHOD__ )
+ );
+ $this->assertLastSql( 'SELECT table.field AS value FROM table WHERE conds' );
+ }
}
$this->db->dbSchema( $old );
$this->assertNotEquals( 'xxx', $this->db->dbSchema() );
}
+
}