Page MenuHomePhabricator

Make class SpecialEmailUser a real special page and move all helper functions to their own service
Open, Needs TriagePublic

Description

The class SpecialEmailUser provide static functions to share code with api modules

This makes service injection hard

Functions seems to be SpecialEmailUser::getTarget, SpecialEmailUser::validateTarget and SpecialEmailUser::getPermissionsError

https://codesearch.wmcloud.org/search/?q=SpecialEmailUser&i=nope&files=&repos=

Event Timeline

Change 675874 had a related patch set uploaded (by DannyS712; author: DannyS712):

[mediawiki/core@master] Add basic EmailUserUtils service

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

Change 675876 had a related patch set uploaded (by DannyS712; author: DannyS712):

[mediawiki/core@master] Clean up and simplify SpecialEmailUser::submit

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

Change 675876 merged by jenkins-bot:

[mediawiki/core@master] Clean up and simplify SpecialEmailUser::submit

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

I would like to move this forward. @DannyS712 are you planning to work on the patch above, or can I take it over?

DannyS712 subscribed.

I would like to move this forward. @DannyS712 are you planning to work on the patch above, or can I take it over?

Have at it, sorry I have a lot less time than I used to for wiki contributions. Feel free to add me as a reviewer to the patch though

Change 896374 had a related patch set uploaded (by Daimona Eaytoy; author: Daimona Eaytoy):

[mediawiki/core@master] Move email business logic from SpecialEmailUser to a new class

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

Change 896422 had a related patch set uploaded (by Daimona Eaytoy; author: Daimona Eaytoy):

[mediawiki/core@master] Round 1 of EmailUser refactoring

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

Change 896459 had a related patch set uploaded (by Daimona Eaytoy; author: Daimona Eaytoy):

[mediawiki/core@master] Round 2 of EmailUser refactoring

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

Change 896670 had a related patch set uploaded (by Daimona Eaytoy; author: Daimona Eaytoy):

[mediawiki/core@master] [WIP] Round 3 of EmailUser refactoring

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

Change 896374 merged by jenkins-bot:

[mediawiki/core@master] mail: Move SpecialEmailUser business logic to a new class

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

Change 897880 had a related patch set uploaded (by Daimona Eaytoy; author: Daimona Eaytoy):

[mediawiki/core@master] mail: Make EmailUser::getPermissionsError() return StatusValue

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

Change 898835 had a related patch set uploaded (by Daimona Eaytoy; author: Daimona Eaytoy):

[mediawiki/core@master] mail: Round 4 of EmailUser refactoring

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

Change 675874 abandoned by DannyS712:

[mediawiki/core@master] Add basic EmailUserUtils service

Reason:

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

Change 896422 merged by jenkins-bot:

[mediawiki/core@master] mail: Round 1 of EmailUser refactoring

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

Jdforrester-WMF renamed this task from Make class SpecialEmailUser a real special page and move all helper function to own service to Make class SpecialEmailUser a real special page and move all helper functions to their own service.May 17 2023, 9:59 AM

Change 896459 merged by jenkins-bot:

[mediawiki/core@master] mail: Round 2 of EmailUser refactoring

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

Change 896670 merged by jenkins-bot:

[mediawiki/core@master] mail: Round 3 of EmailUser refactoring

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

Change 921367 had a related patch set uploaded (by Daimona Eaytoy; author: Daimona Eaytoy):

[mediawiki/core@master] Use EmailUser in User::canSendEmail, deprecate EmailUserPermissionsErrorsHook

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

Change 897880 merged by jenkins-bot:

[mediawiki/core@master] mail: Make EmailUser::getPermissionsError() return StatusValue

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

Change 898835 merged by jenkins-bot:

[mediawiki/core@master] mail: Round 4 of EmailUser refactoring

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

Change 921367 merged by jenkins-bot:

[mediawiki/core@master] Use EmailUser in User::canSendEmail, deprecate EmailUserPermissionsErrorsHook

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

Change 921702 had a related patch set uploaded (by Jforrester; author: Jforrester):

[mediawiki/extensions/TorBlock@master] Replace EmailUserPermissionsErrors hook with UserCanSendEmail

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

Change 921761 had a related patch set uploaded (by Daimona Eaytoy; author: Daimona Eaytoy):

[mediawiki/core@master] mail: Round 5 of EmailUser refactoring

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

Change 922129 had a related patch set uploaded (by Daimona Eaytoy; author: Daimona Eaytoy):

[mediawiki/core@master] Introduce EmailUserFactory

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

Change 922140 had a related patch set uploaded (by Daimona Eaytoy; author: Daimona Eaytoy):

[mediawiki/core@master] mail: Round 6 of EmailUser refactoring

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

Change 922549 had a related patch set uploaded (by Daimona Eaytoy; author: Daimona Eaytoy):

[mediawiki/core@master] mail: Final round of EmailUser refactoring

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

Change 922825 had a related patch set uploaded (by Jforrester; author: Jforrester):

[mediawiki/core@master] Make EmailUserPermissionsErrorsHook emit deprecation errors

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

Change 921702 merged by jenkins-bot:

[mediawiki/extensions/TorBlock@master] Replace EmailUserPermissionsErrors hook with UserCanSendEmail

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

Change 922825 merged by jenkins-bot:

[mediawiki/core@master] Make EmailUserPermissionsErrorsHook emit deprecation errors

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

Change 921761 merged by jenkins-bot:

[mediawiki/core@master] mail: Round 5 of EmailUser refactoring

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

Change 922129 merged by jenkins-bot:

[mediawiki/core@master] Introduce EmailUserFactory

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

Change 922140 merged by jenkins-bot:

[mediawiki/core@master] mail: Round 6 of EmailUser refactoring

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

Change 922549 merged by jenkins-bot:

[mediawiki/core@master] mail: Final round of EmailUser refactoring

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

Change 957969 had a related patch set uploaded (by Daimona Eaytoy; author: Daimona Eaytoy):

[mediawiki/core@master] Make EmailUser stable, deprecated old methods

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

Change 957969 merged by jenkins-bot:

[mediawiki/core@master] Make EmailUser stable, deprecate old methods

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

This is almost done now. The main thing that's left to do is a replacement for ::getTarget(). I'm still not 100% sure of what it should look like. r676595 is an attempt.

Change 676595 had a related patch set uploaded (by Daimona Eaytoy; author: Ppchelko):

[mediawiki/core@master] Introduce a lookup for UserEmailContact

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

Change #1023063 had a related patch set uploaded (by Majavah; author: Majavah):

[mediawiki/extensions/CampaignEvents@master] Use EmailUser class for permission checking

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

Change #1023063 merged by jenkins-bot:

[mediawiki/extensions/CampaignEvents@master] Use EmailUser class for permission checking

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

I'm not actively working on this, but would like to do this eventually. Ideas on how to move forward are welcome!