Commit graph

7751 commits

Author SHA1 Message Date
STran bf28dbce0e Allow variables to be restricted by user right
Some exposed variables (eg. `user_ip`) used in filters are sensitive
and need to only be available to restricted groups of users.

Back-end changes:
- Add `AbuseFilterProtectedVariables` which defines what variables are
  protected by the new right `abusefilter-access-protected-vars`
- Add the concept of a `protected` variable, the use of which will
  denote the entire filter as protected via a flag on `af_hidden`

New UX features:
- Display changes to the protected status of filters on history and diff
  pages
- Check for protected variables and the right to see them in filter
  validation and don't allow a filter to be saved if it uses a variable
  that the user doesn't have access to
- Check for the right to view protected variables before allowing access
  and edits to existing filters that use them

Bug: T364465
Bug: T363906
Change-Id: I828bbb4015e87040f69a8e10c7888273c4f24dd3
2024-06-04 06:54:53 -07:00
Translation updater bot 77354e4ee4 Localisation updates from https://translatewiki.net.
Change-Id: I9141fb84ee0c61d2240e6cebab5715c2fb3875f5
2024-06-04 09:29:27 +02:00
libraryupgrader efa5460918 build: Updating npm dependencies
* eslint-config-wikimedia: 0.27.0 → 0.28.0
* grunt-stylelint: 0.19.0 → 0.20.0
* stylelint-config-wikimedia: 0.16.1 → 0.17.0

Change-Id: I7a36d9db97da9274f6b81097beb0cbf089022043
2024-06-04 00:33:18 +00:00
Translation updater bot 06b556f6c6 Localisation updates from https://translatewiki.net.
Change-Id: Ia2154f54ebe9df5fe38319d98002c0f64856ebf0
2024-06-03 09:30:04 +02:00
jenkins-bot f9a410a600 Merge "Update documentation of mode argument" 2024-05-31 16:06:59 +00:00
Translation updater bot e34a64cdcb Localisation updates from https://translatewiki.net.
Change-Id: I33d2bcedbb18b60545510c55c11a90e7963fe139
2024-05-31 09:55:08 +02:00
jenkins-bot 10663ed4fd Merge "Convert af_hidden into a bitmask" 2024-05-30 18:11:24 +00:00
Umherirrender 69debb0a22 Use expression builder to build where conditions
Bug: T350968
Change-Id: I8a0fdf868efd403e02a68c5293a4e603d16657e6
2024-05-30 11:35:57 +02:00
Translation updater bot a47a3e3823 Localisation updates from https://translatewiki.net.
Change-Id: Ie4a8c05d6d105ea90ae22c955b165bfc3a85d429
2024-05-30 09:35:40 +02:00
Translation updater bot b1e361166b Localisation updates from https://translatewiki.net.
Change-Id: I80fa4ab93543b206d6d8e3b11c3fb753149b7ffa
2024-05-29 09:29:45 +02:00
Bartosz Dziewoński 94251ca97e Use StatusValue::getMessages() instead of deprecated methods
Added in MediaWiki in Ibc4ce11594cf36ce7b2495d2636ee080d3443b04.

Change-Id: I0b51f1210b9501961586fa25bf1f49bc68bab3d1
2024-05-28 21:04:59 +00:00
STran ca23e9f06b Convert af_hidden into a bitmask
Protected variables will cause the filter using them to become
protected as well. `af_hidden` can be used to track this flag,
as it is a TINYINT and can be converted into a bitmask with no
schema changes.

This is not a backwards-compatible change, as now all checks must
check the `hidden` flag specifically or otherwise will be cast to
true if any flag is set.

To support this change:
- "hidden" is considered a flag set in the `af_hidden`. This is a
  change in concept with no need for updates to the column values,
  as there is currently only one flag in the bitmask.
- `Flag`s store the bitmask as well as the state of single flags
  and can return either.
- Any checks against the `af_hidden` value no longer check a
  boolean value and instead now check the `hidden` flag value.

Bug: T363906
Change-Id: I358205cb1119cf1e4004892c37e36e0c0a864f37
2024-05-28 00:59:08 -07:00
Translation updater bot 90cbdd834f Localisation updates from https://translatewiki.net.
Change-Id: Ic8d7e785ee4013197837da45901a2e8536413389
2024-05-28 09:29:15 +02:00
Translation updater bot c34e51153f Localisation updates from https://translatewiki.net.
Change-Id: Id1daa755bd8214d7e92df16eb5dbe010d77b60e9
2024-05-27 09:27:32 +02:00
Matěj Suchánek 9986f3016c Update documentation of mode argument
It has thrown exception since 357ddd4.

Change-Id: I07f10de450c599b9930526ef790dd7d23330d78d
2024-05-24 22:20:03 +02:00
Translation updater bot a21cbfffec Localisation updates from https://translatewiki.net.
Change-Id: Ib993f524c0b53f3fddaa49cad6523e0a91e76953
2024-05-24 09:42:31 +02:00
jenkins-bot 58c5edce98 Merge "Add user_unnamed_ip variable" 2024-05-23 18:10:52 +00:00
STran fe0b1cb9e9 Add user_unnamed_ip variable
After temporary accounts are enabled, filters that rely on an ip
in the `user_name` will fail (eg. `ip_in_range` and `ip_in_ranges`).
To keep these filters working:

- Expose the IP through another variable, `user_unnamed_ip`, that can be
  used instead of `user_name`.
- The variable is scoped to only reveal the IPs of temporary accounts
  and un-logged in users.
- Wikis that don't have temporary accounts enabled will be able to see
  this variable but it won't provide information that `user_name`
  wasn't already providing
- Introduce the concept of transforming variable values before writing
  to the blob store and after retrieval, as IPs need to be deleted from
  the logs eventually and can't be stored as-is in the amend-only blob
  store

Bug: T357772
Change-Id: I8c11e06ccb9e78b9a991e033fe43f5dded8f7bb2
2024-05-23 07:19:48 -07:00
Kosta Harlan cd24c0ba2a
RCVariableGeneratorTest: Handle anonymous user test with temp accounts enabled
Why:

- Temp accounts will be enabled by default in CI, eventually. For tests
  that verify anonymous user editing behavior, we need to disable the
  temp user feature

What:

- Check if the user identity isn't registered, and if so, disable auto
  creating a temp user

Bug: T365645
Change-Id: I477fb6b44655e4190b5906c85390133e3e3a9feb
2024-05-23 09:41:05 +02:00
Translation updater bot c58696b7b0 Localisation updates from https://translatewiki.net.
Change-Id: Ib1529b519dcaf1d749f3246aac5592c9e1e37e3e
2024-05-23 09:24:59 +02:00
jenkins-bot 35e3319fe3 Merge "i18n: Replace mw: interwiki with url to mediawiki.org" 2024-05-22 14:28:51 +00:00
jenkins-bot c6a98e79ba Merge "Use SelectQueryBuilder for sub queries in migrateActorsAF.php" 2024-05-22 08:07:24 +00:00
Translation updater bot f28ce866a1 Localisation updates from https://translatewiki.net.
Change-Id: I7d16b514dcd73a52910afb0fcb48791a154f0222
2024-05-22 09:19:32 +02:00
jenkins-bot 5282540d65 Merge "Use IReadableDatabase::expr for complex conditions on Special:AbuseLog" 2024-05-22 04:24:56 +00:00
Umherirrender 1a56a29751 Use IReadableDatabase::expr for complex conditions on Special:AbuseLog
Bug: T350968
Change-Id: I3a86edd3f62d7276e33b5c155f0da1c8ef2a8cb5
2024-05-21 16:56:34 +00:00
Umherirrender e1347e6d19 Use SelectQueryBuilder for sub queries in migrateActorsAF.php
Use ISQLPlatform::conditional() function to avoid the raw sql

Bug: T350968
Change-Id: Iaf565acfae9c8160a9f215bc55ce2018c7fac362
2024-05-21 16:52:07 +00:00
Translation updater bot 5f720af28f Localisation updates from https://translatewiki.net.
Change-Id: Ib9d1af167acfcc885cf72a13989aab541c382760
2024-05-21 09:27:06 +02:00
Translation updater bot ad868d42a4 Localisation updates from https://translatewiki.net.
Change-Id: Id98c30c4cf378ff812dab86d9bdba03549c7171c
2024-05-20 09:23:39 +02:00
Translation updater bot c47e3a385f Localisation updates from https://translatewiki.net.
Change-Id: Ibf503a4b68283c4a4a673ccf8b70881adc1fe5b5
2024-05-17 09:47:20 +02:00
libraryupgrader d244436da6 build: Updating grunt-banana-checker to 0.13.0
Change-Id: I544035e38e55134e0142d1f5ddfd2e4beab11517
2024-05-17 01:36:32 +00:00
Translation updater bot f6b914bb23 Localisation updates from https://translatewiki.net.
Change-Id: I6a2aed4dd60bedfad6f7a1a8d6a35d99457aa0bf
2024-05-16 09:24:29 +02:00
Umherirrender bd074450ad i18n: Replace mw: interwiki with url to mediawiki.org
The interwiki table must not contains an interwiki link with prefix mw:

Change-Id: I96e7e3b13fa91ed8d3450a8dec0af2c46aacce21
2024-05-15 23:30:48 +02:00
Translation updater bot df93b427ac Localisation updates from https://translatewiki.net.
Change-Id: I821617f52b460269cb499a4ce352d95660e020bb
2024-05-15 09:20:55 +02:00
jenkins-bot 37dfd7b025 Merge "Fix missing <thead> and <tr> in various places" 2024-05-15 06:49:50 +00:00
thiemowmde fc50073fb5 Fix missing <thead> and <tr> in various places
This removes the last usages of the problematic open/closeElement
from this codebase.

One actual issue gets fixed: Some of the <th> floated around without
a <tr>. That's technically invalid. Luckily the browsers are flexible
and show it correctly. Visually nothing changes.

Similarly <th> should be wrapped in a <thead>. This wasn't done
before.

Change-Id: Ia45096670888173e49f9c25e72f429f0961b75ae
2024-05-14 21:28:32 +00:00
jenkins-bot d5cc144a79 Merge "Remove bogus non-breaking spaces" 2024-05-14 19:34:12 +00:00
Translation updater bot a77994b439 Localisation updates from https://translatewiki.net.
Change-Id: Ide93b3b72ff550afba74ed28b785b9c7b1df8885
2024-05-14 09:24:19 +02:00
jenkins-bot cb8617690b Merge "Consistent spelling for "comma-separated"" 2024-05-13 11:25:41 +00:00
thiemowmde 32bee4950f Remove bogus non-breaking spaces
This issue exists ever since this code was added in 2009. Note how
this element is invisible anyway. The non-breaking space is never
seen. The purpose of this element is to act as a container for a
debug result that will be put into this container via JavaScript.
I confirmed this still works fine without the placeholder character
being there.

The problem here is that this HTML entity is double escaped because
of the element() function. That would need to be a rawElement() call
or we can just remove it.

Change-Id: Id560f392be4cc2106a7ac224309c8b605bec3f6c
2024-05-13 13:15:51 +02:00
jenkins-bot ecf3268789 Merge "Provide integration with ConfirmEdit to show CAPTCHA" 2024-05-13 10:25:44 +00:00
jenkins-bot ea35d6680f Merge "Replace most Xml methods with Html" 2024-05-13 10:24:20 +00:00
Amir E. Aharoni 2b29a61f66 Consistent spelling for "comma-separated"
It's hyphenated in most other extensions.

Change-Id: Ibefa8dec5ba079392ca80f6d8e26d47766dd33a1
2024-05-13 04:40:46 -04:00
Translation updater bot 39228edbd3 Localisation updates from https://translatewiki.net.
Change-Id: I4ad76defcad3ae05eae28bd90e13baa64a22e78a
2024-05-13 09:25:56 +02:00
jenkins-bot eebcbf5b94 Merge "Replace some deprecated functions" 2024-05-12 14:31:21 +00:00
Kosta Harlan f948c79066
Provide integration with ConfirmEdit to show CAPTCHA
Why:

- We want AbuseFilter to able to require a CAPTCHA if an action
  matches conditions in an AbuseFilter

What:

- Implement the ConfirmEditTriggersCaptcha hook, and check to see if
  the CaptchaConsequence set a global flag that indicates if we
  should show a CAPTCHA

Depends-On: Ie87e3d850541c7dc44aaeb6b30489a32a0c8cc60
Bug: T20110
Change-Id: I110a5f5321649dcf85993a0c209ab70b9886057c
2024-05-10 21:00:47 +02:00
Kosta Harlan aae35c848a
build: Add quibble.yaml and enable early warning bot feedback
Why:

- Save developer time by reporting build failures as soon as they occur,
  rather than after all test jobs for a patch report back. E.g. Selenium
  takes 15 minutes to run, while the node test has its results back
  within 60 seconds; it's nice to know as soon as node fails.

What:

- Add quibble.yaml which Quibble analyzes as part of its CI job
  execution, `should_comment` instructs the Early Warning Bot to comment
  on the patch if a test build fails.

Bug: T323750
Change-Id: I56adb549f4df2146c3ad6e6440198b94e708bb25
2024-05-10 14:25:14 +02:00
Translation updater bot 50766781ac Localisation updates from https://translatewiki.net.
Change-Id: I2a977cb0775e89271c0a44c213d8603459ae305f
2024-05-10 09:27:16 +02:00
Translation updater bot 1d20a59f84 Localisation updates from https://translatewiki.net.
Change-Id: Iae605ac3436a08d4e1e6a2abd94d4a3c8eea59e2
2024-05-09 09:36:37 +02:00
Matěj Suchánek f9dcf46d70 Replace most Xml methods with Html
Xml::buildForm and Xml::fieldset are left.

Change-Id: Iff88869fd002165ec9ee80897d4deb585005b9d1
2024-05-08 13:08:52 +02:00
Translation updater bot 25c48d1384 Localisation updates from https://translatewiki.net.
Change-Id: Ica9c34d7a3e3165fe3704a0554497a790187f3e0
2024-05-08 09:23:04 +02:00