[go: nahoru, domu]

Page MenuHomePhabricator
Paste P65582

Phan test for gerrit 1051088
ActivePublic

Authored by Tgr on Mon, Jul 1, 1:46 PM.
Tags
None
Referenced Files
F56125264: Phan test for gerrit 1051088
Mon, Jul 1, 1:48 PM
F56125214: Phan test for gerrit 1051088
Mon, Jul 1, 1:46 PM
Subscribers
None
<?php
function wfDeprecated($a, $b) {
var_dump("deprecated $a $b");
}
function getText($key, $default = '') {
return $_GET[$key] ?? $default;
}
/**
* Returns URL query parameters which should be preserved between authentication requests.
* These should be used when generating links such as form submit or language switch.
*
* These parameters will be preserved in:
* - successive authentication steps (the form submit URL and the return URL for redirecting
* providers);
* - links that reload the same form somehow (e.g. language switcher links);
* - links for switching between the login and create account forms.
*
* @stable to override
* @param array $options (since 1.43)
* - reset (bool, default false): Reset the authentication process, i.e. omit parameters
* which are related to continuing in-progress authentication.
* - withToken (bool, default false): Include CSRF token
* Before 1.43, this was a boolean flag identical to the current 'withToken' option.
* That usage is deprecated.
* @phan-param array{reset?: bool, withToken?: bool}|bool $options
* @return array Array of parameter name => parameter value.
*/
function getPreservedParams( $options = [] ) {
if ( is_bool( $options ) ) {
wfDeprecated( __FUNCTION__ . ' boolean $options', '1.43' );
$options = [ 'withToken' => $options ];
}
$options += [
'reset' => false,
'withToken' => false,
];
$params = [];
$params += [
'uselang' => getText( 'uselang' ) ?: null,
'variant' => getText( 'variant' ) ?: null,
];
foreach ( [ 'returnto', 'returntoquery', 'returntoanchor' ] as $key ) {
// getText returns '' when the parameter is not present, we need to differentiate
// that from '0' which is also falsy but a valid returnX value.
$value = getText( $key, '' );
if ( $value !== '' ) {
$params[$key] = $value;
}
}
if ( $options['withToken'] ) {
$params['token'] = 'TOKEN';
}
return array_filter( $params, fn ( $val ) => $val !== null );
}
var_dump( getPreservedParams() );
var_dump( getPreservedParams( [ 'reset' => true, 'withToken' => true ] ) );