lhc/web/wiklou.git
5 years agoEmit new style API action logs into Monolog.
Petr Pchelko [Thu, 21 Feb 2019 02:09:41 +0000 (18:09 -0800)]
Emit new style API action logs into Monolog.

Bug: T214080
Depends-On: I454d3d12dcc1d7e525dc468df90424e68df59d78
Change-Id: Id0be845884cd834d89df897cc8a862904caeb09a

5 years agoFix lowercase in namespace of LogCapturingSpi.php
Amir Sarabadani [Tue, 26 Feb 2019 12:17:09 +0000 (13:17 +0100)]
Fix lowercase in namespace of LogCapturingSpi.php

Basically turning Mediawiki to MediaWiki as all other classes exist
in that namespace

Bug: T217128
Change-Id: I95039a1a54c9900a2f2414b5a6ccce5fb6e5e612

5 years agoMerge "selenium: improve ffmpeg reporting"
jenkins-bot [Tue, 26 Feb 2019 11:03:17 +0000 (11:03 +0000)]
Merge "selenium: improve ffmpeg reporting"

5 years agoMerge "DatabasePostgres: Ignore "IGNORE" option to update()"
jenkins-bot [Tue, 26 Feb 2019 05:30:36 +0000 (05:30 +0000)]
Merge "DatabasePostgres: Ignore "IGNORE" option to update()"

5 years agoMerge "debug: Add basic accessibility support to debug console"
jenkins-bot [Mon, 25 Feb 2019 22:00:27 +0000 (22:00 +0000)]
Merge "debug: Add basic accessibility support to debug console"

5 years agoLocalisation updates from https://translatewiki.net.
Translation updater bot [Mon, 25 Feb 2019 21:46:14 +0000 (22:46 +0100)]
Localisation updates from https://translatewiki.net.

Change-Id: Id54b521705d09e65558ed7ce20f67280c7eac13d

5 years agoMerge "Remove Target/User validation from Block::appliesToUsertalk()"
jenkins-bot [Mon, 25 Feb 2019 21:11:19 +0000 (21:11 +0000)]
Merge "Remove Target/User validation from Block::appliesToUsertalk()"

5 years agoMerge "Add Priority Hints support"
jenkins-bot [Mon, 25 Feb 2019 20:31:59 +0000 (20:31 +0000)]
Merge "Add Priority Hints support"

5 years agoMerge "Chrome Origin Trial support"
jenkins-bot [Mon, 25 Feb 2019 20:31:48 +0000 (20:31 +0000)]
Merge "Chrome Origin Trial support"

5 years agoRemove Target/User validation from Block::appliesToUsertalk()
David Barratt [Mon, 25 Feb 2019 18:35:35 +0000 (13:35 -0500)]
Remove Target/User validation from Block::appliesToUsertalk()

This fixes a regression in I0e131696419211319082cb454f4f05297e55d22e where
an IP block that also blocks logged in users from editing, throws an exception.

The target/user validation in Block::appliesToUsertalk() does not work well
when an IP block prevents logged in users from editing. This case throws a
validation error, when in reality it should make a judgement.

This change means that the method will now trust whatever is passed into it as
the current user's talk page.

Bug: T211578
Change-Id: I3bb27cf7bec8421d31aa4de28a0e658365bb5bf2

5 years agoAdd Priority Hints support
Gilles Dubuc [Wed, 20 Feb 2019 14:06:36 +0000 (15:06 +0100)]
Add Priority Hints support

When the option is enabled, the first non-icon
thumbnail encountered has a "high" importance.

Bug: T216499
Change-Id: I8d3c1b3e2d136ba16bd7de4809ee3ca63ab462fe

5 years agoChrome Origin Trial support
Gilles Dubuc [Wed, 20 Feb 2019 08:49:28 +0000 (09:49 +0100)]
Chrome Origin Trial support

Bug: T216595
Change-Id: I74b8824a87e6f52a84d2f8a9708501fc05f73266

5 years agoMerge "objectcache: improve set() slam prevention in getWithSetCallback()"
jenkins-bot [Mon, 25 Feb 2019 17:05:36 +0000 (17:05 +0000)]
Merge "objectcache: improve set() slam prevention in getWithSetCallback()"

5 years agoMerge "media: Mark ImageHandler::getScriptParams() as protected"
jenkins-bot [Mon, 25 Feb 2019 16:40:50 +0000 (16:40 +0000)]
Merge "media: Mark ImageHandler::getScriptParams() as protected"

5 years agoMerge "media: Mark public MediaHandler/ImageHandler methods as such"
jenkins-bot [Mon, 25 Feb 2019 16:40:45 +0000 (16:40 +0000)]
Merge "media: Mark public MediaHandler/ImageHandler methods as such"

