linkRequests = $linkRequests; } /** * @inheritDoc * @stable to override */ public function getFieldInfo() { $options = []; foreach ( $this->linkRequests as $req ) { $description = $req->describeCredentials(); $options[$req->getUniqueId()] = wfMessage( 'authprovider-confirmlink-option', $description['provider']->text(), $description['account']->text() ); } return [ 'confirmedLinkIDs' => [ 'type' => 'multiselect', 'options' => $options, 'label' => wfMessage( 'authprovider-confirmlink-request-label' ), 'help' => wfMessage( 'authprovider-confirmlink-request-help' ), 'optional' => true, ] ]; } /** * @inheritDoc * @stable to override */ public function getUniqueId() { $ids = []; foreach ( $this->linkRequests as $req ) { $ids[] = $req->getUniqueId(); } return parent::getUniqueId() . ':' . implode( '|', $ids ); } /** * Implementing this mainly for use from the unit tests. * @param array $data * @return AuthenticationRequest */ public static function __set_state( $data ) { $ret = new static( $data['linkRequests'] ); foreach ( $data as $k => $v ) { $ret->$k = $v; } return $ret; } }