SiteConfiguration   F
last analyzed

Complexity

Total Complexity 116

Size/Duplication

Total Lines 1139
Duplicated Lines 0 %

Test Coverage

Coverage 57.25%

Importance

Changes 5
Bugs 0 Features 1
Metric Value
wmc 116
eloc 238
c 5
b 0
f 1
dl 0
loc 1139
ccs 146
cts 255
cp 0.5725
rs 2

116 Methods

Rating   Name   Duplication   Size   Complexity  
A getMetaWikimediaWebServiceEndpoint() 0 3 1
A getMiserModeLimit() 0 3 1
A getOauthLegacyConsumerTokens() 0 3 1
A setEnforceOAuth() 0 5 1
A setDataClearEmail() 0 5 1
A setOAuthConsumerSecret() 0 5 1
A getCurlCookieJar() 0 3 1
A setSquidList() 0 5 1
A getYubicoApiKey() 0 3 1
A getTorExitPaths() 0 3 1
A getIrcNotificationsEnabled() 0 3 1
A setOauthIdentityGraceTime() 0 5 1
A setUseOAuthSignup() 0 5 1
A getCurlDisableVerifyPeer() 0 3 1
A getEmailSender() 0 3 1
A setEmailConfirmationExpiryDays() 0 5 1
A setOauthLegacyConsumerTokens() 0 5 1
A getOffline() 0 3 1
A getYubicoApiId() 0 3 1
A getDebuggingTraceEnabled() 0 3 1
A getUserAgent() 0 3 1
A setDataClearIp() 0 5 1
A getAmqpConfiguration() 0 3 1
A getTitleBlacklistEnabled() 0 3 1
A getIdentificationCacheExpiry() 0 3 1
A setAcceptClientHints() 0 5 1
A getIdentificationNoticeboardPage() 0 3 1
A setCreationBotUsername() 0 5 1
A setUseStrictTransportSecurity() 0 5 1
A getSquidList() 0 3 1
A getJobQueueBatchSize() 0 3 1
A getUseStrictTransportSecurity() 0 3 1
A setXffTrustedHostsFile() 0 5 1
A getCreationBotUsername() 0 3 1
A setCookiePath() 0 5 1
A getIdentificationNoticeboardWebserviceEndpoint() 0 3 1
A getEnforceOAuth() 0 3 1
A getFilePath() 0 3 1
A setIdentificationNoticeboardPage() 0 5 1
A setEmailSender() 0 5 1
A getEmailConfirmationEnabled() 0 3 1
A getDatabaseConfig() 0 3 1
A setIdentificationCacheExpiry() 0 5 1
A setIdentificationNoticeboardWebserviceEndpoint() 0 5 1
A setCookieSessionName() 0 5 1
A setSchemaVersion() 0 5 1
A isRegistrationAllowed() 0 3 1
A setGlobalDenyRole() 0 5 1
A setResourceCacheEpoch() 0 5 1
A getXffTrustedHostsFile() 0 3 1
A getDataClearEmail() 0 3 1
A setCurlCookieJar() 0 5 1
A getCreationBotPassword() 0 3 1
A setIrcNotificationsEnabled() 0 5 1
A getErrorLog() 0 3 1
A setTotpEncryptionKey() 0 5 1
A getIrcNotificationsInstance() 0 3 1
A setYubicoApiKey() 0 5 1
A setDatabaseConfig() 0 5 1
A getCommonEmailDomains() 0 3 1
A getDataClearInterval() 0 3 1
A getCookieSessionName() 0 3 1
A setCrossOriginResourceSharingHosts() 0 5 1
A setCspReportUri() 0 5 1
A getEmailConfirmationExpiryDays() 0 3 1
A setDebuggingCssBreakpointsEnabled() 0 5 1
A getUseOAuthSignup() 0 3 1
A setCreateAccountLink() 0 5 1
A getBanMaxIpBlockRange() 0 3 1
A setBaseUrl() 0 5 1
A getCreateAccountLink() 0 3 1
A setDebuggingTraceEnabled() 0 5 1
A setRegistrationAllowed() 0 5 1
A setTitleBlacklistEnabled() 0 5 1
A getDebuggingCssBreakpointsEnabled() 0 3 1
A setErrorLog() 0 5 1
A setOffline() 0 5 1
A setUserAgent() 0 5 1
A getGlobalDenyRole() 0 3 1
A getTotpEncryptionKey() 0 3 1
A getOauthMediaWikiCanonicalServer() 0 3 1
A getBanMaxIpRange() 0 3 1
A getForceIdentification() 0 3 1
A setOauthMediaWikiCanonicalServer() 0 5 1
A setIrcNotificationsInstance() 0 5 1
A getPrivacyStatementPath() 0 3 1
A setCommonEmailDomains() 0 5 1
A getOAuthConsumerSecret() 0 3 1
A setDataClearInterval() 0 5 1
A setOAuthConsumerToken() 0 5 1
A setBanMaxIpRange() 0 5 1
A setTorExitPaths() 0 5 1
A setFilePath() 0 5 1
A setJobQueueBatchSize() 0 5 1
A getDataClearIp() 0 3 1
A getCrossOriginResourceSharingHosts() 0 3 1
A getBaseUrl() 0 3 1
A getLocationProviderApiKey() 0 3 1
A setYubicoApiId() 0 5 1
A setCurlDisableVerifyPeer() 0 5 1
A getCspReportUri() 0 3 1
A setMetaWikimediaWebServiceEndpoint() 0 5 1
A setPrivacyStatementPath() 0 5 1
A getResourceCacheEpoch() 0 3 1
A getAcceptClientHints() 0 3 1
A setAmqpConfiguration() 0 5 1
A getOAuthConsumerToken() 0 3 1
A setBanMaxIpBlockRange() 0 5 1
A setEmailConfirmationEnabled() 0 5 1
A getOauthIdentityGraceTime() 0 3 1
A setForceIdentification() 0 5 1
A setLocationProviderApiKey() 0 5 1
A getSchemaVersion() 0 3 1
A getCookiePath() 0 3 1
A setMiserModeLimit() 0 5 1
A setCreationBotPassword() 0 5 1