5 years agoselenium: improve ffmpeg reporting
Antoine Musso [Thu, 21 Feb 2019 16:00:32 +0000 (17:00 +0100)]
selenium: improve ffmpeg reporting

1) stdout/stderr log improvement

Our wdio test suite records video of Selenium test session using ffmpeg,
its stdout/stderr are relayed via console.log() however the new line was
not stripped which is confusing and in case the buffer contains multiple
lines, only the first line had the 'ffmpeg stderr: ' prefix.

Ensure each ffmpeg line is prefixed by logging them individually.

2) exit code / signal

childProcess 'close' event is being passed the exit code and the signal.
We only handled the exit code, thus when ffmpeg is send a signal we
logged:

  ffmpeg exited with code null

Handle the case when the childProcess is send a signal (typically
SIGINT).

Change-Id: I9f509690baa9b7981399a09448582f45c30800d7

5 years agoactions: Improve Action class code for clarity & consistency
Derick Alangi [Mon, 25 Feb 2019 12:28:37 +0000 (13:28 +0100)]
actions: Improve Action class code for clarity & consistency

~ Move local variable $obj to one liner as it's redundant in
  this case.
~ Use === check instead of == as in order case above for the
  purpose of consistency.
~ Make use of single quotes for strings literals instead of
  double quotes.

Change-Id: I69650cacb0658a7369147ea5e9933fb5585e3376

5 years agomedia: Mark ImageHandler::getScriptParams() as protected
Thiemo Kreuz [Mon, 25 Feb 2019 09:20:28 +0000 (10:20 +0100)]
media: Mark ImageHandler::getScriptParams() as protected

Proof this method is really not called from anywhere else, except the
ImageHandler class itself, and one subclass:

https://codesearch.wmflabs.org/search/?q=%5CSgetScriptParams&i=1

Change-Id: I57e75ce0cb7c9e52d545b8e8226610bcc6e06c44

5 years agomedia: Mark public MediaHandler/ImageHandler methods as such
Thiemo Kreuz [Mon, 25 Feb 2019 09:16:30 +0000 (10:16 +0100)]
media: Mark public MediaHandler/ImageHandler methods as such

Note I'm intentionally not touching the entire file, but only methods
I'm absolutely sure are already called from outside, e.g. from
MediaHandlerFactory, and must be public because of this.

I'm intentionally not doing anything with private or protected in this
patch, as such changes are much more fragile.

This is a direct follow up for the changes proposed in Iaa4f60d.

Change-Id: Ida817b289ddd5e9a8c162cc1fa3335c639a0bbe5

5 years agoMerge "Return the page_id in list=langbacklinks as an int"
jenkins-bot [Mon, 25 Feb 2019 02:45:42 +0000 (02:45 +0000)]
Merge "Return the page_id in list=langbacklinks as an int"

5 years agoReturn the page_id in list=langbacklinks as an int
Reedy [Mon, 25 Feb 2019 00:18:47 +0000 (00:18 +0000)]
Return the page_id in list=langbacklinks as an int

Bug: T216968
Change-Id: I5b16779be7b24b1e46d4787a82a8daa3611f67b1

5 years agoUse (int) rather than intval()
Reedy [Mon, 25 Feb 2019 00:38:33 +0000 (00:38 +0000)]
Use (int) rather than intval()

Bug: T216969
Change-Id: I4c06716c83b69d128f26fa7f68736808aa2d3d64

5 years agoMerge "Return the page_id in list=iwbacklinks as an int rather than string"
jenkins-bot [Mon, 25 Feb 2019 00:31:59 +0000 (00:31 +0000)]
Merge "Return the page_id in list=iwbacklinks as an int rather than string"

5 years agoReturn the page_id in list=iwbacklinks as an int rather than string
setian [Sun, 24 Feb 2019 21:43:33 +0000 (16:43 -0500)]
Return the page_id in list=iwbacklinks as an int rather than string

Bug: T216968
Change-Id: I6645c5f1c6e76be3187c24053ed430e99c03bff4

5 years agoMerge "resourceloader: Make JSMinPlus allow reserved words as property name (ES5)"
jenkins-bot [Sun, 24 Feb 2019 22:49:26 +0000 (22:49 +0000)]
Merge "resourceloader: Make JSMinPlus allow reserved words as property name (ES5)"

5 years agoresourceloader: Make JSMinPlus allow reserved words as property name (ES5)
Ebrahim Byagowi [Wed, 20 Feb 2019 23:41:08 +0000 (03:11 +0330)]
resourceloader: Make JSMinPlus allow reserved words as property name (ES5)

This makes parse of "var a = { true: 12 };" and "var a = { true: 12 };"
possible thus making JSMinPlus ES5 compatible.

Bug: T215280
Change-Id: I84bcacf26ab8900d09958b5d961cc40e1a046698

5 years agoLocalisation updates from https://translatewiki.net.
Translation updater bot [Sun, 24 Feb 2019 21:23:34 +0000 (22:23 +0100)]
Localisation updates from https://translatewiki.net.

Change-Id: Iaa33d306da2a1daf0f99f7432b542f7bdbd72eca

5 years agoMerge "specials: Cleanup and fix PHPDoc comments"
jenkins-bot [Sun, 24 Feb 2019 18:17:35 +0000 (18:17 +0000)]
Merge "specials: Cleanup and fix PHPDoc comments"

5 years agospecials: Cleanup and fix PHPDoc comments
Derick Alangi [Sat, 23 Feb 2019 14:17:53 +0000 (15:17 +0100)]
specials: Cleanup and fix PHPDoc comments

Fix and cleanup code documentation in PHPDoc for clarity. This involves
correcting return types, parameter types and errors expected to be thrown
by methods within a class.

Change-Id: I30ba4b99d25460f84d348dd96480df67e92c69a6

5 years agoMerge "Upgrade moment from 2.19.3 to 2.24.0"
jenkins-bot [Sun, 24 Feb 2019 00:38:34 +0000 (00:38 +0000)]
Merge "Upgrade moment from 2.19.3 to 2.24.0"

5 years agoMerge "Remove comments literally documenting unit tests being unit tests"
jenkins-bot [Sun, 24 Feb 2019 00:19:54 +0000 (00:19 +0000)]
Merge "Remove comments literally documenting unit tests being unit tests"

5 years agoMerge "Sanitizer: remove deprecated parameter to escapeIdReferenceList()"
jenkins-bot [Sat, 23 Feb 2019 10:46:56 +0000 (10:46 +0000)]
Merge "Sanitizer: remove deprecated parameter to escapeIdReferenceList()"

5 years agoregistration: Fix 'ResourceLoaderWikiModule' schema validation
Kunal Mehta [Sat, 23 Feb 2019 01:17:05 +0000 (17:17 -0800)]
registration: Fix 'ResourceLoaderWikiModule' schema validation

There is a full schema for ResourceModules when the
class: ResourceLoaderWikiModule is used. Except it doesn't actually work,
since it it fails validating against that schema, it will continue to check
the other anyOf schemas, find the arbitrary class one, and pass that one.

Blacklisting ResourceLoaderWikiModule from the arbitrary class schema means
that it has to pass the specified schema for it, or fail validation.

I verified that all extensions and skins in Gerrit pass validation with this
patch.

Change-Id: Icb862088c0ca1f89ed5a57a4286dd9049d213021

5 years agoregistration: Fix 'arbitrary ResourceLoaderModule definition' schema regex
Kunal Mehta [Sat, 23 Feb 2019 01:03:01 +0000 (17:03 -0800)]
registration: Fix 'arbitrary ResourceLoaderModule definition' schema regex

We want this regex to match on everything that is not the literal string
'ResourceFileModule' or 'ResourceImageModule' (actually
'ResourceLoaderWikiModule' should be in this too, but I'll fix that in a
follow-up). But the current regex would not match if one of those was in a
substring.

The new regex should match everything that is *not* those two strings.

Bug: T216861
Change-Id: I7d888adfdc67b2075028e49432710308aa0125af

5 years agoMerge "resourceloader: Remove back compat for old packageFiles format"
jenkins-bot [Fri, 22 Feb 2019 23:32:54 +0000 (23:32 +0000)]
Merge "resourceloader: Remove back compat for old packageFiles format"

5 years agoUpgrade moment from 2.19.3 to 2.24.0
James D. Forrester [Fri, 22 Feb 2019 10:34:40 +0000 (10:34 +0000)]
Upgrade moment from 2.19.3 to 2.24.0

Bug: T191339
Change-Id: I15034d88fabd9185f3eb5ffff98ee6f9922a7bc2

5 years agoMerge "Add .phar to $wgFileBlacklist as a paranoia measure"
jenkins-bot [Fri, 22 Feb 2019 20:54:04 +0000 (20:54 +0000)]
Merge "Add .phar to $wgFileBlacklist as a paranoia measure"

5 years agoMerge "foreign-resources: Pull all moment locales, even the ones we don't yet use"
jenkins-bot [Fri, 22 Feb 2019 19:33:48 +0000 (19:33 +0000)]
Merge "foreign-resources: Pull all moment locales, even the ones we don't yet use"

5 years agoMerge "foreign-resources: Add moment to our list of resources"
jenkins-bot [Fri, 22 Feb 2019 19:33:43 +0000 (19:33 +0000)]
Merge "foreign-resources: Add moment to our list of resources"

5 years agoMerge "resourceloader: Change 'packageFiles' format to be JSON-compatible"
jenkins-bot [Fri, 22 Feb 2019 19:30:40 +0000 (19:30 +0000)]
Merge "resourceloader: Change 'packageFiles' format to be JSON-compatible"

5 years agoforeign-resources: Pull all moment locales, even the ones we don't yet use
James D. Forrester [Fri, 22 Feb 2019 10:30:11 +0000 (10:30 +0000)]
foreign-resources: Pull all moment locales, even the ones we don't yet use

This makes things simpler for configuration at a trivial cost of bytes.

Change-Id: I2d7a0dd4136ccccf1eba6c93af4ba34acfbf0886

5 years agoforeign-resources: Add moment to our list of resources
James D. Forrester [Wed, 23 Jan 2019 00:51:45 +0000 (16:51 -0800)]
foreign-resources: Add moment to our list of resources

Because we don't pull down all the locales, we current have to list
each of them. To be fixed in a follow-up.

Also add the changelog for in-repo visibility about changes, as we
have begun to make standard.

Change-Id: I839301d05877eb63279cc1dc94ffbe05f8bb0bfc

5 years agoresourceloader: Remove back compat for old packageFiles format
Roan Kattouw [Fri, 22 Feb 2019 01:31:22 +0000 (17:31 -0800)]
resourceloader: Remove back compat for old packageFiles format

Was introduced as a transitional measure in Ic566a1cd7efd075c3.

Depends-On: I717f03caf9ea8266e6a4d2b6daf4c543c0815931
Change-Id: I6ae615ea38572042f8ba705338067b393827153a

5 years agoresourceloader: Change 'packageFiles' format to be JSON-compatible
Roan Kattouw [Fri, 22 Feb 2019 01:26:23 +0000 (17:26 -0800)]
resourceloader: Change 'packageFiles' format to be JSON-compatible

The module definition format for 'packageFiles', as initially designed,
mixes sequential and associative arrays. This works in PHP, but not in
JSON. To make the format JSON compatible, use a 'name' key instead of
using the key in the main array.

Leave backwards compatibility in place so that extensions using the old
format can be migrated. This will be removed in the next commit.

Before:

'packageFiles' => [
'script.js',
'script2.js',
'config.json' => [ 'config' => [ 'Foo', 'Bar' ] ],
'data.json' => [ 'callback' => function () { ... } ],
],

After:

'packageFiles' => [
'script.js',
'script2.js',
[ 'name' => 'config.json', 'config' => [ 'Foo', 'Bar' ] ],
[ 'name' => 'data.json', 'callback' => function () { ... } ],
],

This can then be written in extension.json as:
"packageFiles": [
"script.js",
"script2.js",
[ "name": "config.json", "config": [ "Foo", "Bar" ] ],
[ "name": "data.json", "callback: [ "MyExtHooks", "getData" ] ]
]

Change-Id: Ic566a1cd7efd075c380bc50ba0cc2c329a2041d7

5 years agoMerge "Return early in Title::checkUserBlock() if user does not have a block."
jenkins-bot [Fri, 22 Feb 2019 17:37:38 +0000 (17:37 +0000)]
Merge "Return early in Title::checkUserBlock() if user does not have a block."

5 years agoselenium: prevent webdriverio automatic screenshot
Antoine Musso [Fri, 22 Feb 2019 13:58:27 +0000 (14:58 +0100)]
selenium: prevent webdriverio automatic screenshot

When the wdio configuration has screenshotPath, when a test fail a
screenshot is automatically taken. However there is no support to
specify a filename, we thus went with our own handler in afterTest hook
to have the screenshot names after the full test name.

As a result we had two screenshots taken:

A) CHROME-Error-xxx.png
B) Suite-Sometest.png

Set screenshotPath to null which disable the automatic screenshoting.
Adjust rest of code to use logPath as a base path to save screenshots.

As a side effect, it works around a nasty race condition in the
reporting. The report is generated while some test still has an
afterTest hook running. The report fail to generate and cause nodejs to
exit. The exact fix still has to be figured out though. T216818.

Bug: T216818
Change-Id: I4b53c98bd4de0d9ff850bb883ba899dd1dce0274

5 years agoobjectcache: improve set() slam prevention in getWithSetCallback()
Aaron Schulz [Fri, 22 Feb 2019 12:47:32 +0000 (04:47 -0800)]
objectcache: improve set() slam prevention in getWithSetCallback()

* Make the SET_DELAY_HIGH_SEC check more sensitive to other types
  of delay, such as increased get() latency. Any such slowness is
  relevant to the set() stampede concern.
* Also added a statsd timing metric for this delay.

Change-Id: I053a73b40dc7e566cc59fc97aeab1a4e1bee0f28

5 years agoMerge "ForeignResourceManager: Catch responses other than 200 OK"
jenkins-bot [Fri, 22 Feb 2019 10:44:16 +0000 (10:44 +0000)]
Merge "ForeignResourceManager: Catch responses other than 200 OK"

