Failed Conditions
Pull Request — newinternal (#527)
by Simon
17:20 queued 07:22
created

config.inc.php (2 issues)

Severity

Upgrade to new PHP Analysis Engine

These results are based on our legacy PHP analysis, consider migrating to our new PHP analysis engine instead. Learn more

1
<?php
2
/******************************************************************************
3
 * Wikipedia Account Creation Assistance tool                                 *
4
 *                                                                            *
5
 * All code in this file is released into the public domain by the ACC        *
6
 * Development Team. Please see team.json for a list of contributors.         *
7
 ******************************************************************************/
8
9
/**************************************************************************
10
 **********                   IMPORTANT NOTICE                    **********
11
 ***************************************************************************
12
 ** YOU MUST OVERRIDE THE CONFIGURATION IN THIS FILE WITH A LOCAL COPY!!! **
13
 ** IT IS VERY IMPORTANT THAT THAT FILE IS CALLED config.local.inc.php    **
14
 ***************************************************************************/
15
16
/*********************************
17
 * Databases and stuff
18
 */
19
20
// Main database location and access details.
21
$toolserver_username = "";
22
$toolserver_password = "";
23
$toolserver_host = "";
24
$toolserver_database = "";
25
26
$toolserver_notification_database = "notifications";
27
$toolserver_notification_dbhost = "dbmaster.srv.stwalkerster.net";
28
$notifications_username = "";
29
$notifications_password = "";
30
31
// The antispoof configuration.
32
$antispoof_equivset = "equivset.php";
33
$antispoof_host = "sql-s1";
34
$antispoof_db = "enwiki_p";
35
$antispoof_table = "spoofuser";
36
37
/**********************************
38
 * File paths etc
39
 */
40
41
$mediawikiWebServiceEndpoint = "https://en.wikipedia.org/w/api.php";
42
$mediawikiScriptPath = "https://en.wikipedia.org/w/index.php";
43
$metaWikimediaWebServiceEndpoint = "https://meta.wikimedia.org/w/api.php";
44
45
// URL of the current copy of the tool.
46
$baseurl = "https://accounts.wmflabs.org";
47
48
// Pathname to the local installation of Peachy.
49
$peachyPath = "";
50
51
// Location outside web directory to place temporary files.
52
$varfilepath = "/projects/acc/";
53
54
// Set up cookies and session information.
55
$cookiepath = '/acc/';
56
$sessionname = 'ACC';
57
58
$xff_trusted_hosts_file = '../TrustedXFF/trusted-hosts.txt';
59
/************************************
60
 * Tool downtime
61
 */
62
63
$dontUseDb = 0; // Disable the tool completely.
64
$dontUseWikiDb = 0; // Disable access to the Wiki database.
65
$dontUseDbReason = ""; // Reason for disabling the tool.
66
$dontUseDbCulprit = ""; // Your name, or the person who broke the tool.
67
68
/**************************************
69
 * ACCBot IRC bot
70
 */
71
72
$ircBotDaemonise = true; // Run the IRC bot as a daemon, detached from the terminal.
73
74
$ircBotNickServPassword = ""; // Password for ACCBot's Nickserv account.
75
$ircBotCommunicationKey = ""; // Key used to communicate with the ACCBot.
76
$ircBotNetworkHost = "chat.freenode.net"; // The host to use for connecting.
77
$ircBotNetworkPort = 6667; // The port on the particular host.
78
$ircBotChannel = "#wikipedia-en-accounts"; // The channel in which the discussions are.
79
$ircBotNickname = "ACCBot"; // The nickname of the ACCBot.
80
$ircBotCommandTrigger = '!'; // The ACCBot's command trigger.
81
82
$ircBotNotificationType = 1; // Helpmebot's notification type ID.
83
$ircBotNotificationsEnabled = 1; // Enable Helpmebot's notifications.
84
// Name of this instance of the tool.
85
// This name would be used by the bot as reference point.	
86
$whichami = 'Live';
87
88
/***************************************
89
 * Email confirmation
90
 */
91
92
// Enable request email confirmation.
93
$enableEmailConfirm = 1;
94
// Number of days that are given for a requestor to confirm their email address.
95
$emailConfirmationExpiryDays = 7;
96
97
/**************************************
98
 * Interface registration, interface users, etc.
99
 */
100
101
// Parameters for performing a newbie check on tool registration.
102
$onRegistrationNewbieCheck = true; // Enable the newbie checking.
103
$onRegistrationNewbieCheckEditCount = 20; // Minimum amount of edits on Wikipedia.
104
$onRegistrationNewbieCheckAge = 5184000; // Account age on Wikipedia in seconds.
105
106
// Force identification to the foundation
107
$forceIdentification = true;
108
109
// Time to cache positive automatic identification results, as a MySQL time interval
110
$identificationCacheExpiry = "1 DAY";
111
112
// minimum password version
113
//   0 = hashed
114
//   1 = hashed, salted
115
$minimumPasswordVersion = 0;
116
117
$communityUsername = "[Community]";
118
119
/***********************************
120
 * Reservations
121
 */
122
123
// Reserve requests to a specific user by default.
124
// Adapted from livehack by st - use the userid, zero for unreserved.
125
$defaultReserver = 0;
126
127
/************************************
128
 * Backup Configuration
129
 */
130
131
$BUbasefile = "backup"; // The basefile's name.
132
$BUdir = "/home/project/a/c/c/acc/backups"; // The directory where backups should be stored.
133
$BUmonthdir = $BUdir . "/monthly"; // The directory where monthly backups should be stored.
134
$BUdumper = "/opt/ts/mysql/5.1/bin/mysqldump --defaults-file=~/.my.cnf p_acc_live"; // Add parameters here if they are needed.
135
$BUgzip = "/usr/bin/gzip"; // Add the gzip parameters here if needed.
136
$BUtar = "/bin/tar -cvf"; // Add the tar parameters here if needed.
137
138
/************************************
139
 * OAuth Configuration
140
 */
141
142
$oauthConsumerToken = "";
143
$oauthSecretToken = "";
144
145
// path to Special:OAuth on target wiki.
146
// don't use pretty urls, see [[bugzilla:57500]]
147
$oauthBaseUrl = "https://en.wikipedia.org/w/index.php?title=Special:OAuth";
148
// use this for requests from the server, if some special url is needed.
149
$oauthBaseUrlInternal = "https://en.wikipedia.org/w/index.php?title=Special:OAuth";
150
151
$oauthMediaWikiCanonicalServer = "http://en.wikipedia.org";
152
153
$useOauthSignup = true;
154
$enforceOAuth = false;
155
156
// Password for the creation bot when this is used in place of OAuth
157
$creationBotUsername = '';
158
$creationBotPassword = '';
159
160
/************************************
161
 * Providers Configuration
162
 */
163
164
// IP GeoLocation
165
// ------------------------
166
// To set this up, change the class to "IpLocationProvider", and put *your* ipinfodb API key in.
167
// You'll need to sign up at IpInfoDb.com to get an API key - it's free.
168
$locationProviderClass = "FakeLocationProvider";
169
$locationProviderApiKey = "super secret"; // ipinfodb api key
170
171
// RDNS Provider ( RDnsLookupProvider / CachedRDnsLookupProvider / FakeRDnsLookupProvider)
172
$rdnsProviderClass = "CachedRDnsLookupProvider";
173
174
$antispoofProviderClass = "FakeAntiSpoofProvider";
175
$xffTrustProviderClass = "XffTrustProvider";
176
177
/***********************************
178
 * Data clear script
179
 */
180
181
$dataclear_interval = '15 DAY';
182
183
/***********************************
184
 * Other stuff that doesn't fit in.
185
 */
186
187
$enableSQLError = 0; // Enable the display of SQL errors.
188
$enableTitleblacklist = 0; // Enable Title Blacklist checks.
189
190
// Enable the use of PATH_INFO for request parameters to prettify URLs.
191
$usePathInfo = true;
192
193
// user agent of the tool.
194
$toolUserAgent = "Wikipedia-ACC Tool/0.1 (+https://accounts.wmflabs.org/internal.php/team)";
195
196
// list of squid proxies requests go through.
197
$squidIpList = array();
198
199
$apiDeployPassword = "super secret update password";
200
201
// request states
202
$availableRequestStates = array(
203
    'Open'          => array(
204
        'defertolog' => 'users', // don't change or you'll break old logs
205
        'deferto'    => 'users',
206
        'header'     => 'Open requests',
207
        'api'        => "open",
208
    ),
209
    'Flagged users' => array(
210
        'defertolog' => 'flagged users', // don't change or you'll break old logs
211
        'deferto'    => 'flagged users',
212
        'header'     => 'Flagged user needed',
213
        'api'        => "admin",
214
    ),
215
    'Checkuser'     => array(
216
        'defertolog' => 'checkusers', // don't change or you'll break old logs
217
        'deferto'    => 'checkusers',
218
        'header'     => 'Checkuser needed',
219
        'api'        => "checkuser",
220
    ),
221
);
222
223
$defaultRequestStateKey = 'Open';
224
225
$providerCacheExpiry = $dataclear_interval;
226
227
// miser mode
228
$requestLimitShowOnly = 25;
229
230
// Enables the Smarty debugging console. This should only be used for development and even then
231
// be left false when you don't need it, since this will open a popup window on every page load.
232
$smartydebug = false;
233
234
// ID of the Email template used for the main "Created!" close reason.
235
$createdid = 1;
236
237
// HSTS expiry - use false to disable header.
238
$strictTransportSecurityExpiry = false;
239
240
// Must be disabled in production.
241
$enableErrorTrace = false;
242
243
// Dangerous.
244
// Don't set this.
245
// Definitely don't set this if there's sensitive data stored here you care about such as OAuth credentials.
246
$curlDisableSSLVerifyPeer = false;
247
248
// Change this to be outside the web directory.
249
$curlCookieJar = __DIR__ . '/../cookies.txt';
250
251
/**************************************************************************
252
 **********                   IMPORTANT NOTICE                    **********
253
 ***************************************************************************
254
 **     DON'T ADD ANY NEW CONFIGURATION OPTIONS BELOW THIS LINE!!!        **
255
 **     THEY WILL NOT BE CHANGABLE BY THE LOCAL CONFIGURATION FILE.       **
256
 ***************************************************************************/
257
258
// Retriving the local configuration file.
259
require_once('config.local.inc.php');
260
261
$cDatabaseConfig = array(
262
    "acc"           => array(
263
        "dsrcname" => "mysql:host=" . $toolserver_host . ";dbname=" . $toolserver_database,
264
        "username" => $toolserver_username,
265
        "password" => $toolserver_password,
266
    ),
267
    "wikipedia"     => array(
268
        "dsrcname" => "mysql:host=" . $antispoof_host . ";dbname=" . $antispoof_db,
269
        "username" => $toolserver_username,
270
        "password" => $toolserver_password,
271
    ),
272
    "notifications" => array(
273
        "dsrcname" => "mysql:host=" . $toolserver_notification_dbhost . ";dbname=" . $toolserver_notification_database,
274
        "username" => $notifications_username,
275
        "password" => $notifications_password,
276
    ),
277
);
278
279
// //Keep the included files from being executed.
280
define("ACC", 1);
281
282
// Sets the values of the cookie configuration options.
283
ini_set('session.cookie_path', $cookiepath);
284
ini_set('session.name', $sessionname);
285
ini_set('user_agent', $toolUserAgent);
286
287
foreach (array(
288
    "mbstring", // unicode and stuff
289
    "pdo",
290
    "pdo_mysql", // new database module
291
    "session",
292
    "date",
293
    "pcre", // core stuff
294
    "curl", // mediawiki api access etc
295
    "openssl", // token generation
296
) as $x) {
297
    if (!extension_loaded($x)) {
298
        die("extension $x is required.");
299
    }
300
}
301
302
// Set up the AutoLoader
303
require_once(__DIR__ . "/includes/AutoLoader.php");
304
spl_autoload_register('Waca\\AutoLoader::load');
305
require_once(__DIR__ . '/vendor/autoload.php');
306
307
// Extra includes which are just plain awkward wherever they are.
308
require_once(__DIR__ . '/lib/mediawiki-extensions-OAuth/lib/OAuth.php');
309
require_once(__DIR__ . '/lib/mediawiki-extensions-OAuth/lib/JWT.php');
310
311
// Crap that's needed for libraries. >:(
312
/**
313
 * Don't use me. I'm only here because the MediaWiki OAuth library we're using requires it.
314
 *
315
 * @param $section
316
 * @param $message
317
 */
318
function wfDebugLog($section, $message)
0 ignored issues
show
The parameter $section is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
The parameter $message is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
319
{
320
}
321
322
// Initialise the site configuration object
323
$siteConfiguration = new \Waca\SiteConfiguration();
324
325
$siteConfiguration->setBaseUrl($baseurl)
326
    ->setFilePath(__DIR__)
327
    ->setDebuggingTraceEnabled($enableErrorTrace)
328
    ->setForceIdentification($forceIdentification)
329
    ->setIdentificationCacheExpiry($identificationCacheExpiry)
330
    ->setMediawikiScriptPath($mediawikiScriptPath)
331
    ->setMediawikiWebServiceEndpoint($mediawikiWebServiceEndpoint)
332
    ->setMetaWikimediaWebServiceEndpoint($metaWikimediaWebServiceEndpoint)
333
    ->setEnforceOAuth($enforceOAuth)
334
    ->setEmailConfirmationEnabled($enableEmailConfirm == 1)
335
    ->setEmailConfirmationExpiryDays($emailConfirmationExpiryDays)
336
    ->setMiserModeLimit($requestLimitShowOnly)
337
    ->setRequestStates($availableRequestStates)
338
    ->setSquidList($squidIpList)
339
    ->setDefaultCreatedTemplateId($createdid)
340
    ->setDefaultRequestStateKey($defaultRequestStateKey)
341
    ->setUseStrictTransportSecurity($strictTransportSecurityExpiry)
342
    ->setUserAgent($toolUserAgent)
343
    ->setCurlDisableVerifyPeer($curlDisableSSLVerifyPeer)
344
    ->setUseOAuthSignup($useOauthSignup)
345
    ->setOAuthBaseUrl($oauthBaseUrl)
346
    ->setOAuthConsumerToken($oauthConsumerToken)
347
    ->setOAuthConsumerSecret($oauthSecretToken)
348
    ->setOauthMediaWikiCanonicalServer($oauthMediaWikiCanonicalServer)
349
    ->setDataClearInterval($dataclear_interval)
350
    ->setXffTrustedHostsFile($xff_trusted_hosts_file)
351
    ->setIrcNotificationsEnabled($ircBotNotificationsEnabled == 1)
352
    ->setIrcNotificationType($ircBotNotificationType)
353
    ->setIrcNotificationsInstance($whichami)
354
    ->setTitleBlacklistEnabled($enableTitleblacklist == 1)
355
    ->setTorExitPaths(array_merge(gethostbynamel('en.wikipedia.org'), gethostbynamel('accounts.wmflabs.org')))
356
    ->setCreationBotUsername($creationBotUsername)
357
    ->setCreationBotPassword($creationBotPassword)
358
    ->setCurlCookieJar($curlCookieJar);
359