Skip to content

Add Helpdesk message rate limit

Add this code to site.php file:

//Lock user if he submit more than 10 message within 1 day
Am_Di::getInstance()->hook->add('helpdeskMessageAfterInsert', function(Am_Event $e) {
/** @var HelpdeskMessage $msg */
$msg = $e->getMessage();
$user = $msg->getTicket()->getUser();
$cnt = $e->getDi()->db->selectCell(<<<CUT
SELECT COUNT(*) FROM ?_helpdesk_message m
LEFT JOIN ?_helpdesk_ticket t USING (ticket_id)
WHERE m.admin_id IS NULL
AND t.user_id=?
AND dattm > ?
CUT, $user->pk(), sqlTime('-1day'));
if ($cnt > 10) {
$user->lock(true);
}
});