http://www.mediawiki.org/wiki/Special:Code/MediaWiki/99777
Revision: 99777
Author: cervidae
Date: 2011-10-14 16:01:35 +0000 (Fri, 14 Oct 2011)
Log Message:
-----------
Adding GlobalUserGroups extension
Added Paths:
-----------
branches/REL1_16/extensions/GlobalUserGroups/
branches/REL1_16/extensions/GlobalUserGroups/GlobalUserGroups.i18n.extras.php
branches/REL1_16/extensions/GlobalUserGroups/GlobalUserGroups.i18n.php
branches/REL1_16/extensions/GlobalUserGroups/GlobalUserGroups.php
Added:
branches/REL1_16/extensions/GlobalUserGroups/GlobalUserGroups.i18n.extras.php
===================================================================
---
branches/REL1_16/extensions/GlobalUserGroups/GlobalUserGroups.i18n.extras.php
(rev 0)
+++
branches/REL1_16/extensions/GlobalUserGroups/GlobalUserGroups.i18n.extras.php
2011-10-14 16:01:35 UTC (rev 99777)
@@ -0,0 +1,128 @@
+<?php
+/**
+ * Internationalization file for extra user groups if GlobalUserGroups
extension is used
+ *
+ * @since 1.0
+ *
+ * @file GlobalUserGroups.i18n.extras.php
+ * @ingroup GlobalUserGroupsExtras
+ *
+ * @license http://www.gnu.org/copyleft/gpl.html GNU General Public License
2.0 or later
+ * @author Tim Weyer (SVG) <[email protected]>
+ */
+
+$messages = array();
+
+/** English
+ * @author SVG
+ */
+$messages['en'] = array(
+ 'group-bot-global' => 'Global Bots',
+ 'group-bot-global-member' => 'global bot',
+ 'grouppage-bot-global' => '{{ns:help}}:Global Bots',
+
+ 'group-checkuser-global' => 'Global Check users',
+ 'group-checkuser-global-member' => 'global check user',
+ 'grouppage-checkuser-global' => '{{ns:help}}:Global Checkusers',
+
+ 'group-communitymanager' => 'Community managers',
+ 'group-communitymanager-member' => 'community manager',
+ 'grouppage-communitymanager' => '{{ns:help}}:Community managers',
+
+ 'group-helper' => 'Helpers',
+ 'group-helper-member' => 'helper',
+ 'grouppage-helper' => '{{ns:help}}:Helpers',
+
+ 'group-helper-global' => 'Global Helpers',
+ 'group-helper-global-member' => 'global helper',
+ 'grouppage-helper-global' => '{{ns:help}}:Global Helpers',
+
+ 'group-ipblock-exempt' => 'IP block exemptions',
+ 'group-ipblock-exempt-member' => 'ip block exemption',
+ 'grouppage-ipblock-exempt' => '{{ns:help}}:IP block exemptions',
+
+ 'group-ipblock-exempt-g' => 'Global IP block exemptions',
+ 'group-ipblock-exempt-g-member' => 'global ip block exemption',
+ 'grouppage-ipblock-exempt-g' => '{{ns:help}}:Global IP block
exemptions',
+
+ 'group-rollback-global' => 'Global Rollbackers',
+ 'group-rollback-global-member' => 'global rollbacker',
+ 'grouppage-rollback-global' => '{{ns:help}}:Global Rollbackers',
+
+ 'group-steward' => 'Stewards',
+ 'group-steward-member' => 'steward',
+ 'grouppage-steward' => '{{ns:help}}:Stewards',
+
+ 'group-steward-global' => 'Global Stewards',
+ 'group-steward-global-member' => 'global steward',
+ 'grouppage-steward-global' => '{{ns:help}}:Global Stewards',
+
+ 'group-sysadmin' => 'System administrators',
+ 'group-sysadmin-member' => 'system administrator',
+ 'grouppage-sysadmin' => '{{ns:help}}:System administrators',
+
+ 'group-sysadmin-global' => 'Global System administrators',
+ 'group-sysadmin-global-member' => 'global system administrator',
+ 'grouppage-sysadmin-global' => '{{ns:help}}:Global System
administrators',
+
+ 'group-sysop-global' => 'Global Administrators',
+ 'group-sysop-global-member' => 'global administrator',
+ 'grouppage-sysop-global' => '{{ns:help}}:Global Administrators',
+);
+
+/** German (Deutsch)
+ * @author SVG
+ */
+$messages['de'] = array(
+ 'group-bot-global' => 'Globale Bots',
+ 'group-bot-global-member' => 'Globaler Bot',
+ 'grouppage-bot-global' => '{{ns:help}}:Globale Bots',
+
+ 'group-communitymanager' => 'Community Manager',
+ 'group-communitymanager-member' => 'Community Manager',
+ 'grouppage-communitymanager' => '{{ns:help}}:Community Manager',
+
+ 'group-checkuser-global' => 'Globale Checkuser',
+ 'group-checkuser-global-member' => 'Globaler Checkuser',
+ 'grouppage-checkuser-global' => '{{ns:help}}:Globale Checkuser',
+
+ 'group-helper' => 'Helfer',
+ 'group-helper-member' => 'Helfer',
+ 'grouppage-helper' => '{{ns:help}}:Helfer',
+
+ 'group-helper-global' => 'Globale Helfer',
+ 'group-helper-global-member' => 'Globaler Helfer',
+ 'grouppage-helper-global' => '{{ns:help}}:Globale Helfer',
+
+ 'group-ipblock-exempt' => 'IP-Sperre-Ausnahmen',
+ 'group-ipblock-exempt-member' => 'IP-Sperre-Ausnahme',
+ 'grouppage-ipblock-exempt' => '{{ns:help}}:IP-Sperre-Ausnahmen',
+
+ 'group-ipblock-exempt-g' => 'Globale IP-Sperre-Ausnahmen',
+ 'group-ipblock-exempt-g-member' => 'Globale IP-Sperre-Ausnahme',
+ 'grouppage-ipblock-exempt-g' => '{{ns:help}}:Globale
IP-Sperre-Ausnahmen',
+
+ 'group-rollback-global' => 'Globale Zurücksetzer',
+ 'group-rollback-global-member' => 'Globaler Zurücksetzer',
+ 'grouppage-rollback-global' => '{{ns:help}}:Globale Zurücksetzer',
+
+ 'group-steward' => 'Stewards',
+ 'group-steward-member' => 'Steward',
+ 'grouppage-steward' => '{{ns:help}}:Stewards',
+
+ 'group-steward-global' => 'Globale Stewards',
+ 'group-steward-global-member' => 'Globaler Steward',
+ 'grouppage-steward-global' => '{{ns:help}}:Globale Stewards',
+
+ 'group-sysadmin' => 'Systemadministratoren',
+ 'group-sysadmin-member' => 'Systemadministrator',
+ 'grouppage-sysadmin' => '{{ns:help}}:Systemadministratoren',
+
+ 'group-sysadmin-global' => 'Globale Systemadministratoren',
+ 'group-sysadmin-global-member' => 'Globaler Systemadministrator',
+ 'grouppage-sysadmin-global' => '{{ns:help}}:Globale
Systemadministratoren',
+
+ 'group-sysop-global' => 'Globale Administratoren',
+ 'group-sysop-global-member' => 'Globaler Administrator',
+ 'grouppage-sysop-global' => '{{ns:help}}:Globale Administratoren',
+);
\ No newline at end of file
Added: branches/REL1_16/extensions/GlobalUserGroups/GlobalUserGroups.i18n.php
===================================================================
--- branches/REL1_16/extensions/GlobalUserGroups/GlobalUserGroups.i18n.php
(rev 0)
+++ branches/REL1_16/extensions/GlobalUserGroups/GlobalUserGroups.i18n.php
2011-10-14 16:01:35 UTC (rev 99777)
@@ -0,0 +1,29 @@
+<?php
+
+/**
+ * Internationalization file for the GlobalUserGroups extension
+ *
+ * @since 1.0
+ *
+ * @file GlobalUserGroups.i18n.php
+ * @ingroup GlobalUserGroups
+ *
+ * @license http://www.gnu.org/copyleft/gpl.html GNU General Public License
2.0 or later
+ * @author Tim Weyer (SVG) <[email protected]>
+ */
+
+$messages = array();
+
+/** English
+ * @author SVG
+ */
+$messages['en'] = array(
+ 'globalusergroups-desc' => 'Allows the use of defined local user groups
as global groups',
+);
+
+/** German (Deutsch)
+ * @author SVG
+ */
+$messages['de'] = array(
+ 'globalusergroups-desc' => 'Ermöglicht das Nutzen von definierten
lokalen Benutzergruppen als globale Gruppen',
+);
Added: branches/REL1_16/extensions/GlobalUserGroups/GlobalUserGroups.php
===================================================================
--- branches/REL1_16/extensions/GlobalUserGroups/GlobalUserGroups.php
(rev 0)
+++ branches/REL1_16/extensions/GlobalUserGroups/GlobalUserGroups.php
2011-10-14 16:01:35 UTC (rev 99777)
@@ -0,0 +1,103 @@
+<?php
+/**
+ * GlobalUserGroups - adds specified user groups as to all 'user_groups'
tables in a wiki family ($wgLocalDatabases)
+ *
+ * @package MediaWiki
+ * @subpackage Extensions
+ *
+ * @author Tim Weyer (SVG) <[email protected]>
+ *
+ * @copyright Copyright (C) 2011 by Tim Weyer
+ * @license http://www.gnu.org/copyleft/gpl.html GNU General Public License
2.0 or later
+ */
+
+if (!defined('MEDIAWIKI')){
+ echo ('THIS IS NOT VALID ENTRY POINT.'); exit (1);
+}
+
+$wgExtensionFunctions[] = 'efGlobalUserGroupsEMWT';
+
+$wgExtensionCredits['specialpage'][] = array(
+ 'name' => 'GlobalUserGroups',
+ 'url' => 'http://www.mediawiki.org/wiki/Extension:GlobalUserGroups',
+ 'author' => 'Tim Weyer',
+ 'descriptionmsg' => 'globalusergroups-desc',
+ 'version' => '1.0.1',
+);
+
+// Use extra translations for various user group names and similars
+$wgGlobalUserGroupsUseEMWT = true;
+
+// Translations
+$dir = dirname( __FILE__ ) . '/';
+$wgExtensionMessagesFiles['GlobalUserGroups'] = $dir .
'GlobalUserGroups.i18n.php';
+
+// Hooks
+$wgHooks['UserRights'][] = 'efManageGlobalUserGroups';
+
+function efManageGlobalUserGroups($user, $addgroup, $removegroup) {
+ global $wgGlobalUserGroups, $wgLocalDatabases;
+
+ # Remove groups in all local databases if there is anything to remove
+ if (!empty($removegroup)) {
+ $global_removeable = array_intersect($removegroup,
$wgGlobalUserGroups);
+
+ if (!empty($global_removeable)) {
+
+ foreach ( $wgLocalDatabases as $wikiID ) {
+ $db = wfGetDB( DB_MASTER, array(), $wikiID );
+
+
+ foreach ( $global_removeable as $group ) {
+
+ # delete from all local databases
+ $db->delete('user_groups', array(
+ 'ug_user' => $user->getId(),
+ 'ug_group' => $group),
+ 'GlobalUserGroups::removeGroup'
+ );
+
+ }
+ }
+ }
+ }
+
+ # Add groups in all local databases if there is anything to add
+ if (!empty($addgroup)) {
+ $global_addable = array_intersect($addgroup,
$wgGlobalUserGroups);
+
+ if (!empty($global_addable)) {
+
+ foreach ( $wgLocalDatabases as $wikiID ) {
+ $db = wfGetDB( DB_MASTER, array(), $wikiID );
+
+ foreach ( $global_addable as $group ) {
+
+ # insert into all local databases
+ $db->insert('user_groups', array(
+ 'ug_user' => $user->getId(),
+ 'ug_group' => $group),
+ 'GlobalUserGroups::addGroup',
+ 'IGNORE'
+ );
+
+ }
+ }
+ }
+ }
+
+ return true;
+}
+
+
+
+function efGlobalUserGroupsEMWT() {
+ global $wgGlobalUserGroupsUseEMWT;
+ global $wgExtensionMessagesFiles;
+
+ $dir = dirname( __FILE__ ) . '/';
+
+ if ( $wgGlobalUserGroupsUseEMWT ) {
+ $wgExtensionMessagesFiles['GlobalUserGroupsExtras'] = $dir .
'GlobalUserGroups.i18n.extras.php';
+ }
+}
_______________________________________________
MediaWiki-CVS mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-cvs