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( defined( 'MW_INSTALL_PATH' ) ) {
18 $IP = MW_INSTALL_PATH;
20 $IP = dirname( __FILE__ );
23 $path = array( $IP, "$IP/includes", "$IP/languages" );
24 set_include_path( implode( PATH_SEPARATOR, $path ) . PATH_SEPARATOR . get_include_path() );
26 require_once( "$IP/includes/DefaultSettings.php" );
28 if ( isset( $_SERVER ) && array_key_exists( 'REQUEST_METHOD', $_SERVER ) ) {
29 require_once ('/etc/gforge/local.inc') ;
30 require_once ('/usr/share/gforge/www/env.inc.php') ;
32 require_once ('/etc/gforge/database.inc') ;
36 if ( $wgCommandLineMode ) {
37 if ( isset( $_SERVER ) && array_key_exists( 'REQUEST_METHOD', $_SERVER ) ) {
38 die( "This script must be run from the command line\n" );
41 $wgSitename = "$sys_name Wiki";
42 $wgScriptPath = "/plugins/mediawiki/wiki/$fusionforgeproject" ;
44 $wgEmergencyContact = "webmaster@fusionforge.org";
45 $wgPasswordSender = "webmaster@fusionforge.org";
47 $wgDBtype = "postgres";
48 $wgDBserver = $sys_dbhost ;
49 $wgDBname = $sys_dbname;
50 $wgDBuser = $sys_dbuser ;
51 $wgDBpassword = $sys_dbpasswd ;
52 $wgDBadminuser = $sys_dbuser ;
53 $wgDBadminpassword = $sys_dbpasswd ;
54 $wgDBport = $sys_dbport ;
55 $wgDBmwschema = str_replace ('-', '_', "plugin_mediawiki_$fusionforgeproject") ;
56 $wgDBts2schema = str_replace ('-', '_', "plugin_mediawiki_$fusionforgeproject") ;
57 $wgMainCacheType = CACHE_NONE;
58 $wgMemCachedServers = array();
60 $wgEnableUploads = false;
61 $wgUploadDirectory = "$wikidata/images";
62 $wgUseImageMagick = true;
63 $wgImageMagickConvertCommand = "/usr/bin/convert";
64 $wgLocalInterwiki = $wgSitename;
65 $wgShowExceptionDetails = true ;
67 $wgLanguageCode = "en";
68 $wgDefaultSkin = 'fusionforge';
69 $wgStyleDirectory = '/usr/share/mediawiki/skins' ;
71 require ('/etc/gforge/local.inc') ;
72 require ('/usr/share/gforge/www/env.inc.php') ;
73 $GLOBALS['sys_dbhost'] = $sys_dbhost ;
74 $GLOBALS['sys_dbport'] = $sys_dbport ;
75 $GLOBALS['sys_dbname'] = $sys_dbname ;
76 $GLOBALS['sys_dbuser'] = $sys_dbuser ;
77 $GLOBALS['sys_dbpasswd'] = $sys_dbpasswd ;
78 $GLOBALS['sys_plugins_path'] = $sys_plugins_path ;
79 $GLOBALS['sys_urlprefix'] = $sys_urlprefix ;
80 $GLOBALS['sys_use_ssl'] = $sys_use_ssl ;
81 $GLOBALS['sys_default_domain'] = $sys_default_domain ;
82 $GLOBALS['sys_custom_path'] = $sys_custom_path ;
83 $GLOBALS['gfwww'] = $gfwww ;
84 $GLOBALS['gfplugins'] = $gfplugins ;
85 $GLOBALS['sys_lang'] = $sys_lang ;
86 require ($gfwww.'include/pre.php') ;
87 $GLOBALS['sys_urlroot'] = $sys_urlroot;
88 $GLOBALS['sys_session_key'] = $sys_session_key;
89 $GLOBALS['sys_session_expire'] = $sys_session_expire;
90 $GLOBALS['REMOTE_ADDR'] = getStringFromServer('REMOTE_ADDR') ;
91 $GLOBALS['HTTP_USER_AGENT'] = getStringFromServer('HTTP_USER_AGENT') ;
93 function FusionForgeMWAuth( &$user, &$result ) {
94 global $fusionforgeproject ;
96 $cookie = getStringFromCookie ('session_ser') ;
98 $s = session_check_session_cookie ($cookie);
103 $u = user_get_object ($s);
104 $g = group_get_object_by_name ($fusionforgeproject) ;
105 $perm =& $g->getPermission($u);
107 $mwname = ucfirst($u->getUnixName ()) ;
108 $mwu = User::newFromName ($mwname);
109 if($mwu->getID() == 0) {
110 $mwu->addToDatabase ();
111 $mwu->setPassword (User::randomPassword());
112 $mwu->setRealName ($u->getRealName ()) ;
114 $mwu->loadFromDatabase ();
116 $user->mId=$mwu->getID();
117 $user->loadFromId() ;
119 $user->loadGroups() ;
120 $current_groups = $user->getGroups() ;
121 if ($perm && is_object($perm) && $perm->isAdmin()) {
122 if (!in_array ('Administrators', $current_groups)) {
123 $user->addGroup ('Administrators') ;
125 if (!in_array ('Members', $current_groups)) {
126 $user->addGroup ('Members') ;
128 if (!in_array ('ForgeUsers', $current_groups)) {
129 $user->addGroup ('ForgeUsers') ;
131 } elseif ($perm && is_object($perm) && $perm->isMember()) {
132 if (in_array ('Administrators', $current_groups)) {
133 $user->removeGroup ('Administrators') ;
135 if (!in_array ('Members', $current_groups)) {
136 $user->addGroup ('Members') ;
138 if (!in_array ('ForgeUsers', $current_groups)) {
139 $user->addGroup ('ForgeUsers') ;
142 if (in_array ('Administrators', $current_groups)) {
143 $user->removeGroup ('Administrators') ;
145 if (in_array ('Members', $current_groups)) {
146 $user->removeGroup ('Members') ;
148 if (!in_array ('ForgeUsers', $current_groups)) {
149 $user->addGroup ('ForgeUsers') ;
153 $user->setCookies ();
154 $user->saveSettings ();
164 if (is_file("/etc/mediawiki-extensions/extensions.php")) {
165 include( "/etc/mediawiki-extensions/extensions.php" );
167 //function NoLogoutLinkOnMainPage(&$personal_urls){unset($personal_urls['logout']);return true;}
168 //$wgHooks['PersonalUrls']['logout']='NoLogoutLinkOnMainPage';
169 //function NoLoginLinkOnMainPage(&$personal_urls){unset($personal_urls['anonlogin']);return true;}
170 //$wgHooks['PersonalUrls']['anonlogin']='NoLoginLinkOnMainPage';
171 function NoLinkOnMainPage(&$personal_urls){
172 unset($personal_urls['anonlogin']);
173 unset($personal_urls['anontalk']);
174 unset($personal_urls['logout']);
175 unset($personal_urls['login']);
178 $wgHooks['PersonalUrls'][]='NoLinkOnMainPage';
180 $GLOBALS['wgHooks']['UserLoadFromSession'][]='FusionForgeMWAuth';
182 $wgGroupPermissions['Members']['createaccount'] = true;
183 $wgGroupPermissions['Members']['edit'] = true;
184 $wgGroupPermissions['Members']['createpage'] = true;
185 $wgGroupPermissions['Members']['createtalk'] = true;
187 $wgGroupPermissions['ForgeUsers']['createaccount'] = false;
188 $wgGroupPermissions['ForgeUsers']['edit'] = false;
189 $wgGroupPermissions['ForgeUsers']['createpage'] = false;
190 $wgGroupPermissions['ForgeUsers']['createtalk'] = false;
192 $wgGroupPermissions['user']['createaccount'] = false;
193 $wgGroupPermissions['user']['edit'] = false;
194 $wgGroupPermissions['user']['createpage'] = false;
195 $wgGroupPermissions['user']['createtalk'] = false;
197 $wgGroupPermissions['*']['createaccount'] = false;
198 $wgGroupPermissions['*']['edit'] = false;
199 $wgGroupPermissions['*']['createpage'] = false;
200 $wgGroupPermissions['*']['createtalk'] = false;
202 if (file_exists ("$wikidata/LocalSettings.php")) {
203 require ("$wikidata/LocalSettings.php") ;
207 $wgFavicon = '/images/icon.png' ;
208 $wgBreakFrames = false ;
209 ini_set ('memory_limit', '50M') ;
213 // c-file-style: "bsd"