32 parent::__construct( $params );
34 'parent' => $params[
'parent'],
35 'fieldname' => $params[
'fieldname'] .
'-ip',
36 'rows' => self::DEFAULT_ROWS,
37 'required' => $params[
'required'] ??
false,
38 'help-message' =>
'restrictionsfield-help',
39 'label-message' =>
'restrictionsfield-label',
45 'parent' => $params[
'parent'],
46 'fieldname' => $params[
'fieldname'] .
'-pages',
47 'label-message' =>
'restrictionsfields-pages-label',
48 'help-message' =>
'restrictionsfields-pages-help',
49 'allowArbitrary' =>
true,
60 if ( !$request->getCheck( $this->mName .
'-ip' ) ) {
64 $ipValue = rtrim( $request->getText( $this->mName .
'-ip' ),
"\r\n" );
65 $ips = $ipValue ===
'' ? [] : explode(
"\n", $ipValue );
66 $pagesValue = $request->getText( $this->mName .
'-pages' );
67 $pageList = $pagesValue ? explode(
"\n", $pagesValue ) : [];
91 isset( $this->mParams[
'required'] ) && $this->mParams[
'required'] !==
false
92 && !$value->toArray()[
'IPAddresses']
94 return $this->
msg(
'htmlform-required' );
97 if ( !$value->validity->isGood() ) {
99 $this->mParent->getContext()
101 return $statusFormatter->getMessage( $value->validity );
104 if ( $this->mValidationCallback !==
null ) {
105 return ( $this->mValidationCallback )( $value, $alldata,
$this->mParent );
116 $ipValue = implode(
"\n", $value->toArray()[
'IPAddresses'] );
117 $pagesValue = implode(
"\n", $value->toArray()[
'Pages'] ?? [] );
119 $this->ipField->getDiv( $ipValue ) .
120 $this->pagesField->getDiv( $pagesValue )
130 $ipValue = implode(
"\n", $value->toArray()[
'IPAddresses'] );
131 $pagesValue = implode(
"\n", $value->toArray()[
'Pages'] ?? [] );
133 $this->ipField->getOOUI( $ipValue ) .
134 $this->pagesField->getOOUI( $pagesValue )
140class_alias( HTMLRestrictionsField::class,
'HTMLRestrictionsField' );
A class to check request restrictions expressed as a JSON object.
static newFromArray(array $restrictions)