5 years agoMerge "Fix grammar in UserPasswordPolicy documentation"
jenkins-bot [Fri, 22 Feb 2019 09:33:27 +0000 (09:33 +0000)]
Merge "Fix grammar in UserPasswordPolicy documentation"

5 years agodebug: Add basic accessibility support to debug console
Thiemo Kreuz [Tue, 19 Feb 2019 14:12:06 +0000 (15:12 +0100)]
debug: Add basic accessibility support to debug console

The scope tells user agents what the meaning of vertical vs. horizontal
table headers is.

The summary is for screen readers only and usually not visible in
regular web browsers.

Change-Id: I4a2141a462719cfc978ffc18a8c6dfb2bc3cf22d

5 years agoMerge "Print logs generated during unit test when test fails"
jenkins-bot [Fri, 22 Feb 2019 08:01:16 +0000 (08:01 +0000)]
Merge "Print logs generated during unit test when test fails"

5 years agoMerge "build: Increase fresnel runs to 5, and add more scenarios"
jenkins-bot [Fri, 22 Feb 2019 05:02:56 +0000 (05:02 +0000)]
Merge "build: Increase fresnel runs to 5, and add more scenarios"

5 years agoAdd .phar to $wgFileBlacklist as a paranoia measure
Brian Wolff [Fri, 22 Feb 2019 04:31:56 +0000 (04:31 +0000)]
Add .phar to $wgFileBlacklist as a paranoia measure

Seems like it can't hurt.

Change-Id: I833dd95742d7de772833c738ca7f5403e57bc2f4

5 years agoSanitizer: remove deprecated parameter to escapeIdReferenceList()
Max Semenik [Fri, 22 Feb 2019 04:12:22 +0000 (20:12 -0800)]
Sanitizer: remove deprecated parameter to escapeIdReferenceList()

Change-Id: Iacd5796718c1d64e7290cfd9669c99d8f9e85dc5

5 years agoMerge "ApiQueryUserContribs: Only use 'contributions' replica if querying by user ID"
jenkins-bot [Fri, 22 Feb 2019 03:58:47 +0000 (03:58 +0000)]
Merge "ApiQueryUserContribs: Only use 'contributions' replica if querying by user ID"

5 years agoMerge "Follow-up I68179974: Remove from 1.33 RL, backported to 1.32"
jenkins-bot [Fri, 22 Feb 2019 03:55:59 +0000 (03:55 +0000)]
Merge "Follow-up I68179974: Remove from 1.33 RL, backported to 1.32"

5 years agoReturn early in Title::checkUserBlock() if user does not have a block.
David Barratt [Sat, 16 Feb 2019 06:08:10 +0000 (01:08 -0500)]
Return early in Title::checkUserBlock() if user does not have a block.

To reduce the overhead of the block checks, return early if the user does not
have a block.

Bug: T216309
Change-Id: I14930fcb7987cbc83294497ab54fcfeeedc94bfe

5 years agobuild: Increase fresnel runs to 5, and add more scenarios
Timo Tijhof [Tue, 19 Feb 2019 16:28:41 +0000 (16:28 +0000)]
build: Increase fresnel runs to 5, and add more scenarios

Also remove unrecognised 'alerts' property from Fresnel config.
That isn't a feature (yet) :)

Change-Id: I45820de67a20c4f0e614b9e845a186f157cab3f4

5 years agoMerge "Apply the pseudo-css selector rules to diff and changelist pages"
jenkins-bot [Fri, 22 Feb 2019 00:32:52 +0000 (00:32 +0000)]
Merge "Apply the pseudo-css selector rules to diff and changelist pages"

5 years agoApply the pseudo-css selector rules to diff and changelist pages
jdlrobson [Wed, 9 Jan 2019 00:30:18 +0000 (16:30 -0800)]
Apply the pseudo-css selector rules to diff and changelist pages

The styles that we are applying on changelist pages should also
apply on diff pages. This generalises the rules into a new
module.

To avoid problems with cached HTML mediawiki.special.changeslist
temporarily loads resources/src/mediawiki.interface.helpers.styles.
This will be removed after the change has been in production for a
week.

Bug: T212613
Change-Id: I6aad563e48f41c783df8b176a4f437e60a1255cc

5 years agoForeignResourceManager: Catch responses other than 200 OK
Timo Tijhof [Thu, 21 Feb 2019 23:44:56 +0000 (23:44 +0000)]
ForeignResourceManager: Catch responses other than 200 OK

Makes it easier to catch issues like at I839301d05877eb63279c.

Change-Id: I22b9af7bf36a256d8363ed96fe42c087e0c8a895

5 years agoMerge "RCFilters: Export config vars in the RL modules where possible (take 2)"
jenkins-bot [Thu, 21 Feb 2019 21:57:49 +0000 (21:57 +0000)]
Merge "RCFilters: Export config vars in the RL modules where possible (take 2)"

