3 $fusionforgeproject = 'siteadmin' ;
4 $exppath = explode ('/', $_SERVER['PHP_SELF']) ;
5 while (count ($exppath) >= 4) {
6 if (($exppath[0] == 'plugins') && ($exppath[1] == 'mediawiki') && ($exppath[2] == 'wiki') && ($exppath[4] == 'index.php')) {
7 $fusionforgeproject = $exppath[3] ;
10 array_shift ($exppath) ;
14 define('MW_INSTALL_PATH','/usr/share/gforge/www/plugins/mediawiki');
15 $wikidata = "/var/lib/gforge/plugins/mediawiki/wikidata/$fusionforgeproject" ;
17 if (file_exists ("$wikidata/LocalSettings.php")) {
18 require ("$wikidata/LocalSettings.php") ;
21 if( defined( 'MW_INSTALL_PATH' ) ) {
22 $IP = MW_INSTALL_PATH;
24 $IP = dirname( __FILE__ );
27 $path = array( $IP, "$IP/includes", "$IP/languages" );
28 set_include_path( implode( PATH_SEPARATOR, $path ) . PATH_SEPARATOR . get_include_path() );
30 require_once( "$IP/includes/DefaultSettings.php" );
32 if ( isset( $_SERVER ) && array_key_exists( 'REQUEST_METHOD', $_SERVER ) ) {
33 require_once ('/etc/gforge/local.inc') ;
34 require_once ('/usr/share/gforge/www/env.inc.php') ;
36 require_once ('/etc/gforge/database.inc') ;
40 if ( $wgCommandLineMode ) {
41 if ( isset( $_SERVER ) && array_key_exists( 'REQUEST_METHOD', $_SERVER ) ) {
42 die( "This script must be run from the command line\n" );
45 $wgSitename = "$sys_name Wiki";
46 $wgScriptPath = "/plugins/mediawiki/wiki/$fusionforgeproject" ;
48 $wgEmergencyContact = "webmaster@fusionforge.org";
49 $wgPasswordSender = "webmaster@fusionforge.org";
51 $wgDBtype = "postgres";
52 $wgDBserver = $sys_dbhost ;
53 $wgDBname = $sys_dbname;
54 $wgDBuser = $sys_dbuser ;
55 $wgDBpassword = $sys_dbpasswd ;
56 $wgDBadminuser = $sys_dbuser ;
57 $wgDBadminpassword = $sys_dbpasswd ;
58 $wgDBport = $sys_dbport ;
59 $wgDBmwschema = str_replace ('-', '_', "plugin_mediawiki_$fusionforgeproject") ;
60 $wgDBts2schema = str_replace ('-', '_', "plugin_mediawiki_$fusionforgeproject") ;
61 $wgMainCacheType = CACHE_NONE;
62 $wgMemCachedServers = array();
64 $wgEnableUploads = false;
65 $wgUploadDirectory = "$wikidata/images";
66 $wgUseImageMagick = true;
67 $wgImageMagickConvertCommand = "/usr/bin/convert";
68 $wgLocalInterwiki = $wgSitename;
69 $wgShowExceptionDetails = true ;
71 $wgLanguageCode = "en";
72 $wgDefaultSkin = 'fusionforge';
73 $wgStyleDirectory = '/usr/share/mediawiki/skins' ;
75 require ('/etc/gforge/local.inc') ;
76 require ('/usr/share/gforge/www/env.inc.php') ;
77 $GLOBALS['sys_dbhost'] = $sys_dbhost ;
78 $GLOBALS['sys_dbport'] = $sys_dbport ;
79 $GLOBALS['sys_dbname'] = $sys_dbname ;
80 $GLOBALS['sys_dbuser'] = $sys_dbuser ;
81 $GLOBALS['sys_dbpasswd'] = $sys_dbpasswd ;
82 $GLOBALS['sys_plugins_path'] = $sys_plugins_path ;
83 $GLOBALS['sys_urlprefix'] = $sys_urlprefix ;
84 $GLOBALS['sys_use_ssl'] = $sys_use_ssl ;
85 $GLOBALS['sys_default_domain'] = $sys_default_domain ;
86 $GLOBALS['sys_custom_path'] = $sys_custom_path ;
87 $GLOBALS['gfwww'] = $gfwww ;
88 $GLOBALS['gfplugins'] = $gfplugins ;
89 $GLOBALS['sys_lang'] = $sys_lang ;
90 require ($gfwww.'include/pre.php') ;
91 $GLOBALS['sys_urlroot'] = $sys_urlroot;
92 $GLOBALS['sys_session_key'] = $sys_session_key;
93 $GLOBALS['sys_session_expire'] = $sys_session_expire;
94 $GLOBALS['REMOTE_ADDR'] = getStringFromServer('REMOTE_ADDR') ;
95 $GLOBALS['HTTP_USER_AGENT'] = getStringFromServer('HTTP_USER_AGENT') ;
97 function FusionForgeMWAuth( &$user, &$result ) {
98 global $fusionforgeproject ;
100 $cookie = getStringFromCookie ('session_ser') ;
102 $s = session_check_session_cookie ($cookie);
107 $u = user_get_object ($s);
108 $g = group_get_object_by_name ($fusionforgeproject) ;
109 $perm =& $g->getPermission($u);
111 $mwname = ucfirst($u->getUnixName ()) ;
112 $mwu = User::newFromName ($mwname);
113 if($mwu->getID() == 0) {
114 $mwu->addToDatabase ();
115 $mwu->setPassword (User::randomPassword());
116 $mwu->setRealName ($u->getRealName ()) ;
118 $mwu->loadFromDatabase ();
120 $user->mId=$mwu->getID();
121 $user->loadFromId() ;
123 $user->loadGroups() ;
124 $current_groups = $user->getGroups() ;
125 if ($perm && is_object($perm) && $perm->isAdmin()) {
126 if (!in_array ('Administrators', $current_groups)) {
127 $user->addGroup ('Administrators') ;
129 if (!in_array ('Members', $current_groups)) {
130 $user->addGroup ('Members') ;
132 if (!in_array ('Users', $current_groups)) {
133 $user->addGroup ('Users') ;
135 } elseif ($perm && is_object($perm) && $perm->isMember()) {
136 if (in_array ('Administrators', $current_groups)) {
137 $user->removeGroup ('Administrators') ;
139 if (!in_array ('Members', $current_groups)) {
140 $user->addGroup ('Members') ;
142 if (!in_array ('Users', $current_groups)) {
143 $user->addGroup ('Users') ;
146 if (in_array ('Administrators', $current_groups)) {
147 $user->removeGroup ('Administrators') ;
149 if (in_array ('Members', $current_groups)) {
150 $user->removeGroup ('Members') ;
152 if (!in_array ('Users', $current_groups)) {
153 $user->addGroup ('Users') ;
157 $user->setCookies ();
158 $user->saveSettings ();
167 if (is_file("/etc/mediawiki-extensions/extensions.php")) {
168 include( "/etc/mediawiki-extensions/extensions.php" );
171 $GLOBALS['wgHooks']['UserLoadFromSession'][]='FusionForgeMWAuth';
173 $wgGroupPermissions['Members']['createaccount'] = true;
174 $wgGroupPermissions['Members']['edit'] = true;
175 $wgGroupPermissions['Members']['createpage'] = true;
176 $wgGroupPermissions['Members']['createtalk'] = true;
178 $wgGroupPermissions['Users']['createaccount'] = false;
179 $wgGroupPermissions['Users']['edit'] = false;
180 $wgGroupPermissions['Users']['createpage'] = false;
181 $wgGroupPermissions['Users']['createtalk'] = false;
183 $wgGroupPermissions['*']['createaccount'] = false;
184 $wgGroupPermissions['*']['edit'] = false;
185 $wgGroupPermissions['*']['createpage'] = false;
186 $wgGroupPermissions['*']['createtalk'] = false;
188 $wgFavicon = '/images/icon.png' ;
189 $wgBreakFrames = false ;
190 ini_set ('memory_limit', '50M') ;
194 // c-file-style: "bsd"