Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/phabricator
Path: blob/master/src/aphront/handler/PhabricatorRateLimitRequestExceptionHandler.php
12241 views
1
<?php
2
3
final class PhabricatorRateLimitRequestExceptionHandler
4
extends PhabricatorRequestExceptionHandler {
5
6
public function getRequestExceptionHandlerPriority() {
7
return 300000;
8
}
9
10
public function getRequestExceptionHandlerDescription() {
11
return pht(
12
'Handles action rate limiting exceptions which occur when a user '.
13
'does something too frequently.');
14
}
15
16
public function canHandleRequestThrowable(
17
AphrontRequest $request,
18
$throwable) {
19
20
if (!$this->isPhabricatorSite($request)) {
21
return false;
22
}
23
24
return ($throwable instanceof PhabricatorSystemActionRateLimitException);
25
}
26
27
public function handleRequestThrowable(
28
AphrontRequest $request,
29
$throwable) {
30
31
$viewer = $this->getViewer($request);
32
33
return id(new AphrontDialogView())
34
->setTitle(pht('Slow Down!'))
35
->setUser($viewer)
36
->setErrors(array(pht('You are being rate limited.')))
37
->appendParagraph($throwable->getMessage())
38
->appendParagraph($throwable->getRateExplanation())
39
->addCancelButton('/', pht('Okaaaaaaaaaaaaaay...'));
40
}
41
42
}
43
44