We find userOptions.php is unable to access some options, due to the
difference in these two files,
perl -nwle 'for(/\$defaultPreferences\[\x27(\w+)\x27]/g){$h{$_}++};END{print for sort keys %h}' Preferences.php>/tmp/w1
perl -nwle 'next unless /\$wgDefaultUserOptions = array\(/../\);/;/\x27(\w+)\x27/&&print$1;' DefaultSettings.php|sort>/tmp/w2
comm -3 /tmp/w[12]
editcount
emailaddress
emailauthentication
language
nickname
nowlocal
nowserver
password
realname
registrationdate
searchnamespaces
timecorrection
usergroups
userid
username
variant
watchcreations
watchdefault
watchdeletion
watchmoves
Also userOptions.php should accept a wildcard for --old.
E.g.,
I've had enough of signature abuse on my wiki. In LocalSettings.php I'm
now doing array_push($wgHiddenPrefs,'nickname','fancysig'); and with
userOptions.php I can zap fancysig, but I can't zap all their nicknames,
and even if I could touch them by adding
$wgDefaultUserOptions['nickname']='' there in LocalSettings.php,
userOptions.php doesn't allow me to zap all the nicknames in one shot,
because it doesn't accept wildcards. Alas, my only alternative is SQL...
Sure, some of them shouldn't be tampered with, but in the above case,
the administrator can freeze people's nicknames, but not clear them.
Version: 1.16.x
Severity: enhancement