[Fusionforge-commits] r8210 - in trunk/gforge: debian plugins/mediawiki/cronjobs plugins/mediawiki/www

Roland Mas lolando at libremir.placard.fr.eu.org
Tue Sep 29 17:08:47 CEST 2009


Author: lolando
Date: 2009-09-29 17:08:46 +0200 (Tue, 29 Sep 2009)
New Revision: 8210

Modified:
   trunk/gforge/debian/control
   trunk/gforge/plugins/mediawiki/cronjobs/create-wikis.sh
   trunk/gforge/plugins/mediawiki/www/LocalSettings.php
Log:
Fixed authentication and added differenciation in permissions for project admins/members/non-members/anonymous

Modified: trunk/gforge/debian/control
===================================================================
--- trunk/gforge/debian/control	2009-09-29 15:08:38 UTC (rev 8209)
+++ trunk/gforge/debian/control	2009-09-29 15:08:46 UTC (rev 8210)
@@ -308,7 +308,7 @@
 
 Package: gforge-plugin-mediawiki
 Architecture: all
-Depends: gforge-common (>= 4.6.99), gforge-db-postgresql (>= 4.6.99) | gforge-db, gforge-web-apache2 (>= 4.6.99) | gforge-web, mediawiki, ${misc:Depends}
+Depends: gforge-common (>= 4.6.99), gforge-db-postgresql (>= 4.6.99) | gforge-db, gforge-web-apache2 (>= 4.6.99) | gforge-web, mediawiki (>= 1.15~), ${misc:Depends}
 Description: Mediawiki plugin for FusionForge
  FusionForge provides many tools to aid collaboration in a
  development project, such as bug-tracking, task management,

Modified: trunk/gforge/plugins/mediawiki/cronjobs/create-wikis.sh
===================================================================
--- trunk/gforge/plugins/mediawiki/cronjobs/create-wikis.sh	2009-09-29 15:08:38 UTC (rev 8209)
+++ trunk/gforge/plugins/mediawiki/cronjobs/create-wikis.sh	2009-09-29 15:08:46 UTC (rev 8210)
@@ -20,6 +20,22 @@
 // To enable uploads for the wiki, you'll need to edit this value:
 \$wgEnableUploads = false;
 // Don't forget to "chown www-data $wdprefix/$project/images"
+
+// Edit permissions for group members
+\$wgGroupPermissions['Members']['edit']          = true;
+\$wgGroupPermissions['Members']['createpage']    = true;
+\$wgGroupPermissions['Members']['createtalk']    = true;
+
+// Edit permissions for non-members
+\$wgGroupPermissions['Users']['edit']          = false;
+\$wgGroupPermissions['Users']['createpage']    = false;
+\$wgGroupPermissions['Users']['createtalk']    = false;
+
+// Edit permissions for anonymous users
+\$wgGroupPermissions['*']['edit']          = false;
+\$wgGroupPermissions['*']['createpage']    = false;
+\$wgGroupPermissions['*']['createtalk']    = false;
+
 EOF
 
 	filteredprojects="$filteredprojects $project"

Modified: trunk/gforge/plugins/mediawiki/www/LocalSettings.php
===================================================================
--- trunk/gforge/plugins/mediawiki/www/LocalSettings.php	2009-09-29 15:08:38 UTC (rev 8209)
+++ trunk/gforge/plugins/mediawiki/www/LocalSettings.php	2009-09-29 15:08:46 UTC (rev 8210)
@@ -105,6 +105,9 @@
         }
         if ($s) {
                 $u = user_get_object ($s);
+		$g = group_get_object_by_name ($fusionforgeproject) ;
+		$perm =& $g->getPermission($u);
+
                 $mwname = ucfirst($u->getUnixName ()) ;
                 $mwu = User::newFromName ($mwname);
                 if($mwu->getID() == 0) {
@@ -112,45 +115,52 @@
                         $mwu->setPassword (User::randomPassword());
                         $mwu->setRealName ($u->getRealName ()) ;
                         $mwu->setToken ();
-                } else {
                         $mwu->loadFromDatabase ();
                 }
-		$g = group_get_object_by_name ($fusionforgeproject) ;
-		$perm =& $g->getPermission($u);
+                $user->mId=$mwu->getID();
+                $user->loadFromId() ;
 
-		$mwu->loadGroups() ;
-		$current_groups = $mwu->getGroups() ;
-
+		$user->loadGroups() ;
+		$current_groups = $user->getGroups() ;
                 if ($perm && is_object($perm) && $perm->isAdmin()) {
                         if (!in_array ('Administrators', $current_groups)) {
-                                $mwu->addGroup ('Administrators') ;
+                                $user->addGroup ('Administrators') ;
                         }
+                        if (!in_array ('Members', $current_groups)) {
+                                $user->addGroup ('Members') ;
+                        }
                         if (!in_array ('Users', $current_groups)) {
-                                $mwu->addGroup ('Users') ;
+                                $user->addGroup ('Users') ;
                         }
                 } elseif ($perm && is_object($perm) && $perm->isMember()) {
                         if (in_array ('Administrators', $current_groups)) {
-                                $mwu->removeGroup ('Administrators') ;
+                                $user->removeGroup ('Administrators') ;
                         }
+                        if (!in_array ('Members', $current_groups)) {
+                                $user->addGroup ('Members') ;
+                        }
                         if (!in_array ('Users', $current_groups)) {
-                                $mwu->addGroup ('Users') ;
+                                $user->addGroup ('Users') ;
                         }
                 } else {
                         if (in_array ('Administrators', $current_groups)) {
-                                $mwu->removeGroup ('Administrators') ;
+                                $user->removeGroup ('Administrators') ;
                         }
-                        if (in_array ('Users', $current_groups)) {
-                                $mwu->removeGroup ('Users') ;
+                        if (in_array ('Members', $current_groups)) {
+                                $user->removeGroup ('Members') ;
                         }
+                        if (!in_array ('Users', $current_groups)) {
+                                $user->addGroup ('Users') ;
+                        }
                 }
 
-                $mwu->setCookies ();
-                $mwu->saveSettings ();
-
-                $user = $mwu ;
+                $user->setCookies ();
+                $user->saveSettings ();
         } else {
 		$user->logout ();
         }
+
+	$result = true;
 	return true ;
 }
 
@@ -160,6 +170,16 @@
 
 $GLOBALS['wgHooks']['UserLoadFromSession'][]='GforgeMWAuth';
 
+$wgGroupPermissions['Members']['createaccount'] = true;
+$wgGroupPermissions['Members']['edit']          = true;
+$wgGroupPermissions['Members']['createpage']    = true;
+$wgGroupPermissions['Members']['createtalk']    = true;
+
+$wgGroupPermissions['Users']['createaccount'] = false;
+$wgGroupPermissions['Users']['edit']          = false;
+$wgGroupPermissions['Users']['createpage']    = false;
+$wgGroupPermissions['Users']['createtalk']    = false;
+
 $wgGroupPermissions['*']['createaccount'] = false;
 $wgGroupPermissions['*']['edit']          = false;
 $wgGroupPermissions['*']['createpage']    = false;
@@ -168,3 +188,8 @@
 $wgFavicon = '/images/icon.png' ;
 $wgBreakFrames = false ;
 ini_set ('memory_limit', '50M') ;
+
+// Local Variables:
+// mode: php
+// c-file-style: "bsd"
+// End:




More information about the Fusionforge-commits mailing list