<?php /** * @package VikBooking * @subpackage core * @author E4J s.r.l. * @copyright Copyright (C) 2019 E4J s.r.l. All Rights Reserved. * @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL * @link https://vikwp.com */ // No direct access defined('ABSPATH') or die('No script kiddies please!'); JLoader::import('adapter.mvc.controllers.admin'); /** * VikBooking plugin License controller. * * @since 1.3.12 * @see JControllerAdmin */ class VikBookingControllerLicense extends JControllerAdmin { /** * License Key validation through ajax request. * This task takes also the change-log for the current version. * * @return void */ public function validate() { if (!JFactory::getUser()->authorise('core.admin', 'com_vikbooking')) { // not authorised to view this resource VBOHttpDocument::getInstance()->close(403, JText::translate('RESOURCE_AUTH_ERROR')); } $input = JFactory::getApplication()->input; // get input key $key = $input->getString('key'); // get license model $model = $this->getModel(); // dispatch license key validation $response = $model->validate($key); // make sure the validation went fine if ($response === false) { // nope, retrieve the error $error = $model->getError(null, $toString = false); // an error will be always an exception VBOHttpDocument::getInstance()->close($error->getCode(), $error->getMessage()); } VBOHttpDocument::getInstance()->json($response); } /** * Downloads the PRO version from VikWP servers. * * @return void */ public function downloadpro() { if (!JFactory::getUser()->authorise('core.admin', 'com_vikbooking')) { // not authorised to view this resource VBOHttpDocument::getInstance()->close(403, JText::translate('RESOURCE_AUTH_ERROR')); } $input = JFactory::getApplication()->input; // get input key $key = $input->getString('key'); // get license model $model = $this->getModel(); // dispatch pro version download $response = $model->download($key); // make sure the download went fine if ($response === false) { // nope, retrieve the error $error = $model->getError(null, $toString = false); if (!$error instanceof Exception) { $error = new Exception($error, 500); } // terminate the response with a proper error code VBOHttpDocument::getInstance()->close($error->getCode(), $error->getMessage()); } // downloaded successfully VBOHttpDocument::getInstance()->close(200, 'e4j.OK'); } }