[evolvis-commits] r13813: Fixed authentication and added differenciation in permissions for project admins /members/non-members/anonymous
mirabilos at evolvis.org
mirabilos at evolvis.org
Mon Feb 28 03:01:40 CET 2011
Author: mirabilos
Date: 2011-02-28 03:01:26 +0100 (Mon, 28 Feb 2011)
New Revision: 13813
Modified:
trunk/gforge_base/evolvisforge-5.1/gforge/debian/control
trunk/gforge_base/evolvisforge-5.1/gforge/plugins/mediawiki/cronjobs/create-wikis.sh
trunk/gforge_base/evolvisforge-5.1/gforge/plugins/mediawiki/www/LocalSettings.php
Log:
Fixed authentication and added differenciation in permissions for project admins/members/non-members/anonymous
Modified: trunk/gforge_base/evolvisforge-5.1/gforge/debian/control
===================================================================
--- trunk/gforge_base/evolvisforge-5.1/gforge/debian/control 2011-02-28 02:00:26 UTC (rev 13812)
+++ trunk/gforge_base/evolvisforge-5.1/gforge/debian/control 2011-02-28 02:01:26 UTC (rev 13813)
@@ -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_base/evolvisforge-5.1/gforge/plugins/mediawiki/cronjobs/create-wikis.sh
===================================================================
--- trunk/gforge_base/evolvisforge-5.1/gforge/plugins/mediawiki/cronjobs/create-wikis.sh 2011-02-28 02:00:26 UTC (rev 13812)
+++ trunk/gforge_base/evolvisforge-5.1/gforge/plugins/mediawiki/cronjobs/create-wikis.sh 2011-02-28 02:01:26 UTC (rev 13813)
@@ -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_base/evolvisforge-5.1/gforge/plugins/mediawiki/www/LocalSettings.php
===================================================================
--- trunk/gforge_base/evolvisforge-5.1/gforge/plugins/mediawiki/www/LocalSettings.php 2011-02-28 02:00:26 UTC (rev 13812)
+++ trunk/gforge_base/evolvisforge-5.1/gforge/plugins/mediawiki/www/LocalSettings.php 2011-02-28 02:01:26 UTC (rev 13813)
@@ -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 evolvis-commits
mailing list