MediaWiki fundraising/REL1_35
MediaWiki\Auth\CreateFromLoginAuthenticationRequest Class Reference

This transfers state between the login and account creation flows. More...

Inheritance diagram for MediaWiki\Auth\CreateFromLoginAuthenticationRequest:
Collaboration diagram for MediaWiki\Auth\CreateFromLoginAuthenticationRequest:

Public Member Functions

 __construct (AuthenticationRequest $createRequest=null, array $maybeLink=[])
 Stable to call.
 
 getFieldInfo ()
 Fetch input field info.The field info is an associative array mapping field names to info arrays. The info arrays have the following keys:

  • type: (string) Type of input. Types and equivalent HTML widgets are:
    • string: <input type="text">
    • password: <input type="password">
    • select: <select>
    • checkbox: <input type="checkbox">
    • multiselect: More a grid of checkboxes than <select multi>
    • button: <input type="submit"> (uses 'label' as button text)
    • hidden: Not visible to the user, but needs to be preserved for the next request
    • null: No widget, just display the 'label' message.
  • options: (array) Maps option values to Messages for the 'select' and 'multiselect' types.
  • value: (string) Value (for 'null' and 'hidden') or default value (for other types).
  • label: (Message) Text suitable for a label in an HTML form
  • help: (Message) Text suitable as a description of what the field is
  • optional: (bool) If set and truthy, the field may be left empty
  • sensitive: (bool) If set and truthy, the field is considered sensitive. Code using the request should avoid exposing the value of the field.
  • skippable: (bool) If set and truthy, the client is free to hide this field from the user to streamline the workflow. If all fields are skippable (except possibly a single button), no user interaction is required at all.
All AuthenticationRequests are populated from the same data, so most of the time you'll want to prefix fields names with something unique to the extension/provider (although in some cases sharing the field with other requests is the right thing to do, e.g. for a 'password' field).
Returns
array As above -return array<string,array{type:string,options?:array,value?:string,label:Message,help:Message,optional?:bool,sensitive?:bool,skippable?:bool}>
Stable to override
 
 hasPrimaryStateForAction ( $action)
 Indicate whether this request contains state for the specified action sufficient to replace other primary-required requests.
 
 hasStateForAction ( $action)
 Indicate whether this request contains any state for the specified action.
 
 loadFromSubmission (array $data)
 Initialize form submitted form data.The default behavior is to to check for each key of self::getFieldInfo() in the submitted data, and copy the value - after type-appropriate transformations - to $this->$key. Most subclasses won't need to override this; if you do override it, make sure to always return false if self::getFieldInfo() returns an empty array.Stable to override

Parameters
array$dataSubmitted data as an associative array (keys will correspond to getFieldInfo())
Returns
bool Whether the request data was successfully loaded
Stable to override
 
- Public Member Functions inherited from MediaWiki\Auth\AuthenticationRequest
 describeCredentials ()
 Describe the credentials represented by this request.
 
 getMetadata ()
 Returns metadata about this request.
 
 getUniqueId ()
 Supply a unique key for deduplication.
 

Public Attributes

AuthenticationRequest null $createRequest
 
AuthenticationRequest[] $maybeLink = []
 
 $required = self::OPTIONAL
 
- Public Attributes inherited from MediaWiki\Auth\AuthenticationRequest
string null $action = null
 The AuthManager::ACTION_* constant this request was created to be used for.
 
int $required = self::REQUIRED
 For login, continue, and link actions, one of self::OPTIONAL, self::REQUIRED, or self::PRIMARY_REQUIRED.
 
string null $returnToUrl = null
 Return-to URL, in case of redirect.
 
string null $username = null
 Username.
 
const OPTIONAL = 0
 Indicates that the request is not required for authentication to proceed.
 
const PRIMARY_REQUIRED = 2
 Indicates that the request is required by a primary authentication provider.
 
const REQUIRED = 1
 Indicates that the request is required for authentication to proceed.
 

Additional Inherited Members

- Static Public Member Functions inherited from MediaWiki\Auth\AuthenticationRequest
static __set_state ( $data)
 Implementing this mainly for use from the unit tests.
 
static getRequestByClass (array $reqs, $class, $allowSubclasses=false)
 Select a request by class name.
 
static getUsernameFromRequests (array $reqs)
 Get the username from the set of requests.
 
static loadRequestsFromSubmission (array $reqs, array $data)
 Update a set of requests with form submit data, discarding ones that fail.
 
static mergeFieldInfo (array $reqs)
 Merge the output of multiple AuthenticationRequest::getFieldInfo() calls.
 

Detailed Description

This transfers state between the login and account creation flows.

AuthManager::getAuthenticationRequests() won't return this type, but it may be passed to AuthManager::beginAuthentication() or AuthManager::beginAccountCreation() anyway.

Stable to extend

Since
1.27

Definition at line 35 of file CreateFromLoginAuthenticationRequest.php.

