'editmyuserjs',
'editmywatchlist',
'editsemiprotected',
+ 'editsitecss',
+ 'editsitejson',
+ 'editsitejs',
'editusercss',
'edituserjson',
'edituserjs',
*/
public static function getAllGroups() {
global $wgGroupPermissions, $wgRevokePermissions;
- return array_diff(
+ return array_values( array_diff(
array_merge( array_keys( $wgGroupPermissions ), array_keys( $wgRevokePermissions ) ),
self::getImplicitGroups()
- );
+ ) );
}
/**
}
}
- // Convert the email blacklist from a new line delimited string
- // to an array of ids.
- if ( isset( $data['email-blacklist'] ) && $data['email-blacklist'] ) {
- $data['email-blacklist'] = array_map( 'intval', explode( "\n", $data['email-blacklist'] ) );
- }
-
foreach ( $data as $property => $value ) {
$this->mOptionOverrides[$property] = $value;
$this->mOptions[$property] = $value;
// Not using getOptions(), to keep hidden preferences in database
$saveOptions = $this->mOptions;
- // Convert usernames to ids.
- if ( isset( $this->mOptions['email-blacklist'] ) ) {
- if ( $this->mOptions['email-blacklist'] ) {
- $value = $this->mOptions['email-blacklist'];
- // Email Blacklist may be an array of ids or a string of new line
- // delimnated user names.
- if ( is_array( $value ) ) {
- $ids = array_filter( $value, 'is_numeric' );
- } else {
- $lookup = CentralIdLookup::factory();
- $ids = $lookup->centralIdsFromNames( explode( "\n", $value ), $this );
- }
- $this->mOptions['email-blacklist'] = $ids;
- $saveOptions['email-blacklist'] = implode( "\n", $this->mOptions['email-blacklist'] );
- } else {
- // If the blacklist is empty, set it to null rather than an empty string.
- $this->mOptions['email-blacklist'] = null;
- }
- }
-
// Allow hooks to abort, for instance to save to a global profile.
// Reset options to default state before saving.
if ( !Hooks::run( 'UserSaveOptions', [ $this, &$saveOptions ] ) ) {