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

Reply via email to