public function grantCredits() { if (!OW::getRequest()->isAjax()) { throw new Redirect404Exception(); } if (!OW::getUser()->isAuthenticated()) { throw new AuthenticateException(); } $form = new USERCREDITS_CLASS_GrantCreditsForm(); if ($form->isValid($_POST)) { $lang = OW::getLanguage(); $creditService = USERCREDITS_BOL_CreditsService::getInstance(); $grantorId = OW::getUser()->getId(); $values = $form->getValues(); $userId = (int) $values['userId']; $amount = abs((int) $values['amount']); $granted = $creditService->grantCredits($grantorId, $userId, $amount); $credits = $creditService->getCreditsBalance($grantorId); if ($granted) { $data = array('amount' => $amount, 'grantorId' => $grantorId, 'userId' => $userId); $event = new OW_Event('usercredits.grant', $data); OW::getEventManager()->trigger($event); $data = array('message' => $lang->text('usercredits', 'credits_granted', array('amount' => $amount)), 'credits' => $credits); } else { $data = array('error' => $lang->text('usercredits', 'credits_grant_error')); } exit(json_encode($data)); } }