3 $sys_etc_path = "/etc/gforge";
4 $sys_opt_path = "/usr/share/gforge";
5 $sys_var_path = "/var/lib/gforge";
7 define('MW_INSTALL_PATH', "$sys_opt_path/www/plugins/mediawiki/wikisrc");
9 $fusionforgeproject = 'siteadmin' ;
10 $exppath = explode ('/', $_SERVER['PHP_SELF']) ;
12 # determine $fusionforgeproject
13 while (count ($exppath) >= 4) {
14 if (($exppath[0] == 'plugins') && ($exppath[1] == 'mediawiki') && ($exppath[2] == 'wiki') && ($exppath[4] == 'index.php')) {
15 $fusionforgeproject = $exppath[3] ;
18 array_shift ($exppath) ;
22 $wikidata = $sys_var_path . "plugins/mediawiki/wikidata/$fusionforgeproject" ;
24 if( defined( 'MW_INSTALL_PATH' ) ) {
25 $IP = MW_INSTALL_PATH;
27 $IP = dirname( __FILE__ );
30 $path = array( $IP, "$IP/includes", "$IP/languages" );
31 set_include_path( implode( PATH_SEPARATOR, $path ) . PATH_SEPARATOR . get_include_path() );
33 require_once( "$IP/includes/DefaultSettings.php" );
35 if ( isset( $_SERVER ) && array_key_exists( 'REQUEST_METHOD', $_SERVER ) ) {
36 require_once ("$sys_etc_path/local.inc") ;
37 require_once ("$sys_opt_path/www/env.inc.php") ;
39 require_once ("$sys_etc_path/database.inc") ;
43 if ( $wgCommandLineMode ) {
44 if ( isset( $_SERVER ) && array_key_exists( 'REQUEST_METHOD', $_SERVER ) ) {
45 die( "This script must be run from the command line\n" );
48 $wgSitename = forge_get_config ('forge_name')." Wiki";
49 $wgScriptPath = "/plugins/mediawiki/wiki/$fusionforgeproject" ;
51 $wgEmergencyContact = "webmaster@fusionforge.org";
52 $wgPasswordSender = "webmaster@fusionforge.org";
54 $wgDBtype = "postgres";
55 $wgDBserver = $sys_dbhost ;
56 $wgDBname = $sys_dbname;
57 $wgDBuser = $sys_dbuser ;
58 $wgDBpassword = $sys_dbpasswd ;
59 $wgDBadminuser = $sys_dbuser ;
60 $wgDBadminpassword = $sys_dbpasswd ;
61 $wgDBport = $sys_dbport ;
62 $wgDBmwschema = str_replace ('-', '_', "plugin_mediawiki_$fusionforgeproject") ;
63 $wgDBts2schema = str_replace ('-', '_', "plugin_mediawiki_$fusionforgeproject") ;
64 $wgMainCacheType = CACHE_NONE;
65 $wgMemCachedServers = array();
67 $wgEnableUploads = false;
68 $wgUploadDirectory = "$wikidata/images";
69 $wgUseImageMagick = true;
70 $wgImageMagickConvertCommand = "/usr/bin/convert";
71 $wgLocalInterwiki = $wgSitename;
72 $wgShowExceptionDetails = true ;
74 $wgLanguageCode = "en";
75 $wgDefaultSkin = 'fusionforge';
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 ("$sys_opt_path/www/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 ('sysop', $current_groups)) {
127 $user->addGroup ('sysop') ;
129 if (!in_array ('Members', $current_groups)) {
130 $user->addGroup ('Members') ;
132 if (!in_array ('ForgeUsers', $current_groups)) {
133 $user->addGroup ('ForgeUsers') ;
135 } elseif ($perm && is_object($perm) && $perm->isMember()) {
136 if (in_array ('sysop', $current_groups)) {
137 $user->removeGroup ('sysop') ;
139 if (!in_array ('Members', $current_groups)) {
140 $user->addGroup ('Members') ;
142 if (!in_array ('ForgeUsers', $current_groups)) {
143 $user->addGroup ('ForgeUsers') ;
146 if (in_array ('sysop', $current_groups)) {
147 $user->removeGroup ('sysop') ;
149 if (in_array ('Members', $current_groups)) {
150 $user->removeGroup ('Members') ;
152 if (!in_array ('ForgeUsers', $current_groups)) {
153 $user->addGroup ('ForgeUsers') ;
157 $user->setCookies ();
158 $user->saveSettings ();
168 if (is_file("/etc/mediawiki-extensions/extensions.php")) {
169 include( "/etc/mediawiki-extensions/extensions.php" );
171 //function NoLogoutLinkOnMainPage(&$personal_urls){unset($personal_urls['logout']);return true;}
172 //$wgHooks['PersonalUrls']['logout']='NoLogoutLinkOnMainPage';
173 //function NoLoginLinkOnMainPage(&$personal_urls){unset($personal_urls['anonlogin']);return true;}
174 //$wgHooks['PersonalUrls']['anonlogin']='NoLoginLinkOnMainPage';
175 function NoLinkOnMainPage(&$personal_urls){
176 unset($personal_urls['anonlogin']);
177 unset($personal_urls['anontalk']);
178 unset($personal_urls['logout']);
179 unset($personal_urls['login']);
182 $wgHooks['PersonalUrls'][]='NoLinkOnMainPage';
184 $GLOBALS['wgHooks']['UserLoadFromSession'][]='FusionForgeMWAuth';
186 $wgGroupPermissions['Members']['createaccount'] = true;
187 $wgGroupPermissions['Members']['edit'] = true;
188 $wgGroupPermissions['Members']['createpage'] = true;
189 $wgGroupPermissions['Members']['createtalk'] = true;
191 $wgGroupPermissions['ForgeUsers']['createaccount'] = false;
192 $wgGroupPermissions['ForgeUsers']['edit'] = false;
193 $wgGroupPermissions['ForgeUsers']['createpage'] = false;
194 $wgGroupPermissions['ForgeUsers']['createtalk'] = false;
196 $wgGroupPermissions['user']['createaccount'] = false;
197 $wgGroupPermissions['user']['edit'] = false;
198 $wgGroupPermissions['user']['createpage'] = false;
199 $wgGroupPermissions['user']['createtalk'] = false;
201 $wgGroupPermissions['*']['createaccount'] = false;
202 $wgGroupPermissions['*']['edit'] = false;
203 $wgGroupPermissions['*']['createpage'] = false;
204 $wgGroupPermissions['*']['createtalk'] = false;
206 $wgLogo = "/themes/$sys_theme/images/wgLogo.png";
208 if (file_exists ("$wikidata/LocalSettings.php")) {
209 require ("$wikidata/LocalSettings.php") ;
211 exit_error (_('Wiki not created yet, please wait for a few minutes.')) ;
214 $wgFavicon = '/images/icon.png' ;
215 $wgBreakFrames = false ;
216 ini_set ('memory_limit', '50M') ;
220 // c-file-style: "bsd"