Architecture:MediaWiki/user management domain

The user management domain is concerned with the handling of user accounts, sessions, and settings.

Other domains this domain depends on:
 * TBD

Some domains using this domain:
 * access control for permission checks
 * abuse prevention for blocking

Layers: This domain has components in all layers.

Location: Files belonging to this domain do not currently have a dedicated location in the namespace or file system structure. They may in the future be collected under the UserManagement namespace.

Status: As of May 2020, the user management domain is heavily entangled with the rest of the system via the prolific class. Other components belonging to this domain, like the and the  object, are better isolated.

Examples: The  class is an example for a component from the user management domain.

Vocabulary survey
This is a rough survey of essential nouns and verbs that belong to the domain, providing a preliminary vocabulary. The survey is guided by existing code, but also includes nouns and verbs found to be missing.

Nouns:
 * Session: exists, should become a data object in the value layer. Accessed from other domains for various reasons.
 * User: heavily entangled, much too big, should be replaced with.
 * UserIdentity is also needed in the content representation domain. Should these be shared or translated?
 * Account: same as UserIdentity?
 * Settings: should be factored out of User. Needed by other domains.

Verbs:
 * create user: covered by and AuthManager, should become a command.
 * log in: covered by LoginSignupSpecialPage and AuthManager, should become a command or be handled by a service object.
 * log out: covered by LoginSignupSpecialPage and AuthManager, should become a command or be handled by a service object.
 * update settings: covered by User, should be handled by a service object.