* @since 1.34
*/
public static $constructorOptions = [
+ 'AllowRequiringEmailForResets',
'AllowUserCss',
'AllowUserCssPrefs',
'AllowUserJs',
if ( $this->options->get( 'EnableEmail' ) ) {
if ( $canViewPrivateInfo ) {
+ $helpMessages = [];
$helpMessages[] = $this->options->get( 'EmailConfirmToEdit' )
? 'prefs-help-email-required'
: 'prefs-help-email';
}
}
+ if ( $this->options->get( 'AllowRequiringEmailForResets' ) ) {
+ $defaultPreferences['requireemail'] = [
+ 'type' => 'toggle',
+ 'label-message' => 'tog-requireemail',
+ 'help-message' => 'prefs-help-requireemail',
+ 'section' => 'personal/email',
+ 'disabled' => $disableEmailPrefs,
+ ];
+ }
+
if ( $this->options->get( 'EnableUserEmail' ) && $user->isAllowed( 'sendemail' ) ) {
$defaultPreferences['disablemail'] = [
'id' => 'wpAllowEmail',
* Handle the form submission if everything validated properly
*
* @param array $formData
- * @param HTMLForm $form
+ * @param PreferencesFormOOUI $form
* @param array[] $formDescriptor
* @return bool|Status|string
*/
- protected function saveFormData( $formData, HTMLForm $form, array $formDescriptor ) {
- /** @var \User $user */
+ protected function saveFormData( $formData, PreferencesFormOOUI $form, array $formDescriptor ) {
$user = $form->getModifiedUser();
$hiddenPrefs = $this->options->get( 'HiddenPrefs' );
$result = true;
* Save the form data and reload the page
*
* @param array $formData
- * @param HTMLForm $form
+ * @param PreferencesFormOOUI $form
* @param array $formDescriptor
* @return Status
*/
- protected function submitForm( array $formData, HTMLForm $form, array $formDescriptor ) {
+ protected function submitForm(
+ array $formData,
+ PreferencesFormOOUI $form,
+ array $formDescriptor
+ ) {
$res = $this->saveFormData( $formData, $form, $formDescriptor );
if ( $res === true ) {
*/
protected function getTimeZoneList( Language $language ) {
$identifiers = DateTimeZone::listIdentifiers();
+ // @phan-suppress-next-line PhanTypeComparisonFromArray See phan issue #3162
if ( $identifiers === false ) {
return [];
}