<name>com.woltlab.wcf.search</name>
<definitionname>com.woltlab.wcf.floodControl</definitionname>
</type>
+ <type>
+ <name>com.woltlab.wcf.moderation.report</name>
+ <definitionname>com.woltlab.wcf.floodControl</definitionname>
+ </type>
<!-- deprecated -->
<type>
<name>com.woltlab.wcf.page.controller</name>
namespace wcf\data\moderation\queue;
+use wcf\system\exception\NamedUserException;
use wcf\system\exception\PermissionDeniedException;
use wcf\system\exception\UserInputException;
+use wcf\system\flood\FloodControl;
use wcf\system\moderation\queue\ModerationQueueReportManager;
use wcf\system\WCF;
use wcf\util\StringUtil;
*/
class ModerationQueueReportAction extends ModerationQueueAction
{
+ private const ALLOWED_REPORTS_PER_10M = 10;
+
/**
* @inheritDoc
*/
$this->parameters['message'] = \mb_substr($this->parameters['messages'], 0, 64000);
}
+ $requests = FloodControl::getInstance()->countContent(
+ 'com.woltlab.wcf.moderation.report',
+ new \DateInterval('PT10M')
+ );
+ if ($requests['count'] >= self::ALLOWED_REPORTS_PER_10M) {
+ throw new NamedUserException(WCF::getLanguage()->getDynamicVariable('wcf.page.error.flood'));
+ }
+
$this->validatePrepareReport();
}
);
}
+ FloodControl::getInstance()->registerContent('com.woltlab.wcf.moderation.report');
+
return [
'reported' => 1,
];