5 years agoLocalisation updates from https://translatewiki.net.
Translation updater bot [Thu, 21 Feb 2019 20:55:49 +0000 (21:55 +0100)]
Localisation updates from https://translatewiki.net.

Change-Id: Ibb1121f0765cd41ba7f8b6cfafb6e88d30021820

5 years agoMerge "Block: Remove unnecessary lines related to old use of Block::prevents"
jenkins-bot [Thu, 21 Feb 2019 20:29:54 +0000 (20:29 +0000)]
Merge "Block: Remove unnecessary lines related to old use of Block::prevents"

5 years agoBlock: Remove unnecessary lines related to old use of Block::prevents
Thalia [Wed, 20 Feb 2019 10:40:59 +0000 (10:40 +0000)]
Block: Remove unnecessary lines related to old use of Block::prevents

Block::prevents simply returns true for 'edit'. In Block::newLoad,
prevents was called as a setter with 'edit', but there was nothing
to set - this call was removed in I0e1316964192113. This patch
removes some more lines related to that call.

Originally added in r84475 (6dbcdc1be097) for T15611.

Change-Id: I8778229d7adfcdee9e21cf560462ef7e7d1c67b3

5 years agoMerge "mediawiki.ui: Align button height to standard (and input)"
jenkins-bot [Thu, 21 Feb 2019 20:01:50 +0000 (20:01 +0000)]
Merge "mediawiki.ui: Align button height to standard (and input)"

5 years agoMerge "Separate out different functionalities of Block::prevents"
jenkins-bot [Thu, 21 Feb 2019 19:20:03 +0000 (19:20 +0000)]
Merge "Separate out different functionalities of Block::prevents"

5 years agoSeparate out different functionalities of Block::prevents
Thalia [Sat, 9 Feb 2019 12:17:54 +0000 (12:17 +0000)]
Separate out different functionalities of Block::prevents

Block::prevents plays several different roles:
* acts as get/setter for Boolean properties that correspond to
ipb_create_account, ipb_block_email and ipb_allow_usertalk
* calculates whether a block blocks a given right, based on Block
properties, global configs, white/blacklists and anonymous user
rights
* decides whether a block prevents editing of the target's own
user talk page (listed separately because 'editownusertalk' is
not a right)

This patch:
* renames mDisableUsertalk to allowEditUsertalk (and reverses the
value), to match the field ipb_allow_usertalk and make this logic
easier to follow
* renames mCreateAccount to blockCreateAccount, to make it clear
that the flag blocks account creation when true, and make this
logic easier to follow
* decouples the block that is stored in the database (which now
reflects the form that the admin submitted) and the behaviour of
the block on enforcement (since the properties set by the admin
can be overridden by global configs) - so if the global configs
change, the block behaviour could too
* creates get/setters for blockCreateAccount, mBlockEmail and
allowEditUsertalk properties
* creates appliesToRight, exclusively for checking whether the
block blocks a given right, taking into account the block
properties, global configs and anonymous user rights
* creates appliesToUsertalk, for checking whether the block
blocks a user from editing their own talk page. The block is
unaware of the user trying to make the edit, and this user is not
always the same as the block target, e.g. if the block target is
an IP range. Therefore the user's talk page is passed in to this
method. appliesToUsertalk can be called from anywhere where the
user is known
* uses the get/setters wherever Block::prevents was being used as
such
* uses appliesToRight whenever Block::prevents was being used to
determine if the block blocks a given right
* uses appliesToUsertalk in User::isBlockedFrom

Bug: T211578
Bug: T214508
Change-Id: I0e131696419211319082cb454f4f05297e55d22e

5 years agoMerge "Add language support for Saisiyat (xsy)"
jenkins-bot [Thu, 21 Feb 2019 18:03:10 +0000 (18:03 +0000)]
Merge "Add language support for Saisiyat (xsy)"

5 years agoMerge "Uncheck "create account" on Special:Block for partial blocks"
jenkins-bot [Thu, 21 Feb 2019 17:45:46 +0000 (17:45 +0000)]
Merge "Uncheck "create account" on Special:Block for partial blocks"

5 years agoAdd language support for Saisiyat (xsy)
MarcoAurelio [Tue, 19 Feb 2019 21:21:22 +0000 (22:21 +0100)]
Add language support for Saisiyat (xsy)

Bug: T216479
Change-Id: Ide1c708c2cf3124794da650667ab140b1f4e9f5e

5 years agoApiQueryUserContribs: Only use 'contributions' replica if querying by user ID
Brad Jorsch [Thu, 21 Feb 2019 15:47:07 +0000 (10:47 -0500)]
ApiQueryUserContribs: Only use 'contributions' replica if querying by user ID

When querying by user name or actor ID, the partitioning on the
'contributions' replicas makes things worse rather than better.

