Changes ResourceLoaderUserGroupsModule so that if the user is in the 'user' group, i.e., the user is not anonymous, then custom JS or CSS can be inserted using system messages in the same way as is allowed for other user groups. Bug: 47812 Change-Id: I0ef9674e1a9e1e5db9537ba7b9578d2b7b14fd8e
83 lines
2.1 KiB
PHP
83 lines
2.1 KiB
PHP
<?php
|
|
/**
|
|
* Resource loader module for user customizations.
|
|
*
|
|
* This program is free software; you can redistribute it and/or modify
|
|
* it under the terms of the GNU General Public License as published by
|
|
* the Free Software Foundation; either version 2 of the License, or
|
|
* (at your option) any later version.
|
|
*
|
|
* This program is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU General Public License along
|
|
* with this program; if not, write to the Free Software Foundation, Inc.,
|
|
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|
* http://www.gnu.org/copyleft/gpl.html
|
|
*
|
|
* @file
|
|
*/
|
|
|
|
/**
|
|
* Module for user customizations
|
|
*/
|
|
class ResourceLoaderUserGroupsModule extends ResourceLoaderWikiModule {
|
|
|
|
/* Protected Members */
|
|
|
|
protected $origin = self::ORIGIN_USER_SITEWIDE;
|
|
protected $targets = array( 'desktop', 'mobile' );
|
|
|
|
/* Protected Methods */
|
|
|
|
/**
|
|
* @param $context ResourceLoaderContext
|
|
* @return array
|
|
*/
|
|
protected function getPages( ResourceLoaderContext $context ) {
|
|
global $wgUser, $wgUseSiteJs, $wgUseSiteCss;
|
|
|
|
$userName = $context->getUser();
|
|
if ( $userName === null ) {
|
|
return array();
|
|
}
|
|
if ( !$wgUseSiteJs && !$wgUseSiteCss ) {
|
|
return array();
|
|
}
|
|
|
|
// Use $wgUser is possible; allows to skip a lot of code
|
|
if ( is_object( $wgUser ) && $wgUser->getName() == $userName ) {
|
|
$user = $wgUser;
|
|
} else {
|
|
$user = User::newFromName( $userName );
|
|
if ( !$user instanceof User ) {
|
|
return array();
|
|
}
|
|
}
|
|
|
|
$pages = array();
|
|
foreach ( $user->getEffectiveGroups() as $group ) {
|
|
if ( $group == '*' ) {
|
|
continue;
|
|
}
|
|
if ( $wgUseSiteJs ) {
|
|
$pages["MediaWiki:Group-$group.js"] = array( 'type' => 'script' );
|
|
}
|
|
if ( $wgUseSiteCss ) {
|
|
$pages["MediaWiki:Group-$group.css"] = array( 'type' => 'style' );
|
|
}
|
|
}
|
|
return $pages;
|
|
}
|
|
|
|
/* Methods */
|
|
|
|
/**
|
|
* @return string
|
|
*/
|
|
public function getGroup() {
|
|
return 'user';
|
|
}
|
|
}
|