Page MenuHomePhabricator

Use expression builder instead of raw SQL in CheckUser
Open, Needs TriagePublic

Description

Now that T210206: Deprecate raw SQL conditions for IDatabase methods (select, insert, etc.) is done, this extension should migrate away from building and passing around raw SQL to expression builders.

It improves readability and security of the code and is more aligned with industry practices easing onboarding.

For more information check T210206 and T350075.

Calls to Database::addQuotes(), ::buildLike(), ::makeList() indicate that raw SQL is being built and passed around.

Event Timeline

Dreamy_Jazz subscribed.

Several maintenance scripts and AbstractCheckUserPager::getIpConds (used to generate WHERE conditions for conditions on Special:CheckUser and the CheckUser API) use the BETWEEN operator.

You can turn between to a combined condition of "and". That should be rather easy.

Change 929030 had a related patch set uploaded (by Dreamy Jazz; author: Dreamy Jazz):

[mediawiki/extensions/CheckUser@master] Move Hooks::maybePruneIPData and ::pruneIPData to a new service

https://gerrit.wikimedia.org/r/929030

Change 1009572 had a related patch set uploaded (by Dreamy Jazz; author: Dreamy Jazz):

[mediawiki/extensions/CheckUser@master] Remove raw SQL in maintenance scripts

https://gerrit.wikimedia.org/r/1009572

Change 1009572 merged by jenkins-bot:

[mediawiki/extensions/CheckUser@master] Remove raw SQL in maintenance scripts

https://gerrit.wikimedia.org/r/1009572

Change 1012722 had a related patch set uploaded (by Dreamy Jazz; author: Dreamy Jazz):

[mediawiki/extensions/CheckUser@master] Create CheckUserLookupUtils service

https://gerrit.wikimedia.org/r/1012722

Change #1013330 had a related patch set uploaded (by Dreamy Jazz; author: Dreamy Jazz):

[mediawiki/extensions/CheckUser@master] Replace ::getIpConds and ::isValidRange with CheckUserLookupUtils

https://gerrit.wikimedia.org/r/1013330

Change #1012722 merged by jenkins-bot:

[mediawiki/extensions/CheckUser@master] Create CheckUserLookupUtils service

https://gerrit.wikimedia.org/r/1012722

Change #1013330 merged by jenkins-bot:

[mediawiki/extensions/CheckUser@master] Replace ::getIpConds and ::isValidRange with CheckUserLookupUtils

https://gerrit.wikimedia.org/r/1013330

Change #1011289 had a related patch set uploaded (by Dreamy Jazz; author: Dreamy Jazz):

[mediawiki/extensions/CheckUser@master] Use response classes in ApiQueryCheckUser

https://gerrit.wikimedia.org/r/1011289

Change #1011289 merged by jenkins-bot:

[mediawiki/extensions/CheckUser@master] Use response classes in ApiQueryCheckUser

https://gerrit.wikimedia.org/r/1011289

Change #1022554 had a related patch set uploaded (by Umherirrender; author: Umherirrender):

[mediawiki/extensions/CheckUser@master] Use expression builder to avoid some raw sql

https://gerrit.wikimedia.org/r/1022554

Change #1022554 merged by jenkins-bot:

[mediawiki/extensions/CheckUser@master] Use expression builder to avoid some raw sql

https://gerrit.wikimedia.org/r/1022554

Change #1026550 had a related patch set uploaded (by Dreamy Jazz; author: Dreamy Jazz):

[mediawiki/extensions/CheckUser@master] Use IExpression objects in ChangeService

https://gerrit.wikimedia.org/r/1026550

Change #1026550 merged by jenkins-bot:

[mediawiki/extensions/CheckUser@master] Use IExpression objects in ChangeService

https://gerrit.wikimedia.org/r/1026550