https://bugzilla.wikimedia.org/show_bug.cgi?id=17312

           Summary: Separate UserLogin from authentication process
           Product: MediaWiki
           Version: unspecified
          Platform: All
        OS/Version: All
            Status: NEW
          Severity: enhancement
          Priority: Normal
         Component: Special pages
        AssignedTo: [email protected]
        ReportedBy: [email protected]
        Depends on: 15700


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:
https://ow.feide.no/simplesamlphp:mediawiki
and the corresponding 'plugin' provided by:
https://ow.feide.no/_media/simplesamlphp:simplesamlphp-mw.php.zip?id=simplesamlphp%3Amediawiki&cache=cache

Thanks very much

Richard Gomes
http://www.jquantlib.org/index.php/User:RichardGomes


-- 
Configure bugmail: https://bugzilla.wikimedia.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.
You are on the CC list for the bug.

_______________________________________________
Wikibugs-l mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/wikibugs-l

Reply via email to