Last modified: 2014-02-20 02:07:27 UTC

Wikimedia Bugzilla is closed!

Wikimedia has migrated from Bugzilla to Phabricator. Bug reports should be created and updated in Wikimedia Phabricator instead. Please create an account in Phabricator and add your Bugzilla email address to it.
Wikimedia Bugzilla is read-only. If you try to edit or create any bug report in Bugzilla you will be shown an intentional error message.
In order to access the Phabricator task corresponding to a Bugzilla report, just remove "static-" from its URL.
You could still run searches in Bugzilla or access your list of votes but bug reports will obviously not be up-to-date in Bugzilla.
Bug 17312 - Separate UserLogin from authentication process; create account creation and identification internal API
Separate UserLogin from authentication process; create account creation and i...
Status: NEW
Product: MediaWiki
Classification: Unclassified
User login and signup (Other open bugs)
All All
: Normal normal (vote)
: ---
Assigned To: Nobody - You can work on this!
Depends on:
Blocks: 15700 17544
  Show dependency treegraph
Reported: 2009-02-02 04:39 UTC by Richard Gomes
Modified: 2014-02-20 02:07 UTC (History)
7 users (show)

See Also:
Web browser: ---
Mobile Platform: ---
Assignee Huggle Beta Tester: ---


Description Richard Gomes 2009-02-02 04:39:09 UTC
At the moment, UserLogin is concentrating too much responsability:
1. Displays and manage a form intended for gathering login information;
2. Displays and manage a form intended for gathering information for a new account (create new account link)
3. Manages part of authentication process;
4. Coordinates creation of a new account.

From the 'object orientation' point of view, clearly UserLogin should be split on smaller components.
UserLogin, IMHO, should be *only* reponsible for
    1. Displays and manage a form intended for gathering login information;

Other tasks should be managed by their corresponding responsible classes.
In fact, it does not matter whether Mediawiki is object oriented or not. Object orientation is a very useful (and helpful!) concept which can be implemented even in bash scripts. Object orientation (or at least the concept) allows better organization of code, it's easy to maintain, easier to extend and easier to adjust to specific needs.

I've integrated LDAP authentication in our wiki and it was a nightmare :(
Now I'd like to replace LDAP by SAML and it's another nightmare, not working yet :(

Separating concerns on different classes would allow easier integration with several authentication layers.
* One thing is getting username/password/domain from a form.
* Another thing is using username/passoword for authenticating against a certain authentication layer.
* Another thing is obtaining data required for registration and coordinating the registration workflow.
* Another thing is performing the steps required to create a new account in a certain respository.

A good example which shows how integration is tangled can be seem at:
and the corresponding 'plugin' provided by:

Thanks very much

Richard Gomes
Comment 1 Nemo 2013-02-04 00:19:41 UTC
I've changed the summary to better reflect what's the purpose of this bug, which is quite a bit one.
Comment 2 MZMcBride 2013-02-05 21:04:51 UTC
This is basically a duplicate of bug 15700. Marking it as such.

*** This bug has been marked as a duplicate of bug 15700 ***
Comment 3 Nemo 2013-03-11 18:02:00 UTC
Not a duplicate, as bug 44628 comment 18 shows.
Comment 4 Gerrit Notification Bot 2013-08-22 18:18:10 UTC
Change 27022 abandoned by Parent5446:
Re-implemented Special:Userlogin using FormSpecialPage.

The rest of the login system needs to be fixed before the UI part.

Note You need to log in before you can comment on or make changes to this bug.