How to fix   Complexity   

Complex Class

Complex classes like SiteConfiguration often do a lot of different things. To break such a class down, we need to identify a cohesive component within that class. A common approach to find such a component is to look for fields/methods that share the same prefixes, or suffixes.

Once you have determined the fields that belong together, you can apply the Extract Class refactoring. If the component makes sense as a sub-class, Extract Subclass is also a candidate, and is often faster.

While breaking up the class, it is a good idea to analyze how other classes use SiteConfiguration, and based on these observations, apply Extract Interface, too.

1
<?php
2
/******************************************************************************
3
 * Wikipedia Account Creation Assistance tool                                 *
4
 * ACC Development Team. Please see team.json for a list of contributors.     *
5
 *                                                                            *
6
 * This is free and unencumbered software released into the public domain.    *
7
 * Please see LICENSE.md for the full licencing statement.                    *
8
 ******************************************************************************/
9
10
namespace Waca;
11
12
/**
13
 * Class SiteConfiguration
14
 *
15
 * IMPORTANT: This class must never throw an exception or trigger an error. It's used in the error handler.
16
 *
17
 * @package Waca
18
 */
19
class SiteConfiguration
20
{
21
    private $baseUrl = 'https://accounts.wmflabs.org';
22
    private $filePath = __DIR__ . '/..';
23
    private $schemaVersion = 51;
24
    private $debuggingTraceEnabled = false;
25
    private $debuggingCssBreakpointsEnabled = false;
26
    private $dataClearIp = '127.0.0.1';
27
    private $dataClearEmail = '[email protected]';
28
    private $dataClearInterval = '15 DAY';
29
    private $forceIdentification = true;
30
    private $identificationCacheExpiry = '1 DAY';
31
    private $metaWikimediaWebServiceEndpoint = 'https://meta.wikimedia.org/w/api.php';
32
    private $enforceOAuth = false;
33
    private $emailConfirmationEnabled = true;
34
    private $emailConfirmationExpiryDays = 7;
35
    private $miserModeLimit = 25;
36
    private $squidList = array();
37
    private $useStrictTransportSecurity = false;
38
    private $userAgent = 'Wikipedia-ACC Tool/0.1 (+https://accounts.wmflabs.org/internal.php/team)';
39
    private $curlDisableVerifyPeer = false;
40
    private $useOAuthSignup = true;
41
    private $oauthConsumerToken;
42
    /** @var array */
43
    private $oauthLegacyConsumerTokens;
44
    private $oauthConsumerSecret;
45
    private $oauthIdentityGraceTime = '24 hours';
46
    private $oauthMediaWikiCanonicalServer = 'https://en.wikipedia.org';
47
    private $xffTrustedHostsFile = '../TrustedXFF/trusted-hosts.txt';
48
    private $crossOriginResourceSharingHosts = array(
49
        "https://en.wikipedia.org",
50
        "https://meta.wikimedia.org",
51
    );
52
    private $ircNotificationsEnabled = true;
53
    private $ircNotificationsInstance = 'Development';
54
    private $errorLog = 'errorlog';
55
    private $titleBlacklistEnabled = false;
56
    /** @var null|string $locationProviderApiKey */
57
    private $locationProviderApiKey = null;
58
    private $torExitPaths = array();
59
    private $creationBotUsername = '';
60
    private $creationBotPassword = '';
61
    private $curlCookieJar = __DIR__ . '/../../cookies.txt';
62
    private $yubicoApiId = 0;
63
    private $yubicoApiKey = "";
64
    private $totpEncryptionKey = "1234";
65
    private $identificationNoticeboardPage = 'Access to nonpublic personal data policy/Noticeboard';
66
    private $identificationNoticeboardWebserviceEndpoint = 'https://meta.wikimedia.org/w/api.php';
67
    private $registrationAllowed = true;
68
    private $cspReportUri = null;
69
    private $resourceCacheEpoch = 1;
70
    private $commonEmailDomains = ['gmail.com', 'hotmail.com', 'outlook.com'];
71
    private $banMaxIpBlockRange = [4 => 20, 6 => 48];
72
    private $banMaxIpRange = [4 => 16, 6 => 32];
73
    private $jobQueueBatchSize = 10;
74
    private $amqpConfiguration = ['host' => 'localhost', 'port' => 5672, 'user' => 'guest', 'password' => 'guest', 'vhost' => '/', 'exchange' => '', 'tls' => false];
75
    private $emailSender = '[email protected]';
76
    private $acceptClientHints = [];
77
    private string $cookiePath = '/';
78
    private string $cookieSessionName = 'ACC';
79
    private array $offline = ['offline' => false, 'reason' => '', 'culprit' => ''];
80
    private array $databaseConfig = [
81
        'datasource' => 'mysql:host=localhost;dbname=waca',
82
        'username' => 'waca',
83
        'password' => 'waca'
84
    ];
85 2
    private string $privacyStatementPath = '';
86
87 2
    private string $createAccountLink = '{articlePath}/Special:CreateAccount';
88
89
    private array $globalDenyRole = [];
90
91
    /**
92
     * Gets the base URL of the tool
93
     *
94
     * If the internal page of the tool is at http://localhost/path/internal.php, this would be set to
95 1
     * http://localhost/path
96
     * @return string
97 1
     */
98
    public function getBaseUrl()
99 1
    {
100
        return $this->baseUrl;
101
    }
102
103
    /**
104
     * @param string $baseUrl
105
     *
106 1
     * @return SiteConfiguration
107
     */
108 1
    public function setBaseUrl($baseUrl)
109
    {
110
        $this->baseUrl = $baseUrl;
111
112
        return $this;
113
    }
114
115
    /**
116 1
     * Path on disk to the directory containing the tool's code
117
     * @return string
118 1
     */
119
    public function getFilePath()
120 1
    {
121
        return $this->filePath;
122
    }
123
124
    /**
125
     * @param string $filePath
126 1
     *
127
     * @return SiteConfiguration
128 1
     */
129
    public function setFilePath($filePath)
130
    {
131
        $this->filePath = $filePath;
132
133
        return $this;
134
    }
135
136
    /**
137
     * @return int
138
     */
139
    public function getSchemaVersion()
140
    {
141
        return $this->schemaVersion;
142
    }
143
144
    /**
145
     * @param int $schemaVersion
146 2
     *
147
     * @return SiteConfiguration
148 2
     */
149
    public function setSchemaVersion($schemaVersion)
150
    {
151
        $this->schemaVersion = $schemaVersion;
152
153
        return $this;
154
    }
155
156 3
    /**
157
     * @return mixed
158 3
     */
159
    public function getDebuggingTraceEnabled()
160 3
    {
161
        return $this->debuggingTraceEnabled;
162
    }
163
164
    /**
165
     * @param mixed $debuggingTraceEnabled
166
     *
167
     * @return SiteConfiguration
168
     */
169
    public function setDebuggingTraceEnabled($debuggingTraceEnabled)
170
    {
171
        $this->debuggingTraceEnabled = $debuggingTraceEnabled;
172
173
        return $this;
174
    }
175
176
    public function getDebuggingCssBreakpointsEnabled() : bool
177
    {
178 1
        return $this->debuggingCssBreakpointsEnabled;
179
    }
180 1
181
    public function setDebuggingCssBreakpointsEnabled(bool $debuggingCssBreakpointsEnabled) : SiteConfiguration
182
    {
183
        $this->debuggingCssBreakpointsEnabled = $debuggingCssBreakpointsEnabled;
184
185
        return $this;
186
    }
187
188 1
    /**
189
     * @return string
190 1
     */
191
    public function getDataClearIp()
192 1
    {
193
        return $this->dataClearIp;
194
    }
195
196
    /**
197
     * @param string $dataClearIp
198 1
     *
199
     * @return SiteConfiguration
200 1
     */
201
    public function setDataClearIp($dataClearIp)
202
    {
203
        $this->dataClearIp = $dataClearIp;
204
205
        return $this;
206
    }
207
208 1
    /**
209
     * @return string
210 1
     */
211
    public function getDataClearEmail()
212 1
    {
213
        return $this->dataClearEmail;
214
    }
215
216
    /**
217
     * @param string $dataClearEmail
218 1
     *
219
     * @return SiteConfiguration
220 1
     */
221
    public function setDataClearEmail($dataClearEmail)
222
    {
223
        $this->dataClearEmail = $dataClearEmail;
224
225
        return $this;
226
    }
227
228 1
    /**
229
     * @return boolean
230 1
     */
231
    public function getForceIdentification()
232 1
    {
233
        return $this->forceIdentification;
234
    }
235
236
    /**
237
     * @param boolean $forceIdentification
238 1
     *
239
     * @return SiteConfiguration
240 1
     */
241
    public function setForceIdentification($forceIdentification)
242
    {
243
        $this->forceIdentification = $forceIdentification;
244
245
        return $this;
246
    }
247
248 1
    /**
249
     * @return string
250 1
     */
251
    public function getIdentificationCacheExpiry()
252 1
    {
253
        return $this->identificationCacheExpiry;
254
    }
255
256
    /**
257
     * @param string $identificationCacheExpiry
258 2
     *
259
     * @return SiteConfiguration
260 2
     */
261
    public function setIdentificationCacheExpiry($identificationCacheExpiry)
262
    {
263
        $this->identificationCacheExpiry = $identificationCacheExpiry;
264
265
        return $this;
266
    }
267
268 1
    /**
269
     * @return string
270 1
     */
271
    public function getMetaWikimediaWebServiceEndpoint()
272 1
    {
273
        return $this->metaWikimediaWebServiceEndpoint;
274
    }
275
276
    /**
277
     * @param string $metaWikimediaWebServiceEndpoint
278 1
     *
279
     * @return SiteConfiguration
280 1
     */
281
    public function setMetaWikimediaWebServiceEndpoint($metaWikimediaWebServiceEndpoint)
282
    {
283
        $this->metaWikimediaWebServiceEndpoint = $metaWikimediaWebServiceEndpoint;
284
285
        return $this;
286
    }
287
288 1
    /**
289
     * @return boolean
290 1
     */
291
    public function getEnforceOAuth()
292 1
    {
293
        return $this->enforceOAuth;
294
    }
295
296
    /**
297
     * @param boolean $enforceOAuth
298 1
     *
299
     * @return SiteConfiguration
300 1
     */
301
    public function setEnforceOAuth($enforceOAuth)
302
    {
303
        $this->enforceOAuth = $enforceOAuth;
304
305
        return $this;
306
    }
307
308 1
    /**
309
     * @return boolean
310 1
     */
311
    public function getEmailConfirmationEnabled()
312 1
    {
313
        return $this->emailConfirmationEnabled;
314
    }
315
316
    /**
317
     * @param boolean $emailConfirmationEnabled
318 1
     *
319
     * @return $this
320 1
     */
321
    public function setEmailConfirmationEnabled($emailConfirmationEnabled)
322
    {
323
        $this->emailConfirmationEnabled = $emailConfirmationEnabled;
324
325
        return $this;
326
    }
327
328 1
    /**
329
     * @return int
330 1
     */
331
    public function getMiserModeLimit()
332 1
    {
333
        return $this->miserModeLimit;
334
    }
335
336
    /**
337
     * @param int $miserModeLimit
338 1
     *
339
     * @return SiteConfiguration
340 1
     */
341
    public function setMiserModeLimit($miserModeLimit)
342
    {
343
        $this->miserModeLimit = $miserModeLimit;
344
345
        return $this;
346
    }
347
348 1
    /**
349
     * @return array
350 1
     */
351
    public function getSquidList()
352 1
    {
353
        return $this->squidList;
354
    }
355
356
    /**
357
     * @param array $squidList
358 1
     *
359
     * @return SiteConfiguration
360 1
     */
361
    public function setSquidList($squidList)
362
    {
363
        $this->squidList = $squidList;
364
365
        return $this;
366
    }
367
368 1
    /**
369
     * @return boolean
370 1
     */
371
    public function getUseStrictTransportSecurity()
372 1
    {
373
        return $this->useStrictTransportSecurity;
374
    }
375
376
    /**
377
     * @param boolean $useStrictTransportSecurity
378 2
     *
379
     * @return SiteConfiguration
380 2
     */
381
    public function setUseStrictTransportSecurity($useStrictTransportSecurity)
382
    {
383
        $this->useStrictTransportSecurity = $useStrictTransportSecurity;
384
385
        return $this;
386
    }
387
388 1
    /**
389
     * @return string
390 1
     */
391
    public function getUserAgent()
392 1
    {
393
        return $this->userAgent;
394
    }
395
396
    /**
397
     * @param string $userAgent
398 2
     *
399
     * @return SiteConfiguration
400 2
     */
401
    public function setUserAgent($userAgent)
402
    {
403
        $this->userAgent = $userAgent;
404
405
        return $this;
406
    }
407
408 2
    /**
409
     * @return boolean
410 2
     */
411
    public function getCurlDisableVerifyPeer()
412 2
    {
413
        return $this->curlDisableVerifyPeer;
414
    }
415
416
    /**
417
     * @param boolean $curlDisableVerifyPeer
418 1
     *
419
     * @return SiteConfiguration
420 1
     */
421
    public function setCurlDisableVerifyPeer($curlDisableVerifyPeer)
422
    {
423
        $this->curlDisableVerifyPeer = $curlDisableVerifyPeer;
424
425
        return $this;
426
    }
427
428 1
    /**
429
     * @return boolean
430 1
     */
431
    public function getUseOAuthSignup()
432 1
    {
433
        return $this->useOAuthSignup;
434
    }
435
436
    /**
437
     * @param boolean $useOAuthSignup
438 1
     *
439
     * @return SiteConfiguration
440 1
     */
441
    public function setUseOAuthSignup($useOAuthSignup)
442
    {
443
        $this->useOAuthSignup = $useOAuthSignup;
444
445
        return $this;
446
    }
447
448 1
    /**
449
     * @return mixed
450 1
     */
451
    public function getOAuthConsumerToken()
452 1
    {
453
        return $this->oauthConsumerToken;
454
    }
455
456
    /**
457
     * @param mixed $oauthConsumerToken
458 1
     *
459
     * @return SiteConfiguration
460 1
     */
461
    public function setOAuthConsumerToken($oauthConsumerToken)
462
    {
463
        $this->oauthConsumerToken = $oauthConsumerToken;
464
465
        return $this;
466
    }
467
468 1
    /**
469
     * @return mixed
470 1
     */
471
    public function getOAuthConsumerSecret()
472 1
    {
473
        return $this->oauthConsumerSecret;
474
    }
475
476
    /**
477
     * @param mixed $oauthConsumerSecret
478 1
     *
479
     * @return SiteConfiguration
480 1
     */
481
    public function setOAuthConsumerSecret($oauthConsumerSecret)
482
    {
483
        $this->oauthConsumerSecret = $oauthConsumerSecret;
484
485
        return $this;
486
    }
487
488 1
    /**
489
     * @return string
490 1
     */
491
    public function getDataClearInterval()
492 1
    {
493
        return $this->dataClearInterval;
494
    }
495
496
    /**
497
     * @param string $dataClearInterval
498 1
     *
499
     * @return SiteConfiguration
500 1
     */
501
    public function setDataClearInterval($dataClearInterval)
502
    {
503
        $this->dataClearInterval = $dataClearInterval;
504
505
        return $this;
506
    }
507
508 1
    /**
509
     * @return string
510 1
     */
511
    public function getXffTrustedHostsFile()
512 1
    {
513
        return $this->xffTrustedHostsFile;
514
    }
515
516
    /**
517
     * @param string $xffTrustedHostsFile
518 1
     *
519
     * @return SiteConfiguration
520 1
     */
521
    public function setXffTrustedHostsFile($xffTrustedHostsFile)
522
    {
523
        $this->xffTrustedHostsFile = $xffTrustedHostsFile;
524
525
        return $this;
526
    }
527
528 1
    /**
529
     * @return array
530 1
     */
531
    public function getCrossOriginResourceSharingHosts()
532 1
    {
533
        return $this->crossOriginResourceSharingHosts;
534
    }
535
536
    /**
537
     * @param array $crossOriginResourceSharingHosts
538 1
     *
539
     * @return SiteConfiguration
540 1
     */
541
    public function setCrossOriginResourceSharingHosts($crossOriginResourceSharingHosts)
542
    {
543
        $this->crossOriginResourceSharingHosts = $crossOriginResourceSharingHosts;
544
545
        return $this;
546
    }
547
548 1
    /**
549
     * @return boolean
550 1
     */
551
    public function getIrcNotificationsEnabled()
552 1
    {
553
        return $this->ircNotificationsEnabled;
554
    }
555
556
    /**
557
     * @param boolean $ircNotificationsEnabled
558
     *
559
     * @return SiteConfiguration
560 1
     */
561
    public function setIrcNotificationsEnabled($ircNotificationsEnabled)
562 1
    {
563
        $this->ircNotificationsEnabled = $ircNotificationsEnabled;
564 1
565
        return $this;
566
    }
567
568
    /**
569
     * @param string $errorLog
570 2
     *
571
     * @return SiteConfiguration
572 2
     */
573
    public function setErrorLog($errorLog)
574
    {
575
        $this->errorLog = $errorLog;
576
577
        return $this;
578
    }
579
580 1
    /**
581
     * @return string
582 1
     */
583
    public function getErrorLog()
584 1
    {
585
        return $this->errorLog;
586
    }
587
588
    /**
589
     * @param int $emailConfirmationExpiryDays
590 1
     *
591
     * @return SiteConfiguration
592 1
     */
593
    public function setEmailConfirmationExpiryDays($emailConfirmationExpiryDays)
594
    {
595
        $this->emailConfirmationExpiryDays = $emailConfirmationExpiryDays;
596
597
        return $this;
598
    }
599
600 1
    /**
601
     * @return int
602 1
     */
603
    public function getEmailConfirmationExpiryDays()
604 1
    {
605
        return $this->emailConfirmationExpiryDays;
606
    }
607
608
    /**
609
     * @param string $ircNotificationsInstance
610 1
     *
611
     * @return SiteConfiguration
612 1
     */
613
    public function setIrcNotificationsInstance($ircNotificationsInstance)
614
    {
615
        $this->ircNotificationsInstance = $ircNotificationsInstance;
616
617
        return $this;
618
    }
619
620 1
    /**
621
     * @return string
622 1
     */
623
    public function getIrcNotificationsInstance()
624 1
    {
625
        return $this->ircNotificationsInstance;
626
    }
627
628
    /**
629
     * @param boolean $titleBlacklistEnabled
630 1
     *
631
     * @return SiteConfiguration
632 1
     */
633
    public function setTitleBlacklistEnabled($titleBlacklistEnabled)
634
    {
635
        $this->titleBlacklistEnabled = $titleBlacklistEnabled;
636
637
        return $this;
638
    }
639
640 1
    /**
641
     * @return boolean
642 1
     */
643
    public function getTitleBlacklistEnabled()
644 1
    {
645
        return $this->titleBlacklistEnabled;
646
    }
647
648
    /**
649
     * @param string|null $locationProviderApiKey
650 1
     *
651
     * @return SiteConfiguration
652 1
     */
653
    public function setLocationProviderApiKey($locationProviderApiKey)
654
    {
655
        $this->locationProviderApiKey = $locationProviderApiKey;
656
657
        return $this;
658
    }
659
660 1
    /**
661
     * @return null|string
662 1
     */
663
    public function getLocationProviderApiKey()
664 1
    {
665
        return $this->locationProviderApiKey;
666
    }
667
668
    /**
669
     * @param array $torExitPaths
670 1
     *
671
     * @return SiteConfiguration
672 1
     */
673
    public function setTorExitPaths($torExitPaths)
674
    {
675
        $this->torExitPaths = $torExitPaths;
676
677
        return $this;
678
    }
679
680
    /**
681
     * @return array
682
     */
683
    public function getTorExitPaths()
684
    {
685
        return $this->torExitPaths;
686
    }
687
688
    /**
689
     * @param string $oauthIdentityGraceTime
690
     *
691
     * @return SiteConfiguration
692
     */
693
    public function setOauthIdentityGraceTime($oauthIdentityGraceTime)
694
    {
695
        $this->oauthIdentityGraceTime = $oauthIdentityGraceTime;
696
697
        return $this;
698
    }
699
700
    /**
701
     * @return string
702
     */
703
    public function getOauthIdentityGraceTime()
704
    {
705
        return $this->oauthIdentityGraceTime;
706
    }
707
708
    /**
709
     * @param string $oauthMediaWikiCanonicalServer
710
     *
711
     * @return SiteConfiguration
712
     */
713
    public function setOauthMediaWikiCanonicalServer($oauthMediaWikiCanonicalServer)
714
    {
715
        $this->oauthMediaWikiCanonicalServer = $oauthMediaWikiCanonicalServer;
716
717
        return $this;
718
    }
719
720
    /**
721
     * @return string
722
     */
723
    public function getOauthMediaWikiCanonicalServer()
724
    {
725
        return $this->oauthMediaWikiCanonicalServer;
726
    }
727
728
    /**
729
     * @param string $creationBotUsername
730
     *
731
     * @return SiteConfiguration
732
     */
733
    public function setCreationBotUsername($creationBotUsername)
734
    {
735
        $this->creationBotUsername = $creationBotUsername;
736
737
        return $this;
738
    }
739
740
    /**
741
     * @return string
742
     */
743
    public function getCreationBotUsername()
744
    {
745
        return $this->creationBotUsername;
746
    }
747
748
    /**
749
     * @param string $creationBotPassword
750
     *
751
     * @return SiteConfiguration
752
     */
753
    public function setCreationBotPassword($creationBotPassword)
754
    {
755
        $this->creationBotPassword = $creationBotPassword;
756
757
        return $this;
758
    }
759
760
    /**
761
     * @return string
762
     */
763
    public function getCreationBotPassword()
764
    {
765
        return $this->creationBotPassword;
766
    }
767
768
    /**
769
     * @param string|null $curlCookieJar
770
     *
771
     * @return SiteConfiguration
772
     */
773
    public function setCurlCookieJar($curlCookieJar)
774
    {
775
        $this->curlCookieJar = $curlCookieJar;
776
777
        return $this;
778
    }
779
780
    /**
781
     * @return string|null
782
     */
783
    public function getCurlCookieJar()
784
    {
785
        return $this->curlCookieJar;
786
    }
787
788
    public function getYubicoApiId()
789
    {
790
        return $this->yubicoApiId;
791
    }
792
793
    public function setYubicoApiId($id)
794
    {
795
        $this->yubicoApiId = $id;
796
797
        return $this;
798
    }
799
800
    public function getYubicoApiKey()
801
    {
802
        return $this->yubicoApiKey;
803
    }
804
805
    public function setYubicoApiKey($key)
806
    {
807
        $this->yubicoApiKey = $key;
808
809
        return $this;
810
    }
811
812
    /**
813
     * @return string
814
     */
815
    public function getTotpEncryptionKey()
816
    {
817
        return $this->totpEncryptionKey;
818
    }
819
820
    /**
821
     * @param string $totpEncryptionKey
822 1
     *
823
     * @return SiteConfiguration
824 1
     */
825
    public function setTotpEncryptionKey($totpEncryptionKey)
826
    {
827
        $this->totpEncryptionKey = $totpEncryptionKey;
828
829
        return $this;
830
    }
831
832
    /**
833
     * @return string
834
     */
835
    public function getIdentificationNoticeboardPage()
836
    {
837
        return $this->identificationNoticeboardPage;
838
    }
839
840
    /**
841
     * @param string $identificationNoticeboardPage
842
     *
843
     * @return SiteConfiguration
844
     */
845
    public function setIdentificationNoticeboardPage($identificationNoticeboardPage)
846 1
    {
847
        $this->identificationNoticeboardPage = $identificationNoticeboardPage;
848 1
849
        return $this;
850
    }
851
852
    public function setIdentificationNoticeboardWebserviceEndpoint(string $identificationNoticeboardWebserviceEndpoint
853
    ): SiteConfiguration {
854
        $this->identificationNoticeboardWebserviceEndpoint = $identificationNoticeboardWebserviceEndpoint;
855
856
        return $this;
857
    }
858
859
    public function getIdentificationNoticeboardWebserviceEndpoint(): string
860
    {
861
        return $this->identificationNoticeboardWebserviceEndpoint;
862
    }
863
864
    public function isRegistrationAllowed(): bool
865
    {
866
        return $this->registrationAllowed;
867
    }
868
869
    public function setRegistrationAllowed(bool $registrationAllowed): SiteConfiguration
870
    {
871
        $this->registrationAllowed = $registrationAllowed;
872
873
        return $this;
874
    }
875
876
    /**
877
     * @return string|null
878
     */
879
    public function getCspReportUri()
880
    {
881
        return $this->cspReportUri;
882
    }
883
884
    /**
885
     * @param string|null $cspReportUri
886
     *
887
     * @return SiteConfiguration
888
     */
889
    public function setCspReportUri($cspReportUri)
890
    {
891
        $this->cspReportUri = $cspReportUri;
892
893
        return $this;
894
    }
895
896
    /**
897
     * @return int
898
     */
899
    public function getResourceCacheEpoch(): int
900
    {
901
        return $this->resourceCacheEpoch;
902
    }
903
904
    /**
905
     * @param int $resourceCacheEpoch
906
     *
907
     * @return SiteConfiguration
908
     */
909
    public function setResourceCacheEpoch(int $resourceCacheEpoch): SiteConfiguration
910
    {
911
        $this->resourceCacheEpoch = $resourceCacheEpoch;
912
913
        return $this;
914
    }
915
916
    /**
917
     * @return array
918
     */
919
    public function getCommonEmailDomains(): array
920
    {
921
        return $this->commonEmailDomains;
922
    }
923
924
    /**
925
     * @param array $commonEmailDomains
926
     *
927
     * @return SiteConfiguration
928
     */
929
    public function setCommonEmailDomains(array $commonEmailDomains): SiteConfiguration
930
    {
931
        $this->commonEmailDomains = $commonEmailDomains;
932
933
        return $this;
934
    }
935
936
    /**
937
     * @param int[] $banMaxIpBlockRange
938
     *
939
     * @return SiteConfiguration
940
     */
941
    public function setBanMaxIpBlockRange(array $banMaxIpBlockRange): SiteConfiguration
942
    {
943
        $this->banMaxIpBlockRange = $banMaxIpBlockRange;
944
945
        return $this;
946
    }
947
948
    /**
949
     * @return int[]
950
     */
951
    public function getBanMaxIpBlockRange(): array
952
    {
953
        return $this->banMaxIpBlockRange;
954
    }
955
956
    /**
957
     * @param int[] $banMaxIpRange
958
     *
959
     * @return SiteConfiguration
960
     */
961
    public function setBanMaxIpRange(array $banMaxIpRange): SiteConfiguration
962
    {
963
        $this->banMaxIpRange = $banMaxIpRange;
964
965
        return $this;
966
    }
967
968
    /**
969
     * @return int[]
970
     */
971
    public function getBanMaxIpRange(): array
972
    {
973
        return $this->banMaxIpRange;
974
    }
975
976
    /**
977
     * @param array $oauthLegacyConsumerTokens
978
     *
979
     * @return SiteConfiguration
980
     */
981
    public function setOauthLegacyConsumerTokens(array $oauthLegacyConsumerTokens): SiteConfiguration
982
    {
983
        $this->oauthLegacyConsumerTokens = $oauthLegacyConsumerTokens;
984
985
        return $this;
986
    }
987
988
    /**
989
     * @return array
990
     */
991
    public function getOauthLegacyConsumerTokens(): array
992
    {
993
        return $this->oauthLegacyConsumerTokens;
994
    }
995
996
    /**
997
     * @return int
998
     */
999
    public function getJobQueueBatchSize(): int
1000
    {
1001
        return $this->jobQueueBatchSize;
1002
    }
1003
1004
    /**
1005
     * @param int $jobQueueBatchSize
1006
     *
1007
     * @return SiteConfiguration
1008
     */
1009
    public function setJobQueueBatchSize(int $jobQueueBatchSize): SiteConfiguration
1010
    {
1011
        $this->jobQueueBatchSize = $jobQueueBatchSize;
1012
1013
        return $this;
1014
    }
1015
1016
    /**
1017
     * @return array
1018
     */
1019
    public function getAmqpConfiguration(): array
1020
    {
1021
        return $this->amqpConfiguration;
1022
    }
1023
1024
    /**
1025
     * @param array $amqpConfiguration
1026
     *
1027
     * @return SiteConfiguration
1028
     */
1029
    public function setAmqpConfiguration(array $amqpConfiguration): SiteConfiguration
1030
    {
1031
        $this->amqpConfiguration = $amqpConfiguration;
1032
1033
        return $this;
1034
    }
1035
1036
    /**
1037
     * @return string
1038
     */
1039
    public function getEmailSender(): string
1040
    {
1041
        return $this->emailSender;
1042
    }
1043
1044
    /**
1045
     * @param string $emailSender
1046
     *
1047
     * @return SiteConfiguration
1048
     */
1049
    public function setEmailSender(string $emailSender): SiteConfiguration
1050
    {
1051
        $this->emailSender = $emailSender;
1052
1053
        return $this;
1054
    }
1055
1056
    /**
1057
     * @param array $acceptClientHints
1058
     *
1059
     * @return SiteConfiguration
1060
     */
1061
    public function setAcceptClientHints(array $acceptClientHints): SiteConfiguration
1062
    {
1063
        $this->acceptClientHints = $acceptClientHints;
1064
1065
        return $this;
1066
    }
1067
1068
    /**
1069
     * @return array
1070
     */
1071
    public function getAcceptClientHints(): array
1072
    {
1073
        return $this->acceptClientHints;
1074
    }
1075
1076
    public function setCookiePath(string $cookiePath): SiteConfiguration
1077
    {
1078
        $this->cookiePath = $cookiePath;
1079
1080
        return $this;
1081
    }
1082
1083
    public function getCookiePath(): string
1084
    {
1085
        return $this->cookiePath;
1086
    }
1087
1088
    public function setCookieSessionName(string $cookieSessionName): SiteConfiguration
1089
    {
1090
        $this->cookieSessionName = $cookieSessionName;
1091
1092
        return $this;
1093
    }
1094
1095
    public function getCookieSessionName(): string
1096
    {
1097
        return $this->cookieSessionName;
1098
    }
1099
1100
    public function setOffline(array $offline): SiteConfiguration
1101
    {
1102
        $this->offline = $offline;
1103
1104
        return $this;
1105
    }
1106
1107
    public function getOffline(): array
1108
    {
1109
        return $this->offline;
1110
    }
1111
1112
    public function setDatabaseConfig(array $databaseConfig): SiteConfiguration
1113
    {
1114
        $this->databaseConfig = $databaseConfig;
1115
1116
        return $this;
1117
    }
1118
1119
    public function getDatabaseConfig(): array
1120
    {
1121
        return $this->databaseConfig;
1122
    }
1123
1124
    public function getPrivacyStatementPath(): string
1125
    {
1126
        return $this->privacyStatementPath;
1127
    }
1128
1129
    public function setPrivacyStatementPath(string $privacyStatementPath): SiteConfiguration
1130
    {
1131
        $this->privacyStatementPath = $privacyStatementPath;
1132
1133
        return $this;
1134
    }
1135
1136
    public function getCreateAccountLink(): string
1137
    {
1138
        return $this->createAccountLink;
1139
    }
1140
1141
    public function setCreateAccountLink(string $createAccountLink): SiteConfiguration
1142
    {
1143
        $this->createAccountLink = $createAccountLink;
1144
1145
        return $this;
1146
    }
1147
1148
    public function getGlobalDenyRole(): array
1149
    {
1150
        return $this->globalDenyRole;
1151
    }
1152
1153
    public function setGlobalDenyRole(array $globalDenyRole): SiteConfiguration
1154
    {
1155
        $this->globalDenyRole = $globalDenyRole;
1156
1157
        return $this;
1158
    }
1159
}
1160