Bug: T216656
Change-Id: Ib4caf19d8fad64c527dee99667e425fd3e4b1a16

5 years agoMerge "Update OOUI to v0.30.3"
jenkins-bot [Thu, 21 Feb 2019 15:58:49 +0000 (15:58 +0000)]
Merge "Update OOUI to v0.30.3"

5 years agoMerge "Remove suggestions for negative namespaces in Page Restrictions"
jenkins-bot [Thu, 21 Feb 2019 15:26:35 +0000 (15:26 +0000)]
Merge "Remove suggestions for negative namespaces in Page Restrictions"

5 years agoMerge "mw.widgets.TitleWidget: Add 'excludeDynamicNamespaces' config"
jenkins-bot [Thu, 21 Feb 2019 15:26:00 +0000 (15:26 +0000)]
Merge "mw.widgets.TitleWidget: Add 'excludeDynamicNamespaces' config"

5 years agomediawiki.ui: Align button height to standard (and input)
Volker E [Thu, 21 Feb 2019 07:56:44 +0000 (23:56 -0800)]
mediawiki.ui: Align button height to standard (and input)

Aligning to standard height of `32px` at base font size of `14px`,
mediawiki.ui's inputs and OOUI.

Bug: T209455
Change-Id: I3ef5bb0920aadd22667f0a9b3701e6714bc04133

5 years agoUpdate OOUI to v0.30.3
James D. Forrester [Thu, 21 Feb 2019 11:08:08 +0000 (11:08 +0000)]
Update OOUI to v0.30.3

Release notes:
 https://phabricator.wikimedia.org/diffusion/GOJU/browse/master/History.md;v0.30.3

Bug: T215559
Bug: T216070
Bug: T216075
Bug: T216578
Bug: T216582
Depends-On: Ic5a4598bbb222fa4b98c2706fe909aa9eb297f4b
Change-Id: Ic5a4598bbb222fa4b98c2706fe909aa9eb297f4a

5 years agoMerge "build: Update eslint-config-wikimedia to 0.11.0"
jenkins-bot [Thu, 21 Feb 2019 10:37:50 +0000 (10:37 +0000)]
Merge "build: Update eslint-config-wikimedia to 0.11.0"

5 years agoMerge "Add support for Argon2 password hashing"
jenkins-bot [Thu, 21 Feb 2019 07:24:52 +0000 (07:24 +0000)]
Merge "Add support for Argon2 password hashing"

5 years agoMerge "Set $wgMediaInTargetLanguage to true by default"
jenkins-bot [Thu, 21 Feb 2019 06:54:45 +0000 (06:54 +0000)]
Merge "Set $wgMediaInTargetLanguage to true by default"

5 years agoMerge "Set BlockDisablesLogin false for Blocking group tests that assume this"
jenkins-bot [Thu, 21 Feb 2019 04:30:09 +0000 (04:30 +0000)]
Merge "Set BlockDisablesLogin false for Blocking group tests that assume this"

5 years agoSet $wgMediaInTargetLanguage to true by default
Max Semenik [Thu, 21 Feb 2019 04:26:46 +0000 (20:26 -0800)]
Set $wgMediaInTargetLanguage to true by default

This feature flag is still unreleased, flipping it on by default
in preparation for removal.

Change-Id: Ice3c3d7e35023d93afb85d43f838c18dae9a9c3a

5 years agoRCFilters: Export config vars in the RL modules where possible (take 2)
Catrope [Fri, 15 Feb 2019 22:12:02 +0000 (22:12 +0000)]
RCFilters: Export config vars in the RL modules where possible (take 2)

This reverts commit 492969e12bb34c6832213769d822d0b3d564550c
and reinstates commit bf4f9d0313495dd67a53b9925edf9a3cc6ef36fe.

Bug: T201574
Depends-On: I58901657daf3e82229a303d8fe7a2c051ffe7634
Change-Id: I1b0a777760d4c2a149415da0d2068e6bfea5b917

5 years agobuild: Update eslint-config-wikimedia to 0.11.0
Ed Sanders [Wed, 20 Feb 2019 22:53:09 +0000 (22:53 +0000)]
build: Update eslint-config-wikimedia to 0.11.0

Change-Id: Iee025a518962e68c5ec2c07d952f402cd2a7f69b

5 years agoMerge "Database: Have buildStringCast() actually cast for MySQL, MSSQL"
jenkins-bot [Wed, 20 Feb 2019 22:14:37 +0000 (22:14 +0000)]
Merge "Database: Have buildStringCast() actually cast for MySQL, MSSQL"

5 years agoMerge "Fix password policy handling in temporary password provider"
jenkins-bot [Wed, 20 Feb 2019 20:48:33 +0000 (20:48 +0000)]
Merge "Fix password policy handling in temporary password provider"