Constructor & Destructor Documentation

◆ __construct()

MediaWiki\Auth\CreateFromLoginAuthenticationRequest::__construct ( AuthenticationRequest $createRequest = null,
array $maybeLink = [] )

Stable to call.

Parameters
AuthenticationRequest | null$createRequestA request to use to begin creating the account
AuthenticationRequest[]$maybeLinkAdditional accounts to link after creation.

Definition at line 51 of file CreateFromLoginAuthenticationRequest.php.

References MediaWiki\Auth\CreateFromLoginAuthenticationRequest\$createRequest, and MediaWiki\Auth\CreateFromLoginAuthenticationRequest\$maybeLink.

Member Function Documentation

◆ getFieldInfo()

MediaWiki\Auth\CreateFromLoginAuthenticationRequest::getFieldInfo ( )

Fetch input field info.The field info is an associative array mapping field names to info arrays. The info arrays have the following keys:

  • type: (string) Type of input. Types and equivalent HTML widgets are:
    • string: <input type="text">
    • password: <input type="password">
    • select: <select>
    • checkbox: <input type="checkbox">
    • multiselect: More a grid of checkboxes than <select multi>
    • button: <input type="submit"> (uses 'label' as button text)
    • hidden: Not visible to the user, but needs to be preserved for the next request
    • null: No widget, just display the 'label' message.
  • options: (array) Maps option values to Messages for the 'select' and 'multiselect' types.
  • value: (string) Value (for 'null' and 'hidden') or default value (for other types).
  • label: (Message) Text suitable for a label in an HTML form
  • help: (Message) Text suitable as a description of what the field is
  • optional: (bool) If set and truthy, the field may be left empty
  • sensitive: (bool) If set and truthy, the field is considered sensitive. Code using the request should avoid exposing the value of the field.
  • skippable: (bool) If set and truthy, the client is free to hide this field from the user to streamline the workflow. If all fields are skippable (except possibly a single button), no user interaction is required at all.
All AuthenticationRequests are populated from the same data, so most of the time you'll want to prefix fields names with something unique to the extension/provider (although in some cases sharing the field with other requests is the right thing to do, e.g. for a 'password' field).
Returns
array As above -return array<string,array{type:string,options?:array,value?:string,label:Message,help:Message,optional?:bool,sensitive?:bool,skippable?:bool}>
Stable to override

Reimplemented from MediaWiki\Auth\AuthenticationRequest.

Definition at line 63 of file CreateFromLoginAuthenticationRequest.php.

◆ hasPrimaryStateForAction()

MediaWiki\Auth\CreateFromLoginAuthenticationRequest::hasPrimaryStateForAction ( $action)

Indicate whether this request contains state for the specified action sufficient to replace other primary-required requests.

Stable to override

Parameters
string$actionOne of the AuthManager::ACTION_* constants
Returns
bool

Definition at line 100 of file CreateFromLoginAuthenticationRequest.php.

References MediaWiki\Auth\AuthenticationRequest\$action, MediaWiki\Auth\CreateFromLoginAuthenticationRequest\$createRequest, and MediaWiki\Auth\AuthManager\ACTION_CREATE.

◆ hasStateForAction()

MediaWiki\Auth\CreateFromLoginAuthenticationRequest::hasStateForAction ( $action)

Indicate whether this request contains any state for the specified action.

Stable to override

Parameters
string$actionOne of the AuthManager::ACTION_* constants
Returns
bool

Definition at line 82 of file CreateFromLoginAuthenticationRequest.php.

References MediaWiki\Auth\AuthenticationRequest\$action, MediaWiki\Auth\CreateFromLoginAuthenticationRequest\$createRequest, MediaWiki\Auth\CreateFromLoginAuthenticationRequest\$maybeLink, MediaWiki\Auth\AuthManager\ACTION_CREATE, and MediaWiki\Auth\AuthManager\ACTION_LOGIN.

◆ loadFromSubmission()

MediaWiki\Auth\CreateFromLoginAuthenticationRequest::loadFromSubmission ( array $data)

Initialize form submitted form data.The default behavior is to to check for each key of self::getFieldInfo() in the submitted data, and copy the value - after type-appropriate transformations - to $this->$key. Most subclasses won't need to override this; if you do override it, make sure to always return false if self::getFieldInfo() returns an empty array.Stable to override

Parameters
array$dataSubmitted data as an associative array (keys will correspond to getFieldInfo())
Returns
bool Whether the request data was successfully loaded
Stable to override

Reimplemented from MediaWiki\Auth\AuthenticationRequest.

Definition at line 71 of file CreateFromLoginAuthenticationRequest.php.

Member Data Documentation

◆ $createRequest

◆ $maybeLink

◆ $required

MediaWiki\Auth\CreateFromLoginAuthenticationRequest::$required = self::OPTIONAL

Definition at line 36 of file CreateFromLoginAuthenticationRequest.php.


The documentation for this class was generated from the following file: