Passed
Push — mq-notifications ( 9da1c1...c19862 )
by Simon
03:07
created

SiteConfiguration::getIrcNotificationRoutingKey()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 2
CRAP Score 1

Importance

Changes 0
Metric Value
cc 1
eloc 1
nc 1
nop 0
dl 0
loc 3
ccs 2
cts 2
cp 1
crap 1
rs 10
c 0
b 0
f 0
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
namespace Waca;
10
11
/**
12
 * Class SiteConfiguration
13
 *
14
 * IMPORTANT: This class must never throw an exception or trigger an error. It's used in the error handler.
15
 *
16
 * @package Waca
17
 */
18
class SiteConfiguration
19
{
20
    private $baseUrl;
21
    private $filePath;
22
    private $schemaVersion = 39;
23
    private $debuggingTraceEnabled;
24
    private $debuggingCssBreakpointsEnabled;
25
    private $dataClearIp = '127.0.0.1';
26
    private $dataClearEmail = '[email protected]';
27
    private $dataClearInterval = '15 DAY';
28
    private $forceIdentification = true;
29
    private $identificationCacheExpiry = '1 DAY';
30
    private $mediawikiScriptPath = 'https://en.wikipedia.org/w/index.php';
31
    private $mediawikiWebServiceEndpoint = 'https://en.wikipedia.org/w/api.php';
32
    private $metaWikimediaWebServiceEndpoint = 'https://meta.wikimedia.org/w/api.php';
33
    private $enforceOAuth = true;
34
    private $emailConfirmationEnabled = true;
35
    private $emailConfirmationExpiryDays = 7;
36
    private $miserModeLimit = 25;
37
    /** @deprecated */
38
    private $requestStates = array(
39
        'Open'          => array(
40
            'defertolog' => 'users', // don't change or you'll break old logs
41
            'deferto'    => 'users',
42
            'header'     => 'Open requests',
43
            'api'        => "open",
44
        ),
45
        'Flagged users' => array(
46
            'defertolog' => 'flagged users', // don't change or you'll break old logs
47
            'deferto'    => 'flagged users',
48
            'header'     => 'Flagged user needed',
49
            'api'        => "admin",
50
        ),
51
        'Checkuser'     => array(
52
            'defertolog' => 'checkusers', // don't change or you'll break old logs
53
            'deferto'    => 'checkusers',
54
            'header'     => 'Checkuser needed',
55
            'api'        => "checkuser",
56
        ),
57
    );
58
    private $squidList = array();
59
    /** @deprecated */
60
    private $defaultCreatedTemplateId = 1;
61
    /** @deprecated */
62
    private $defaultRequestStateKey = 'Open';
63
    /** @deprecated */
64
    private $defaultRequestDeferredStateKey = 'Flagged users';
65
    private $useStrictTransportSecurity = false;
66
    private $userAgent = 'Wikipedia-ACC Tool/0.1 (+https://accounts.wmflabs.org/internal.php/team)';
67
    private $curlDisableVerifyPeer = false;
68
    private $useOAuthSignup = true;
69
    private $oauthBaseUrl;
70
    private $oauthConsumerToken;
71
    /** @var array */
72
    private $oauthLegacyConsumerTokens;
73
    private $oauthConsumerSecret;
74
    private $oauthIdentityGraceTime = '24 hours';
75
    private $oauthMediaWikiCanonicalServer = 'http://en.wikipedia.org';
76
    private $xffTrustedHostsFile = '../TrustedXFF/trusted-hosts.txt';
77
    private $crossOriginResourceSharingHosts = array(
78
        "http://en.wikipedia.org",
79
        "https://en.wikipedia.org",
80
        "http://meta.wikimedia.org",
81
        "https://meta.wikimedia.org",
82
    );
83
    private $ircNotificationRoutingKey = 1;
84
    private $ircNotificationsEnabled = true;
85
    private $ircNotificationsInstance = 'Development';
86
    private $errorLog = 'errorlog';
87
    private $titleBlacklistEnabled = false;
88
    /** @var null|string $locationProviderApiKey */
89
    private $locationProviderApiKey = null;
90
    private $torExitPaths = array();
91
    private $creationBotUsername = '';
92
    private $creationBotPassword = '';
93
    private $curlCookieJar = null;
94
    private $yubicoApiId = 0;
95
    private $yubicoApiKey = "";
96
    private $totpEncryptionKey = "1234";
97
    private $identificationNoticeboardPage = 'Access to nonpublic personal data policy/Noticeboard';
98
    private $registrationAllowed = true;
99
    private $cspReportUri = null;
100
    private $resourceCacheEpoch = 1;
101
    private $commonEmailDomains = [];
102
    private $banMaxIpBlockRange = [4 => 20, 6 => 48];
103
    private $banMaxIpRange = [4 => 16, 6 => 32];
104
    private $jobQueueBatchSize = 10;
105
    private $amqpConfiguration = ['host' => 'localhost', 'port' => 5672, 'user' => 'guest', 'password' => 'guest', 'exchange' => ''];
106
107
    /**
108
     * Gets the base URL of the tool
109
     *
110
     * If the internal page of the tool is at http://localhost/path/internal.php, this would be set to
111
     * http://localhost/path
112
     * @return string
113
     */
114 1
    public function getBaseUrl()
115
    {
116 1
        return $this->baseUrl;
117
    }
118
119
    /**
120
     * @param string $baseUrl
121
     *
122
     * @return SiteConfiguration
123
     */
124 1
    public function setBaseUrl($baseUrl)
125
    {
126 1
        $this->baseUrl = $baseUrl;
127
128 1
        return $this;
129
    }
130
131
    /**
132
     * Path on disk to the directory containing the tool's code
133
     * @return string
134
     */
135 1
    public function getFilePath()
136
    {
137 1
        return $this->filePath;
138
    }
139
140
    /**
141
     * @param string $filePath
142
     *
143
     * @return SiteConfiguration
144
     */
145 1
    public function setFilePath($filePath)
146
    {
147 1
        $this->filePath = $filePath;
148
149 1
        return $this;
150
    }
151
152
    /**
153
     * @return int
154
     */
155 1
    public function getSchemaVersion()
156
    {
157 1
        return $this->schemaVersion;
158
    }
159
160
    /**
161
     * @param int $schemaVersion
162
     *
163
     * @return SiteConfiguration
164
     */
165
    public function setSchemaVersion($schemaVersion)
166
    {
167
        $this->schemaVersion = $schemaVersion;
168
169
        return $this;
170
    }
171
172
    /**
173
     * @return mixed
174
     */
175 1
    public function getDebuggingTraceEnabled()
176
    {
177 1
        return $this->debuggingTraceEnabled;
178
    }
179
180
    /**
181
     * @param mixed $debuggingTraceEnabled
182
     *
183
     * @return SiteConfiguration
184
     */
185 1
    public function setDebuggingTraceEnabled($debuggingTraceEnabled)
186
    {
187 1
        $this->debuggingTraceEnabled = $debuggingTraceEnabled;
188
189 1
        return $this;
190
    }
191
192
    public function getDebuggingCssBreakpointsEnabled() : bool
193
    {
194
        return $this->debuggingCssBreakpointsEnabled;
195
    }
196
197
    public function setDebuggingCssBreakpointsEnabled(bool $debuggingCssBreakpointsEnabled) : SiteConfiguration
198
    {
199
        $this->debuggingCssBreakpointsEnabled = $debuggingCssBreakpointsEnabled;
200
201
        return $this;
202
    }
203
204
    /**
205
     * @return string
206
     */
207 1
    public function getDataClearIp()
208
    {
209 1
        return $this->dataClearIp;
210
    }
211
212
    /**
213
     * @param string $dataClearIp
214
     *
215
     * @return SiteConfiguration
216
     */
217 1
    public function setDataClearIp($dataClearIp)
218
    {
219 1
        $this->dataClearIp = $dataClearIp;
220
221 1
        return $this;
222
    }
223
224
    /**
225
     * @return string
226
     */
227 1
    public function getDataClearEmail()
228
    {
229 1
        return $this->dataClearEmail;
230
    }
231
232
    /**
233
     * @param string $dataClearEmail
234
     *
235
     * @return SiteConfiguration
236
     */
237 1
    public function setDataClearEmail($dataClearEmail)
238
    {
239 1
        $this->dataClearEmail = $dataClearEmail;
240
241 1
        return $this;
242
    }
243
244
    /**
245
     * @return boolean
246
     */
247 1
    public function getForceIdentification()
248
    {
249 1
        return $this->forceIdentification;
250
    }
251
252
    /**
253
     * @param boolean $forceIdentification
254
     *
255
     * @return SiteConfiguration
256
     */
257 1
    public function setForceIdentification($forceIdentification)
258
    {
259 1
        $this->forceIdentification = $forceIdentification;
260
261 1
        return $this;
262
    }
263
264
    /**
265
     * @return string
266
     */
267 1
    public function getIdentificationCacheExpiry()
268
    {
269 1
        return $this->identificationCacheExpiry;
270
    }
271
272
    /**
273
     * @param string $identificationCacheExpiry
274
     *
275
     * @return SiteConfiguration
276
     */
277 1
    public function setIdentificationCacheExpiry($identificationCacheExpiry)
278
    {
279 1
        $this->identificationCacheExpiry = $identificationCacheExpiry;
280
281 1
        return $this;
282
    }
283
284
    /**
285
     * @return string
286
     */
287 1
    public function getMediawikiScriptPath()
288
    {
289 1
        return $this->mediawikiScriptPath;
290
    }
291
292
    /**
293
     * @param string $mediawikiScriptPath
294
     *
295
     * @return SiteConfiguration
296
     */
297 1
    public function setMediawikiScriptPath($mediawikiScriptPath)
298
    {
299 1
        $this->mediawikiScriptPath = $mediawikiScriptPath;
300
301 1
        return $this;
302
    }
303
304
    /**
305
     * @return string
306
     */
307 2
    public function getMediawikiWebServiceEndpoint()
308
    {
309 2
        return $this->mediawikiWebServiceEndpoint;
310
    }
311
312
    /**
313
     * @param string $mediawikiWebServiceEndpoint
314
     *
315
     * @return SiteConfiguration
316
     */
317 1
    public function setMediawikiWebServiceEndpoint($mediawikiWebServiceEndpoint)
318
    {
319 1
        $this->mediawikiWebServiceEndpoint = $mediawikiWebServiceEndpoint;
320
321 1
        return $this;
322
    }
323
324
    /**
325
     * @return string
326
     */
327 2
    public function getMetaWikimediaWebServiceEndpoint()
328
    {
329 2
        return $this->metaWikimediaWebServiceEndpoint;
330
    }
331
332
    /**
333
     * @param string $metaWikimediaWebServiceEndpoint
334
     *
335
     * @return SiteConfiguration
336
     */
337 1
    public function setMetaWikimediaWebServiceEndpoint($metaWikimediaWebServiceEndpoint)
338
    {
339 1
        $this->metaWikimediaWebServiceEndpoint = $metaWikimediaWebServiceEndpoint;
340
341 1
        return $this;
342
    }
343
344
    /**
345
     * @return boolean
346
     */
347 1
    public function getEnforceOAuth()
348
    {
349 1
        return $this->enforceOAuth;
350
    }
351
352
    /**
353
     * @param boolean $enforceOAuth
354
     *
355
     * @return SiteConfiguration
356
     */
357 1
    public function setEnforceOAuth($enforceOAuth)
358
    {
359 1
        $this->enforceOAuth = $enforceOAuth;
360
361 1
        return $this;
362
    }
363
364
    /**
365
     * @return boolean
366
     */
367 1
    public function getEmailConfirmationEnabled()
368
    {
369 1
        return $this->emailConfirmationEnabled;
370
    }
371
372
    /**
373
     * @param boolean $emailConfirmationEnabled
374
     *
375
     * @return $this
376
     */
377 1
    public function setEmailConfirmationEnabled($emailConfirmationEnabled)
378
    {
379 1
        $this->emailConfirmationEnabled = $emailConfirmationEnabled;
380
381 1
        return $this;
382
    }
383
384
    /**
385
     * @return int
386
     */
387 1
    public function getMiserModeLimit()
388
    {
389 1
        return $this->miserModeLimit;
390
    }
391
392
    /**
393
     * @param int $miserModeLimit
394
     *
395
     * @return SiteConfiguration
396
     */
397 1
    public function setMiserModeLimit($miserModeLimit)
398
    {
399 1
        $this->miserModeLimit = $miserModeLimit;
400
401 1
        return $this;
402
    }
403
404
    /**
405
     * @return array
406
     * @deprecated To be removed after dynamic queues hit production. This will need to be major point release.
407
     */
408
    public function getRequestStates()
409
    {
410
        return $this->requestStates;
0 ignored issues
show
Deprecated Code introduced by
The property Waca\SiteConfiguration::$requestStates has been deprecated. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-deprecated  annotation

410
        return /** @scrutinizer ignore-deprecated */ $this->requestStates;
Loading history...
411
    }
412
413
    /**
414
     * @param array $requestStates
415
     *
416
     * @return SiteConfiguration
417
     * @deprecated To be removed after dynamic queues hit production. This will need to be major point release.
418
     */
419
    public function setRequestStates($requestStates)
420
    {
421
        $this->requestStates = $requestStates;
0 ignored issues
show
Deprecated Code introduced by
The property Waca\SiteConfiguration::$requestStates has been deprecated. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-deprecated  annotation

421
        /** @scrutinizer ignore-deprecated */ $this->requestStates = $requestStates;
Loading history...
422
423
        return $this;
424
    }
425
426
    /**
427
     * @return array
428
     */
429 1
    public function getSquidList()
430
    {
431 1
        return $this->squidList;
432
    }
433
434
    /**
435
     * @param array $squidList
436
     *
437
     * @return SiteConfiguration
438
     */
439 1
    public function setSquidList($squidList)
440
    {
441 1
        $this->squidList = $squidList;
442
443 1
        return $this;
444
    }
445
446
    /**
447
     * @return int
448
     * @deprecated
449
     */
450
    public function getDefaultCreatedTemplateId()
451
    {
452
        return $this->defaultCreatedTemplateId;
0 ignored issues
show
Deprecated Code introduced by
The property Waca\SiteConfiguration::$defaultCreatedTemplateId has been deprecated. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-deprecated  annotation

452
        return /** @scrutinizer ignore-deprecated */ $this->defaultCreatedTemplateId;
Loading history...
453
    }
454
455
    /**
456
     * @param int $defaultCreatedTemplateId
457
     * @deprecated
458
     * @return SiteConfiguration
459
     */
460
    public function setDefaultCreatedTemplateId($defaultCreatedTemplateId)
461
    {
462
        $this->defaultCreatedTemplateId = $defaultCreatedTemplateId;
0 ignored issues
show
Deprecated Code introduced by
The property Waca\SiteConfiguration::$defaultCreatedTemplateId has been deprecated. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-deprecated  annotation

462
        /** @scrutinizer ignore-deprecated */ $this->defaultCreatedTemplateId = $defaultCreatedTemplateId;
Loading history...
463
464
        return $this;
465
    }
466
467
    /**
468
     * @return string
469
     * @deprecated
470
     */
471
    public function getDefaultRequestStateKey()
472
    {
473
        return $this->defaultRequestStateKey;
0 ignored issues
show
Deprecated Code introduced by
The property Waca\SiteConfiguration::$defaultRequestStateKey has been deprecated. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-deprecated  annotation

473
        return /** @scrutinizer ignore-deprecated */ $this->defaultRequestStateKey;
Loading history...
474
    }
475
476
    /**
477
     * @param string $defaultRequestStateKey
478
     *
479
     * @return SiteConfiguration
480
     * @deprecated
481
     */
482
    public function setDefaultRequestStateKey($defaultRequestStateKey)
483
    {
484
        $this->defaultRequestStateKey = $defaultRequestStateKey;
0 ignored issues
show
Deprecated Code introduced by
The property Waca\SiteConfiguration::$defaultRequestStateKey has been deprecated. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-deprecated  annotation

484
        /** @scrutinizer ignore-deprecated */ $this->defaultRequestStateKey = $defaultRequestStateKey;
Loading history...
485
486
        return $this;
487
    }
488
489
    /**
490
     * @return string
491
     * @deprecated
492
     */
493
    public function getDefaultRequestDeferredStateKey()
494
    {
495
        return $this->defaultRequestDeferredStateKey;
0 ignored issues
show
Deprecated Code introduced by
The property Waca\SiteConfiguration::...RequestDeferredStateKey has been deprecated. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-deprecated  annotation

495
        return /** @scrutinizer ignore-deprecated */ $this->defaultRequestDeferredStateKey;
Loading history...
496
    }
497
498
    /**
499
     * @param string $defaultRequestDeferredStateKey
500
     *
501
     * @return SiteConfiguration
502
     * @deprecated
503
     */
504
    public function setDefaultRequestDeferredStateKey($defaultRequestDeferredStateKey)
505
    {
506
        $this->defaultRequestDeferredStateKey = $defaultRequestDeferredStateKey;
0 ignored issues
show
Deprecated Code introduced by
The property Waca\SiteConfiguration::...RequestDeferredStateKey has been deprecated. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-deprecated  annotation

506
        /** @scrutinizer ignore-deprecated */ $this->defaultRequestDeferredStateKey = $defaultRequestDeferredStateKey;
Loading history...
507
508
        return $this;
509
    }
510
511
    /**
512
     * @return boolean
513
     */
514 1
    public function getUseStrictTransportSecurity()
515
    {
516 1
        return $this->useStrictTransportSecurity;
517
    }
518
519
    /**
520
     * @param boolean $useStrictTransportSecurity
521
     *
522
     * @return SiteConfiguration
523
     */
524 1
    public function setUseStrictTransportSecurity($useStrictTransportSecurity)
525
    {
526 1
        $this->useStrictTransportSecurity = $useStrictTransportSecurity;
527
528 1
        return $this;
529
    }
530
531
    /**
532
     * @return string
533
     */
534 2
    public function getUserAgent()
535
    {
536 2
        return $this->userAgent;
537
    }
538
539
    /**
540
     * @param string $userAgent
541
     *
542
     * @return SiteConfiguration
543
     */
544 1
    public function setUserAgent($userAgent)
545
    {
546 1
        $this->userAgent = $userAgent;
547
548 1
        return $this;
549
    }
550
551
    /**
552
     * @return boolean
553
     */
554 2
    public function getCurlDisableVerifyPeer()
555
    {
556 2
        return $this->curlDisableVerifyPeer;
557
    }
558
559
    /**
560
     * @param boolean $curlDisableVerifyPeer
561
     *
562
     * @return SiteConfiguration
563
     */
564 2
    public function setCurlDisableVerifyPeer($curlDisableVerifyPeer)
565
    {
566 2
        $this->curlDisableVerifyPeer = $curlDisableVerifyPeer;
567
568 2
        return $this;
569
    }
570
571
    /**
572
     * @return boolean
573
     */
574 1
    public function getUseOAuthSignup()
575
    {
576 1
        return $this->useOAuthSignup;
577
    }
578
579
    /**
580
     * @param boolean $useOAuthSignup
581
     *
582
     * @return SiteConfiguration
583
     */
584 1
    public function setUseOAuthSignup($useOAuthSignup)
585
    {
586 1
        $this->useOAuthSignup = $useOAuthSignup;
587
588 1
        return $this;
589
    }
590
591
    /**
592
     * @return string
593
     */
594 1
    public function getOAuthBaseUrl()
595
    {
596 1
        return $this->oauthBaseUrl;
597
    }
598
599
    /**
600
     * @param string $oauthBaseUrl
601
     *
602
     * @return SiteConfiguration
603
     */
604 1
    public function setOAuthBaseUrl($oauthBaseUrl)
605
    {
606 1
        $this->oauthBaseUrl = $oauthBaseUrl;
607
608 1
        return $this;
609
    }
610
611
    /**
612
     * @return mixed
613
     */
614 1
    public function getOAuthConsumerToken()
615
    {
616 1
        return $this->oauthConsumerToken;
617
    }
618
619
    /**
620
     * @param mixed $oauthConsumerToken
621
     *
622
     * @return SiteConfiguration
623
     */
624 1
    public function setOAuthConsumerToken($oauthConsumerToken)
625
    {
626 1
        $this->oauthConsumerToken = $oauthConsumerToken;
627
628 1
        return $this;
629
    }
630
631
    /**
632
     * @return mixed
633
     */
634 1
    public function getOAuthConsumerSecret()
635
    {
636 1
        return $this->oauthConsumerSecret;
637
    }
638
639
    /**
640
     * @param mixed $oauthConsumerSecret
641
     *
642
     * @return SiteConfiguration
643
     */
644 1
    public function setOAuthConsumerSecret($oauthConsumerSecret)
645
    {
646 1
        $this->oauthConsumerSecret = $oauthConsumerSecret;
647
648 1
        return $this;
649
    }
650
651
    /**
652
     * @return string
653
     */
654 1
    public function getDataClearInterval()
655
    {
656 1
        return $this->dataClearInterval;
657
    }
658
659
    /**
660
     * @param string $dataClearInterval
661
     *
662
     * @return SiteConfiguration
663
     */
664 1
    public function setDataClearInterval($dataClearInterval)
665
    {
666 1
        $this->dataClearInterval = $dataClearInterval;
667
668 1
        return $this;
669
    }
670
671
    /**
672
     * @return string
673
     */
674 1
    public function getXffTrustedHostsFile()
675
    {
676 1
        return $this->xffTrustedHostsFile;
677
    }
678
679
    /**
680
     * @param string $xffTrustedHostsFile
681
     *
682
     * @return SiteConfiguration
683
     */
684 1
    public function setXffTrustedHostsFile($xffTrustedHostsFile)
685
    {
686 1
        $this->xffTrustedHostsFile = $xffTrustedHostsFile;
687
688 1
        return $this;
689
    }
690
691
    /**
692
     * @return array
693
     */
694 1
    public function getCrossOriginResourceSharingHosts()
695
    {
696 1
        return $this->crossOriginResourceSharingHosts;
697
    }
698
699
    /**
700
     * @param array $crossOriginResourceSharingHosts
701
     *
702
     * @return SiteConfiguration
703
     */
704 1
    public function setCrossOriginResourceSharingHosts($crossOriginResourceSharingHosts)
705
    {
706 1
        $this->crossOriginResourceSharingHosts = $crossOriginResourceSharingHosts;
707
708 1
        return $this;
709
    }
710
711
    /**
712
     * @return boolean
713
     */
714 1
    public function getIrcNotificationsEnabled()
715
    {
716 1
        return $this->ircNotificationsEnabled;
717
    }
718
719
    /**
720
     * @param boolean $ircNotificationsEnabled
721
     *
722
     * @return SiteConfiguration
723
     */
724 1
    public function setIrcNotificationsEnabled($ircNotificationsEnabled)
725
    {
726 1
        $this->ircNotificationsEnabled = $ircNotificationsEnabled;
727
728 1
        return $this;
729
    }
730
731
    /**
732
     * @return int
733
     */
734 1
    public function getIrcNotificationRoutingKey()
735
    {
736 1
        return $this->ircNotificationRoutingKey;
737
    }
738
739
    /**
740
     * @param int $ircNotificationRoutingKey
741
     *
742
     * @return SiteConfiguration
743
     */
744 1
    public function setIrcNotificationRoutingKey($ircNotificationRoutingKey)
745
    {
746 1
        $this->ircNotificationRoutingKey = $ircNotificationRoutingKey;
747
748 1
        return $this;
749
    }
750
751
    /**
752
     * @param string $errorLog
753
     *
754
     * @return SiteConfiguration
755
     */
756 1
    public function setErrorLog($errorLog)
757
    {
758 1
        $this->errorLog = $errorLog;
759
760 1
        return $this;
761
    }
762
763
    /**
764
     * @return string
765
     */
766 1
    public function getErrorLog()
767
    {
768 1
        return $this->errorLog;
769
    }
770
771
    /**
772
     * @param int $emailConfirmationExpiryDays
773
     *
774
     * @return SiteConfiguration
775
     */
776 1
    public function setEmailConfirmationExpiryDays($emailConfirmationExpiryDays)
777
    {
778 1
        $this->emailConfirmationExpiryDays = $emailConfirmationExpiryDays;
779
780 1
        return $this;
781
    }
782
783
    /**
784
     * @return int
785
     */
786 1
    public function getEmailConfirmationExpiryDays()
787
    {
788 1
        return $this->emailConfirmationExpiryDays;
789
    }
790
791
    /**
792
     * @param string $ircNotificationsInstance
793
     *
794
     * @return SiteConfiguration
795
     */
796 1
    public function setIrcNotificationsInstance($ircNotificationsInstance)
797
    {
798 1
        $this->ircNotificationsInstance = $ircNotificationsInstance;
799
800 1
        return $this;
801
    }
802
803
    /**
804
     * @return string
805
     */
806 1
    public function getIrcNotificationsInstance()
807
    {
808 1
        return $this->ircNotificationsInstance;
809
    }
810
811
    /**
812
     * @param boolean $titleBlacklistEnabled
813
     *
814
     * @return SiteConfiguration
815
     */
816 1
    public function setTitleBlacklistEnabled($titleBlacklistEnabled)
817
    {
818 1
        $this->titleBlacklistEnabled = $titleBlacklistEnabled;
819
820 1
        return $this;
821
    }
822
823
    /**
824
     * @return boolean
825
     */
826 2
    public function getTitleBlacklistEnabled()
827
    {
828 2
        return $this->titleBlacklistEnabled;
829
    }
830
831
    /**
832
     * @param string|null $locationProviderApiKey
833
     *
834
     * @return SiteConfiguration
835
     */
836 1
    public function setLocationProviderApiKey($locationProviderApiKey)
837
    {
838 1
        $this->locationProviderApiKey = $locationProviderApiKey;
839
840 1
        return $this;
841
    }
842
843
    /**
844
     * @return null|string
845
     */
846 1
    public function getLocationProviderApiKey()
847
    {
848 1
        return $this->locationProviderApiKey;
849
    }
850
851
    /**
852
     * @param array $torExitPaths
853
     *
854
     * @return SiteConfiguration
855
     */
856 1
    public function setTorExitPaths($torExitPaths)
857
    {
858 1
        $this->torExitPaths = $torExitPaths;
859
860 1
        return $this;
861
    }
862
863
    /**
864
     * @return array
865
     */
866 1
    public function getTorExitPaths()
867
    {
868 1
        return $this->torExitPaths;
869
    }
870
871
    /**
872
     * @param string $oauthIdentityGraceTime
873
     *
874
     * @return SiteConfiguration
875
     */
876
    public function setOauthIdentityGraceTime($oauthIdentityGraceTime)
877
    {
878
        $this->oauthIdentityGraceTime = $oauthIdentityGraceTime;
879
880
        return $this;
881
    }
882
883
    /**
884
     * @return string
885
     */
886
    public function getOauthIdentityGraceTime()
887
    {
888
        return $this->oauthIdentityGraceTime;
889
    }
890
891
    /**
892
     * @param string $oauthMediaWikiCanonicalServer
893
     *
894
     * @return SiteConfiguration
895
     */
896
    public function setOauthMediaWikiCanonicalServer($oauthMediaWikiCanonicalServer)
897
    {
898
        $this->oauthMediaWikiCanonicalServer = $oauthMediaWikiCanonicalServer;
899
900
        return $this;
901
    }
902
903
    /**
904
     * @return string
905
     */
906
    public function getOauthMediaWikiCanonicalServer()
907
    {
908
        return $this->oauthMediaWikiCanonicalServer;
909
    }
910
911
    /**
912
     * @param string $creationBotUsername
913
     *
914
     * @return SiteConfiguration
915
     */
916
    public function setCreationBotUsername($creationBotUsername)
917
    {
918
        $this->creationBotUsername = $creationBotUsername;
919
920
        return $this;
921
    }
922
923
    /**
924
     * @return string
925
     */
926
    public function getCreationBotUsername()
927
    {
928
        return $this->creationBotUsername;
929
    }
930
931
    /**
932
     * @param string $creationBotPassword
933
     *
934
     * @return SiteConfiguration
935
     */
936
    public function setCreationBotPassword($creationBotPassword)
937
    {
938
        $this->creationBotPassword = $creationBotPassword;
939
940
        return $this;
941
    }
942
943
    /**
944
     * @return string
945
     */
946
    public function getCreationBotPassword()
947
    {
948
        return $this->creationBotPassword;
949
    }
950
951
    /**
952
     * @param string|null $curlCookieJar
953
     *
954
     * @return SiteConfiguration
955
     */
956
    public function setCurlCookieJar($curlCookieJar)
957
    {
958
        $this->curlCookieJar = $curlCookieJar;
959
960
        return $this;
961
    }
962
963
    /**
964
     * @return string|null
965
     */
966
    public function getCurlCookieJar()
967
    {
968
        return $this->curlCookieJar;
969
    }
970
971
    public function getYubicoApiId()
972
    {
973
        return $this->yubicoApiId;
974
    }
975
976
    public function setYubicoApiId($id)
977
    {
978
        $this->yubicoApiId = $id;
979
980
        return $this;
981
    }
982
983
    public function getYubicoApiKey()
984
    {
985
        return $this->yubicoApiKey;
986
    }
987
988
    public function setYubicoApiKey($key)
989
    {
990
        $this->yubicoApiKey = $key;
991
992
        return $this;
993
    }
994
995
    /**
996
     * @return string
997
     */
998
    public function getTotpEncryptionKey()
999
    {
1000
        return $this->totpEncryptionKey;
1001
    }
1002
1003
    /**
1004
     * @param string $totpEncryptionKey
1005
     *
1006
     * @return SiteConfiguration
1007
     */
1008
    public function setTotpEncryptionKey($totpEncryptionKey)
1009
    {
1010
        $this->totpEncryptionKey = $totpEncryptionKey;
1011
1012
        return $this;
1013
    }
1014
1015
    /**
1016
     * @return string
1017
     */
1018 1
    public function getIdentificationNoticeboardPage()
1019
    {
1020 1
        return $this->identificationNoticeboardPage;
1021
    }
1022
1023
    /**
1024
     * @param string $identificationNoticeboardPage
1025
     *
1026
     * @return SiteConfiguration
1027
     */
1028
    public function setIdentificationNoticeboardPage($identificationNoticeboardPage)
1029
    {
1030
        $this->identificationNoticeboardPage = $identificationNoticeboardPage;
1031
1032
        return $this;
1033
    }
1034
1035
    public function isRegistrationAllowed(): bool
1036
    {
1037
        return $this->registrationAllowed;
1038
    }
1039
1040
    public function setRegistrationAllowed(bool $registrationAllowed): SiteConfiguration
1041
    {
1042
        $this->registrationAllowed = $registrationAllowed;
1043
1044
        return $this;
1045
    }
1046
1047
    /**
1048
     * @return string|null
1049
     */
1050
    public function getCspReportUri()
1051
    {
1052
        return $this->cspReportUri;
1053
    }
1054
1055
    /**
1056
     * @param string|null $cspReportUri
1057
     *
1058
     * @return SiteConfiguration
1059
     */
1060
    public function setCspReportUri($cspReportUri)
1061
    {
1062
        $this->cspReportUri = $cspReportUri;
1063
1064
        return $this;
1065
    }
1066
1067
    /**
1068
     * @return int
1069
     */
1070
    public function getResourceCacheEpoch(): int
1071
    {
1072
        return $this->resourceCacheEpoch;
1073
    }
1074
1075
    /**
1076
     * @param int $resourceCacheEpoch
1077
     *
1078
     * @return SiteConfiguration
1079
     */
1080
    public function setResourceCacheEpoch(int $resourceCacheEpoch): SiteConfiguration
1081
    {
1082
        $this->resourceCacheEpoch = $resourceCacheEpoch;
1083
1084
        return $this;
1085
    }
1086
1087
    /**
1088
     * @return array
1089
     */
1090
    public function getCommonEmailDomains(): array
1091
    {
1092
        return $this->commonEmailDomains;
1093
    }
1094
1095
    /**
1096
     * @param array $commonEmailDomains
1097
     *
1098
     * @return SiteConfiguration
1099
     */
1100
    public function setCommonEmailDomains(array $commonEmailDomains): SiteConfiguration
1101
    {
1102
        $this->commonEmailDomains = $commonEmailDomains;
1103
1104
        return $this;
1105
    }
1106
1107
    /**
1108
     * @param int[] $banMaxIpBlockRange
1109
     *
1110
     * @return SiteConfiguration
1111
     */
1112
    public function setBanMaxIpBlockRange(array $banMaxIpBlockRange): SiteConfiguration
1113
    {
1114
        $this->banMaxIpBlockRange = $banMaxIpBlockRange;
1115
1116
        return $this;
1117
    }
1118
1119
    /**
1120
     * @return int[]
1121
     */
1122
    public function getBanMaxIpBlockRange(): array
1123
    {
1124
        return $this->banMaxIpBlockRange;
1125
    }
1126
1127
    /**
1128
     * @param int[] $banMaxIpRange
1129
     *
1130
     * @return SiteConfiguration
1131
     */
1132
    public function setBanMaxIpRange(array $banMaxIpRange): SiteConfiguration
1133
    {
1134
        $this->banMaxIpRange = $banMaxIpRange;
1135
1136
        return $this;
1137
    }
1138
1139
    /**
1140
     * @return int[]
1141
     */
1142
    public function getBanMaxIpRange(): array
1143
    {
1144
        return $this->banMaxIpRange;
1145
    }
1146
1147
    /**
1148
     * @param array $oauthLegacyConsumerTokens
1149
     *
1150
     * @return SiteConfiguration
1151
     */
1152
    public function setOauthLegacyConsumerTokens(array $oauthLegacyConsumerTokens): SiteConfiguration
1153
    {
1154
        $this->oauthLegacyConsumerTokens = $oauthLegacyConsumerTokens;
1155
1156
        return $this;
1157
    }
1158
1159
    /**
1160
     * @return array
1161
     */
1162
    public function getOauthLegacyConsumerTokens(): array
1163
    {
1164
        return $this->oauthLegacyConsumerTokens;
1165
    }
1166
1167
    /**
1168
     * @return int
1169
     */
1170
    public function getJobQueueBatchSize(): int
1171
    {
1172
        return $this->jobQueueBatchSize;
1173
    }
1174
1175
    /**
1176
     * @param int $jobQueueBatchSize
1177
     *
1178
     * @return SiteConfiguration
1179
     */
1180
    public function setJobQueueBatchSize(int $jobQueueBatchSize): SiteConfiguration
1181
    {
1182
        $this->jobQueueBatchSize = $jobQueueBatchSize;
1183
1184
        return $this;
1185
}
1186
1187
    /**
1188
     * @return array
1189
     */
1190
    public function getAmqpConfiguration(): array
1191
    {
1192
        return $this->amqpConfiguration;
1193
    }
1194
1195
    /**
1196
     * @param array $amqpConfiguration
1197
     *
1198
     * @return SiteConfiguration
1199
     */
1200
    public function setAmqpConfiguration(array $amqpConfiguration): SiteConfiguration
1201
    {
1202
        $this->amqpConfiguration = $amqpConfiguration;
1203
1204
        return $this;
1205
    }
1206
}
1207