MediaWiki  master
Wikimedia\ParamValidator\ParamValidator\TypeDef\UserDef Class Reference

Type definition for user types. More...

Inheritance diagram for Wikimedia\ParamValidator\ParamValidator\TypeDef\UserDef:
Collaboration diagram for Wikimedia\ParamValidator\ParamValidator\TypeDef\UserDef:

Public Member Functions

 checkSettings (string $name, $settings, array $options, array $ret)
 Validate a parameter settings array. More...
 
 getHelpInfo ( $name, array $settings, array $options)
 Describe parameter settings in human-readable format. More...
 
 getParamInfo ( $name, array $settings, array $options)
 Describe parameter settings in a machine-readable format. More...
 
 normalizeSettings (array $settings)
 Normalize a settings array. More...
 
 validate ( $name, $value, array $settings, array $options)
 Validate the value. More...
 
- Public Member Functions inherited from Wikimedia\ParamValidator\TypeDef
 __construct (Callbacks $callbacks)
 
 getEnumValues ( $name, array $settings, array $options)
 Get the values for enum-like parameters. More...
 
 getValue ( $name, array $settings, array $options)
 Get the value from the request. More...
 
 stringifyValue ( $name, $value, array $settings, array $options)
 Convert a value to a string representation. More...
 

Public Attributes

const PARAM_ALLOWED_USER_TYPES = 'param-allowed-user-types'
 (string[]) Allowed types of user. More...
 
const PARAM_RETURN_OBJECT = 'param-return-object'
 (bool) Whether to return a UserIdentity object. More...
 

Private Member Functions

 processUser (string $value)
 Process $value to a UserIdentity, if possible. More...
 

Additional Inherited Members

- Protected Member Functions inherited from Wikimedia\ParamValidator\TypeDef
 failure ( $failure, $name, $value, array $settings, array $options, $fatal=true)
 Record a failure message. More...
 
 failureMessage ( $code, array $data=null, $suffix=null)
 Create a DataMessageValue representing a failure. More...
 
- Protected Attributes inherited from Wikimedia\ParamValidator\TypeDef
Callbacks $callbacks
 

Detailed Description

Type definition for user types.

Failure codes:

  • 'baduser': The value was not a valid MediaWiki user. No data.
Since
1.35

Definition at line 23 of file UserDef.php.

Member Function Documentation

◆ checkSettings()

Wikimedia\ParamValidator\ParamValidator\TypeDef\UserDef::checkSettings ( string  $name,
  $settings,
array  $options,
array  $ret 
)

Validate a parameter settings array.

This is intended for validation of parameter settings during unit or integration testing, and should implement strict checks.

The rest of the code should generally be more permissive.

See also
ParamValidator::checkSettings()
Parameters
string$nameParameter name
array | mixed$settingsDefault value or an array of settings using PARAM_* constants.
array$optionsOptions array, passed through to the TypeDef and Callbacks.
array$ret
  • 'issues': (string[]) Errors detected in $settings, as English text. If the settings are valid, this will be the empty array. Keys on input are ParamValidator constants, allowing the typedef to easily override core validation; this need not be preserved when returned.
  • 'allowedKeys': (string[]) ParamValidator keys that are allowed in $settings.
  • 'messages': (MessageValue[]) Messages to be checked for existence.
Returns
array $ret, with any relevant changes.

Reimplemented from Wikimedia\ParamValidator\TypeDef.

Definition at line 77 of file UserDef.php.

References Wikimedia\ParamValidator\ParamValidator\TypeDef\UserDef\PARAM_ALLOWED_USER_TYPES, Wikimedia\ParamValidator\ParamValidator\PARAM_ISMULTI, Wikimedia\ParamValidator\ParamValidator\PARAM_ISMULTI_LIMIT1, Wikimedia\ParamValidator\ParamValidator\PARAM_ISMULTI_LIMIT2, and Wikimedia\ParamValidator\ParamValidator\TypeDef\UserDef\PARAM_RETURN_OBJECT.

◆ getHelpInfo()

Wikimedia\ParamValidator\ParamValidator\TypeDef\UserDef::getHelpInfo (   $name,
array  $settings,
array  $options 
)

Describe parameter settings in human-readable format.

Keys in the returned array should generally correspond to PARAM constants.

If relevant, a MessageValue describing the type itself should be returned with key ParamValidator::PARAM_TYPE.

The default messages for other ParamValidator-defined PARAM constants may be suppressed by returning null as the value for those constants, or replaced by returning a replacement MessageValue. Normally, however, the default messages should not be changed.

MessageValues describing any other constraints applied via PARAM constants specific to this class should also be returned.

Parameters
string$nameParameter name being described.
array$settingsParameter settings array.
array$optionsOptions array.
Returns
(MessageValue|null)[]

Reimplemented from Wikimedia\ParamValidator\TypeDef.

Definition at line 197 of file UserDef.php.

References Wikimedia\Message\MessageValue\new(), Wikimedia\ParamValidator\ParamValidator\PARAM_ISMULTI, and Wikimedia\ParamValidator\ParamValidator\PARAM_TYPE.