5 years agoMerge "Make uca-tr use I as uppercase of dotless ı instead of reverse"
jenkins-bot [Wed, 20 Feb 2019 20:25:59 +0000 (20:25 +0000)]
Merge "Make uca-tr use I as uppercase of dotless ı instead of reverse"

5 years agoFix password policy handling in temporary password provider
Gergő Tisza [Tue, 19 Feb 2019 04:19:13 +0000 (20:19 -0800)]
Fix password policy handling in temporary password provider

Fix breakage caused by f15ecc60cd94. Also use correct check name.

Bug: T216196
Change-Id: Id2567adf8334742ef18a59a6c7e74b2b780ab43a

5 years agoMerge "Add missing use for IMaintainableDatabase"
jenkins-bot [Wed, 20 Feb 2019 20:15:38 +0000 (20:15 +0000)]
Merge "Add missing use for IMaintainableDatabase"

5 years agoMerge "DifferenceEngine: Allow cache hits for empty diffs"
jenkins-bot [Wed, 20 Feb 2019 20:01:20 +0000 (20:01 +0000)]
Merge "DifferenceEngine: Allow cache hits for empty diffs"

5 years agoAdd missing use for IMaintainableDatabase
Umherirrender [Wed, 20 Feb 2019 19:57:18 +0000 (20:57 +0100)]
Add missing use for IMaintainableDatabase

Change-Id: I00b30466fa6044988768493586993c3db253c975

5 years agoDatabase: Have buildStringCast() actually cast for MySQL, MSSQL
Brad Jorsch [Wed, 20 Feb 2019 19:41:55 +0000 (14:41 -0500)]
Database: Have buildStringCast() actually cast for MySQL, MSSQL

While these databases allow implicit casts (at least from int to
string), in MySQL at least the implicit cast can prevent appropriate
index usage (see T216183). So let's have buildStringCast() actually do
the cast.

This also changes the base implementation in Wikimedia\Rdmbs\Database to
explicitly cast. Any other subclasses should check whether this new
version works for them.

Bug: T216247
Change-Id: I98c67c857b35de3191d47ab28810d8eb21ddbbc8

5 years agoFix grammar in UserPasswordPolicy documentation
Thalia [Wed, 20 Feb 2019 19:47:39 +0000 (19:47 +0000)]
Fix grammar in UserPasswordPolicy documentation

Change-Id: I423d5ce9f9a778ee21381ba433a52b8bd3e154fc

5 years agoMerge "API: Spread autoblocks from action=edit and action=move"
jenkins-bot [Wed, 20 Feb 2019 19:31:44 +0000 (19:31 +0000)]
Merge "API: Spread autoblocks from action=edit and action=move"

5 years agoMerge "API: Add block info to more block errors"
jenkins-bot [Wed, 20 Feb 2019 19:24:49 +0000 (19:24 +0000)]
Merge "API: Add block info to more block errors"

5 years agoMake uca-tr use I as uppercase of dotless ı instead of reverse
Brian Wolff [Wed, 20 Feb 2019 16:55:44 +0000 (16:55 +0000)]
Make uca-tr use I as uppercase of dotless ı instead of reverse

The primary collision resolution makes wrong choice

Bug: T203158
Change-Id: Id677476937cc6575950496767b50c1e8c21f2fbc

5 years agoMerge "resourceloader: Tolerate string as deps for test suites"
jenkins-bot [Wed, 20 Feb 2019 16:18:02 +0000 (16:18 +0000)]
Merge "resourceloader: Tolerate string as deps for test suites"

5 years agoresourceloader: Tolerate string as deps for test suites
James D. Forrester [Wed, 20 Feb 2019 12:55:51 +0000 (12:55 +0000)]
resourceloader: Tolerate string as deps for test suites

Change-Id: I53a5fd0f3716e50abd10e4cae1de6329e7b0f6e8

5 years agoDatabasePostgres: Ignore "IGNORE" option to update()
Brad Jorsch [Wed, 20 Feb 2019 15:22:26 +0000 (10:22 -0500)]
DatabasePostgres: Ignore "IGNORE" option to update()

PostgreSQL doesn't support anything like this. For now, avoid generating
invalid SQL by just ignoring the option. If we come up with a use case
someday, that can guide implementation of a workalike.

Also, remove a pointless "IGNORE" from populateExternallinksIndex60.php.
el_index_60 isn't uniquely indexed, so it has no effect anyway.

Bug: T215169
Change-Id: I1409c80b39834d1977c82c489226255a8cc93fd0

5 years agoMerge "objectcache: avoid duplicate cache sets for missing keys with lockTSE"
jenkins-bot [Wed, 20 Feb 2019 15:37:21 +0000 (15:37 +0000)]
Merge "objectcache: avoid duplicate cache sets for missing keys with lockTSE"