Skip to content

Instantly share code, notes, and snippets.

@freephile
Last active October 17, 2017 02:18
Show Gist options
  • Save freephile/c8648b24f0c4786faf067a3a16af2db0 to your computer and use it in GitHub Desktop.
Save freephile/c8648b24f0c4786faf067a3a16af2db0 to your computer and use it in GitHub Desktop.
CentralAuth config
<?php
# CentralAuth
wfLoadExtension( 'CentralAuth' );
if ( $espEnv == 'stage' ) {
$espConfSuffixes = array( 'wiki' );
$espCentralAuthAutoLoginWikis = array(
'devlol.esportspedia.com' => 'lol_wiki',
'devcod.esportspedia.com' => 'cod_wiki',
'devhalo.esportspedia.com' => 'halo_wiki',
'devsmite.esportspedia.com' => 'smite_wiki',
);
$espCentralAuthLoginWiki = 'login_wiki';
$espLocalDatabases = array( 'lol_wiki', 'cod_wiki', 'halo_wiki', 'smite_wiki', 'login_wiki' );
$espServer = array(
'lol_wiki' => 'http://devlol.esportspedia.com',
'cod_wiki' => 'http://devcod.esportspedia.com',
'halo_wiki' => 'http://devhalo.esportspedia.com',
'smite_wiki' => 'http://devsmite.esportspedia.com',
'login_wiki' => 'http://devlogin.esportspedia.com'
);
$espCanonicalServer = array(
'lol_wiki' => 'http://devlol.esportspedia.com',
'cod_wiki' => 'http://devcod.esportspedia.com',
'halo_wiki' => 'http://devhalo.esportspedia.com',
'smite_wiki' => 'http://devsmite.esportspedia.com',
'login_wiki' => 'http://devlogin.esportspedia.com'
);
$espScriptPath = array(
'lol_wiki' => '/w',
'cod_wiki' => '/w',
'halo_wiki' => '/w',
'smite_wiki' => '/w',
'login_wiki' => '/w'
);
$espArticlePath = array(
'lol_wiki' => '/wiki/$1',
'cod_wiki' => '/wiki/$1',
'halo_wiki' => '/wiki/$1',
'smite_wiki' => '/wiki/$1',
'login_wiki' => '/wiki/$1'
);
} else if ( $espEnv == 'prod' ) {
$espConfSuffixes = array( 'wiki' );
$espCentralAuthAutoLoginWikis = array(
'lol.esportspedia.com' => 'lol_wiki',
'cod.esportspedia.com' => 'cod_wiki',
'halo.esportspedia.com' => 'halo_wiki',
'smite.esportspedia.com' => 'smite_wiki',
);
$espCentralAuthLoginWiki = 'login_wiki';
$espLocalDatabases = array( 'lol_wiki', 'cod_wiki', 'halo_wiki', 'smite_wiki', 'login_wiki' );
$espServer = array(
'lol_wiki' => 'http://lol.esportspedia.com',
'cod_wiki' => 'http://cod.esportspedia.com',
'halo_wiki' => 'http://halo.esportspedia.com',
'smite_wiki' => 'http://smite.esportspedia.com',
'login_wiki' => 'http://login.esportspedia.com'
);
$espCanonicalServer = array(
'lol_wiki' => 'http://lol.esportspedia.com',
'cod_wiki' => 'http://cod.esportspedia.com',
'halo_wiki' => 'http://halo.esportspedia.com',
'smite_wiki' => 'http://smite.esportspedia.com',
'login_wiki' => 'http://login.esportspedia.com'
);
$espScriptPath = array(
'lol_wiki' => '/w',
'cod_wiki' => '/w',
'halo_wiki' => '/w',
'smite_wiki' => '/w',
'login_wiki' => '/w'
);
$espArticlePath = array(
'lol_wiki' => '/wiki/$1',
'cod_wiki' => '/wiki/$1',
'halo_wiki' => '/wiki/$1',
'smite_wiki' => '/wiki/$1',
'login_wiki' => '/wiki/$1'
);
}
# General CentralAuth configuration
$wgCentralAuthCookies = true;
$wgCentralAuthAutoNew = true;
$wgCentralAuthDatabase = $espCentralAuthDatabase; // default is 'centralauth'
$wgCentralAuthAutoMigrate = true;
$wgCentralAuthAutoMigrateNonGlobalAccounts = true;
#$wgCentralAuthCookieDomain = '.esportspedia.com';
$wgCentralAuthAutoLoginWikis = $espCentralAuthAutoLoginWikis;
# Don't autologin to this wiki
if( ( $key = array_search( $wgDBname, $wgCentralAuthAutoLoginWikis ) ) !== false ) {
unset( $wgCentralAuthAutoLoginWikis[$key] );
}
$wgCentralAuthLoginWiki = $espCentralAuthLoginWiki;
$wgCentralAuthDryRun = false;
$wgConf = new SiteConfiguration;
# Read wiki lists
$wgLocalDatabases = $espLocalDatabases; //all wiki databases, as an array.
$wgConf->wikis = $wgLocalDatabases;
$wgConf->suffixes = $espConfSuffixes; //all databases have same suffix
$wgLocalVirtualHosts = $espLocalVirtualHosts; //your database server. could be example.com or IP address. no http://
$wgConf->siteParamsCallback = 'efGetSiteParams';
$wgConf->extractAllGlobals( $wgDBname );
$wgConf->settings = array(
'wgServer' => $espServer,
'wgCanonicalServer' => $espCanonicalServer,
'wgScriptPath' => $espScriptPath,
'wgArticlePath' => $espArticlePath,
'wgLanguageCode' => array( //dont change, if all wikis are english *BE careful not to alter this line if you use RegEx to replace COD with your wiki name!
'default' => '$lang',
),
'wgLocalInterwiki' => array(
'default' => '$lang',
)
);
function efGetSiteParams( $conf, $wiki ) {
$site = null;
$lang = null;
foreach( $conf->suffixes as $suffix ) {
if ( substr( $wiki, -strlen( $suffix ) ) == $suffix ) {
$site = $suffix;
$lang = substr( $wiki, 0, -strlen( $suffix ) );
break;
}
}
return array(
'suffix' => $site,
'lang' => $lang,
'params' => array(
'lang' => $lang,
'site' => $site,
'wiki' => $wiki,
),
'tags' => array(),
);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment