'key' => $message->getKey(),
'params' => $message->getParams(),
];
+ ApiResult::setIndexedTagName( $res[$key]['params'], 'param' );
break;
}
}
// Collect the fields for all the requests
$fields = [];
+ $sensitive = [];
foreach ( $reqs as $req ) {
- $fields += (array)$req->getFieldInfo();
+ $info = (array)$req->getFieldInfo();
+ $fields += $info;
+ $sensitive += array_filter( $info, function ( $opts ) {
+ return !empty( $opts['sensitive'] );
+ } );
}
// Extract the request data for the fields and mark those request
$data = array_intersect_key( $this->module->getRequest()->getValues(), $fields );
$this->module->getMain()->markParamsUsed( array_keys( $data ) );
+ if ( $sensitive ) {
+ $this->module->requirePostedParameters( array_keys( $sensitive ), 'noprefix' );
+ }
+
return AuthenticationRequest::loadRequestsFromSubmission( $reqs, $data );
}
* @return array
*/
public function formatAuthenticationResponse( AuthenticationResponse $res ) {
- $params = $this->module->extractRequestParams();
-
$ret = [
'status' => $res->status,
];
$this->formatMessage( $ret, 'label', $field['label'] );
$this->formatMessage( $ret, 'help', $field['help'] );
$ret['optional'] = !empty( $field['optional'] );
+ $ret['sensitive'] = !empty( $field['sensitive'] );
$retFields[$name] = $ret;
}