◆ getParamInfo()

Wikimedia\ParamValidator\ParamValidator\TypeDef\UserDef::getParamInfo (   $name,
array  $settings,
array  $options 
)

Describe parameter settings in a machine-readable format.

Keys should be short strings using lowercase ASCII letters. Values should generally be values that could be encoded in JSON or the like.

This is intended to handle PARAM constants specific to this class. It generally shouldn't handle constants defined on ParamValidator itself.

Parameters
string$nameParameter name.
array$settingsParameter settings array.
array$optionsOptions array.
Returns
array

Reimplemented from Wikimedia\ParamValidator\TypeDef.

Definition at line 189 of file UserDef.php.

References Wikimedia\ParamValidator\ParamValidator\TypeDef\UserDef\PARAM_ALLOWED_USER_TYPES.

◆ normalizeSettings()

Wikimedia\ParamValidator\ParamValidator\TypeDef\UserDef::normalizeSettings ( array  $settings)

Normalize a settings array.

Parameters
array$settings
Returns
array

Reimplemented from Wikimedia\ParamValidator\TypeDef.

Definition at line 63 of file UserDef.php.

References Wikimedia\ParamValidator\ParamValidator\TypeDef\UserDef\PARAM_ALLOWED_USER_TYPES.

◆ processUser()

Wikimedia\ParamValidator\ParamValidator\TypeDef\UserDef::processUser ( string  $value)
private

Process $value to a UserIdentity, if possible.

Parameters
string$value
Returns
array [ string $type, UserIdentity|null $user ] -return array{0:string,1:UserIdentity|null}

Definition at line 132 of file UserDef.php.

References $t, User\getCanonicalName(), ExternalUserNames\isExternal(), User\newFromAnyId(), User\newFromId(), User\newFromName(), Title\newFromText(), NS_USER, and RE_IP_BYTE.

Referenced by Wikimedia\ParamValidator\ParamValidator\TypeDef\UserDef\validate().

◆ validate()

Wikimedia\ParamValidator\ParamValidator\TypeDef\UserDef::validate (   $name,
  $value,
array  $settings,
array  $options 
)

Validate the value.

When ParamValidator is processing a multi-valued parameter, this will be called once for each of the supplied values. Which may mean zero calls.

When getValue() returned null, this will not be called.

Parameters
string$nameParameter name being validated.
mixed$valueValue to validate, from getValue().
array$settingsParameter settings array.
array$optionsOptions array. Note the following values that may be set by ParamValidator:
  • is-default: (bool) If present and true, the value was taken from PARAM_DEFAULT rather that being supplied by the client.
  • values-list: (string[]) If defined, values of a multi-valued parameter are being processed (and this array holds the full set of values).
Returns
mixed Validated value
Exceptions
ValidationExceptionif the value is invalid

Reimplemented from Wikimedia\ParamValidator\TypeDef.

Definition at line 54 of file UserDef.php.

References $type, Wikimedia\ParamValidator\TypeDef\failure(), and Wikimedia\ParamValidator\ParamValidator\TypeDef\UserDef\processUser().

Member Data Documentation

◆ PARAM_ALLOWED_USER_TYPES

const Wikimedia\ParamValidator\ParamValidator::TypeDef\UserDef::PARAM_ALLOWED_USER_TYPES = 'param-allowed-user-types'

(string[]) Allowed types of user.

One or more of the following values:

  • 'name': User names are allowed.
  • 'ip': IP ("anon") usernames are allowed.
  • 'cidr': IP ranges are allowed.
  • 'interwiki': Interwiki usernames are allowed.
  • 'id': Allow specifying user IDs, formatted like "#123".

Default is ‘[ 'name’, 'ip', 'cidr', 'interwiki' ]`.

Avoid combining 'id' with PARAM_ISMULTI, as it may result in excessive DB lookups. If you do combine them, consider setting low values for PARAM_ISMULTI_LIMIT1 and PARAM_ISMULTI_LIMIT2 to mitigate it.

Definition at line 41 of file UserDef.php.

Referenced by Wikimedia\ParamValidator\ParamValidator\TypeDef\UserDef\checkSettings(), Wikimedia\ParamValidator\ParamValidator\TypeDef\UserDef\getParamInfo(), and Wikimedia\ParamValidator\ParamValidator\TypeDef\UserDef\normalizeSettings().

◆ PARAM_RETURN_OBJECT

const Wikimedia\ParamValidator\ParamValidator::TypeDef\UserDef::PARAM_RETURN_OBJECT = 'param-return-object'

(bool) Whether to return a UserIdentity object.

If false, the validated user name is returned as a string. Default is false.

Avoid setting true with PARAM_ISMULTI, as it may result in excessive DB lookups. If you do combine them, consider setting low values for PARAM_ISMULTI_LIMIT1 and PARAM_ISMULTI_LIMIT2 to mitigate it.

Definition at line 52 of file UserDef.php.

Referenced by Wikimedia\ParamValidator\ParamValidator\TypeDef\UserDef\checkSettings().


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