Commit graph

7677 commits

Author SHA1 Message Date
jenkins-bot f6851374ce Merge "Force full evaluation of filter in FilterEvaluator->getUsedVars()" 2024-06-12 10:03:02 +00:00
Translation updater bot f68337c29d
Localisation updates from https://translatewiki.net.
Change-Id: Ie76af12f2a5405ba1b4f17fa66e17004e44aff69
2024-06-12 09:21:12 +02:00
libraryupgrader 64c81b2150 build: Updating npm dependencies
* eslint-config-wikimedia: 0.28.0 → 0.28.1
* stylelint-config-wikimedia: 0.17.1 → 0.17.2

Change-Id: I58c541bfb55d8a6838b3a3201ca636c28bfd335c
2024-06-11 12:13:35 +00:00
STran f5d7b68908 Force full evaluation of filter in FilterEvaluator->getUsedVars()
In some cases, evaluation short-circuits when getting a list of
used variables resulting in an incomplete array of variables. This
subsequently causes issues when using those arrays for validation
checks (eg. if protected variables are used).

- Force full evaluation by setting `mAllowShort` to false

Bug: T364485
Change-Id: Idf2112d9ebf63846cde3ce9b8a8ade0ed909505d
2024-06-11 02:43:47 -07:00
Translation updater bot 25e1b8f8eb Localisation updates from https://translatewiki.net.
Change-Id: I935f1853cb383a5cb4d88687a4e81b73fea2b403
2024-06-11 09:53:08 +02:00
Matěj Suchánek 469d643530 Drop af_user(_text) and afh_user(_text) fields
They have been migrated to their respective _actor counterparts.

Bug: T188180
Change-Id: I76ab3a4eeaf93bf009ba3a5d4a0315443b6839ef
2024-06-10 18:48:21 +02:00
jenkins-bot a5afeff49c Merge "Drop $wgAbuseFilterActorTableSchemaMigrationStage" 2024-06-10 13:27:07 +00:00
Matěj Suchánek c2da0d4857 Drop $wgAbuseFilterActorTableSchemaMigrationStage
First patch in a series of dropping the old columns.
Wikis now need to run the maintenance script (e.g., via
update.php) prior to serving this commit.

Wikimedia wikis are already on SCHEMA_COMPAT_NEW stage.

Bug: T188180
Change-Id: I86ec2b816eed17b62bf02bfd085570f132011b3e
2024-06-10 12:08:30 +00:00
Translation updater bot d4d679a62e Localisation updates from https://translatewiki.net.
Change-Id: I3890ae83c9ee56fede22ac334628f125759f74e8
2024-06-10 09:54:05 +02:00
jenkins-bot 056bcafe08 Merge "Use expression builder to build where conditions" 2024-06-09 03:45:36 +00:00
jenkins-bot 7bbf55935c Merge "Hide the checkbox for protecting a filter from users without the right" 2024-06-07 10:39:43 +00:00
Translation updater bot 124bf78d4c Localisation updates from https://translatewiki.net.
Change-Id: Ic978fa445c0d8248347ecdbc7e24314caf89b05b
2024-06-07 09:43:02 +02:00
jenkins-bot 4b9c2e612c Merge "Clarify protected status in filter checkboxes" 2024-06-06 18:00:27 +00:00
Thalia 6428ff9232 Hide the checkbox for protecting a filter from users without the right
Any filter using protected variables must be marked as protected via
the a checkbox on the filter edit form. This checkbox should not be
visible to users without the right to use protected variables.

Bug: T364485
Change-Id: If2c4b8f50f447e951d820798f181839d10501aa3
2024-06-06 17:49:46 +01:00
jenkins-bot f432f7c4e6 Merge "Fix permission error shown on history page for protected filter" 2024-06-06 15:05:24 +00:00
STran 1c96981117 Clarify protected status in filter checkboxes
The UI/UX for acknowledging a filter will be protected/is protected
could be clearer. The checkbox implemented currently doesn't make
it clear that the acknowledgement is mandatory and filters that are
already protected allow for the checkbox to be unchecked even though
that doesn't reflect that the filter cannot be unprotected.

- Update copy for the protected filter acknowledgement to make it clear
  that it's a mandatory acknowledgement, not an optional one
- Update copy for the error that shows when a filter that should be
  protected doesn't have the acknowledgement checked
- When a filter is already protected, disable the acknowledgement
  checkbox to indicate this is not mutable

Bug: T364485
Change-Id: I667fcca4511dff1ac3ca69930c5b5e5eb5001787
2024-06-06 00:23:39 -07:00
jenkins-bot 415135a156 Merge "Stop trying to update new storage method ES address pointers" 2024-06-06 00:03:55 +00:00
libraryupgrader 3583cad1a3 build: Updating stylelint-config-wikimedia to 0.17.1
Change-Id: I0e2ccd826ced9008328a53c197076bad0067db69
2024-06-05 18:50:22 +00:00
Amir Sarabadani 4fb92a37b8 Stop trying to update new storage method ES address pointers
We are trying to get rid of text table. See T183490 and explicitly see T362566.

Bug: T366705
Change-Id: Id133ff94e9518c7819c2e2fb8e01ee2a115c24d7
2024-06-05 19:20:25 +02:00
jenkins-bot 64443f9905 Merge "Add error message for unprivileged access of filter history" 2024-06-05 15:19:31 +00:00
Thalia 8f39ef3b8a Fix permission error shown on history page for protected filter
When a user without the right to see protected filters visits
Special:AbuseFilter/history/<ID>, show the permission error
message for protected filters.

Before this commit, the error message for hidden filters is
used instead, even if the filter is not hidden.

Bug: T364465
Change-Id: If2573fe256a7e29e8184feaf2f0622659706fd56
2024-06-05 15:53:04 +01:00
jenkins-bot 3897096fd7 Merge "Implement 'protected' filter acknowledgement checkbox" 2024-06-05 13:42:33 +00:00
STran 5da20292ea Add error message for unprivileged access of filter history
Attempting to access a diff in the history of a protected filter when
the user doesn't have the right to view protected variables results
in the 'abusefilter-history-error-protected' error and requires copy.

- Add copy for the user-facing 'abusefilter-history-error-protected'
  error

Bug: T364465
Change-Id: I0e9afae90c43bd3f792f1330ea865c0d56a023d1
2024-06-05 06:22:10 -07:00
STran 69a28f7f03 Implement 'protected' filter acknowledgement checkbox
- Add a basic checkbox on the filter edit page that must be checked if a
  filter uses a protected variable to ensure that the user is aware that
  their filter will also become protected

Bug: T364485
Change-Id: I7c7652f7d1a81223229b839ff7eee5da4af74c8a
2024-06-05 05:43:25 -07:00
Translation updater bot e126601788 Localisation updates from https://translatewiki.net.
Change-Id: I2ea878200aef92946e81300e76a071d5054c2a97
2024-06-05 09:21:47 +02:00
jenkins-bot 4e14afa6fb Merge "Allow variables to be restricted by user right" 2024-06-04 17:20:17 +00:00
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