} else { if ($_REQUEST['method'] == 'add') { AddonBoilerplateOutfittersLicense::add(); } else { if ($_REQUEST['method'] == 'test') { //optional param: user_id - test if a specific user has access to the add-on //Sugar 6: /index.php?module=SampleLicenseAddon&action=outfitterscontroller&method=test&to_pdf=1 //Sugar 7: #bwc/index.php?module=SampleLicenseAddon&action=outfitterscontroller&method=test&to_pdf=1 $user_id = null; if (!empty($_REQUEST['user_id'])) { $user_id = $_REQUEST['user_id']; } $validate_license = AddonBoilerplateOutfittersLicense::isValid($currentModule, $user_id, true); if ($validate_license !== true) { echo "License did NOT validate.<br/><br/>Reason: " . $validate_license; $validated = AddonBoilerplateOutfittersLicense::doValidate($currentModule); if (is_array($validated['result'])) { echo "<br/><br/>Key validation = " . !empty($validated['result']['validated']); require 'modules/' . $currentModule . '/license/config.php'; if ($outfitters_config['validate_users'] == true) { echo "<br/>User validation = " . !empty($validated['result']['validated_users']); echo "<br/>Licensed User Count = " . $validated['result']['licensed_user_count']; echo "<br/>Current User Count = " . $validated['result']['user_count']; if ($validated['result']['user_count'] > $validated['result']['licensed_user_count']) { echo "<br/><br/>Additional Users Required = " . ($validated['result']['user_count'] - $validated['result']['licensed_user_count']); } } } } else { echo "License validated"; }
/** * For validation via client-side (used by License Configuration form) * * Does NOT obey the validation_frequency setting. Validates every time. * This function is meant to be used only on the License Configuration screen for a specific add-on */ public static function validate() { $json = getJSONobj(); if (empty($_REQUEST['key'])) { header('HTTP/1.1 400 Bad Request'); $response = "Key is required."; echo $json->encode($response); exit; } global $sugar_config, $currentModule; //load license validation config require 'modules/' . $currentModule . '/license/config.php'; $validated = AddonBoilerplateOutfittersLicense::doValidate($currentModule, $_REQUEST['key']); $store = array('last_ran' => time(), 'last_result' => $validated); require_once 'modules/Administration/Administration.php'; $administration = new Administration(); $serialized = base64_encode(serialize($store)); $administration->saveSetting('SugarOutfitters', $outfitters_config['shortname'], $serialized); if ($validated['success'] === false) { header('HTTP/1.1 400 Bad Request'); } else { //use config_override.php...config.php has a higher chance of having rights restricted on servers global $currentModule; //load license validation config require 'modules/' . $currentModule . '/license/config.php'; require 'modules/Configurator/Configurator.php'; $cfg = new Configurator(); $cfg->config['outfitters_licenses'][$outfitters_config['shortname']] = $_REQUEST['key']; $cfg->handleOverride(); } echo $json->encode($validated['result']); }