public function check() { try { $data = $this->getData(true); if (!isset($_COOKIE['key'])) { $data['key'] = uniqid(); setcookie('key', $data['key']); } else { $data['key'] = $_COOKIE['key']; } $checker = new CompatibilityCheckerModel($data); $store = new DataStorage($data); $isCompatible = $checker->isCompatibleConfig(); if ($store->setIsCompatible($isCompatible)->storeData($isCompatible)) { if ($isCompatible) { $this->returnJson(array('success' => true, 'type' => 'success', 'message' => __('Compatible'))); return; } } $this->returnJson(array('success' => true, 'type' => 'error', 'message' => __('Your system requires a compatibility update, please contact your system administrator.'))); } catch (\common_exception_MissingParameter $e) { $this->returnJson(array('success' => false, 'type' => 'error', 'message' => $e->getUserMessage())); } }
/** * Check if requester is compatible (os+browser) * Register compatibility * return json message */ public function check() { try { $data = $this->getData(true); $id = $this->getId(); $checker = new CompatibilityCheckerModel($data); $isCompatible = (int) $checker->isCompatibleConfig(); $data['compatible'] = $isCompatible; try { $storageService = $this->getServiceManager()->get(Storage::SERVICE_ID); $storageService->store($id, $data); } catch (StorageException $e) { \common_Logger::i($e->getMessage()); } $compatibilityMessage = ['0' => ['success' => true, 'type' => 'error', 'message' => __('Your system requires a compatibility update, please contact your system administrator.')], '1' => ['success' => true, 'type' => 'success', 'message' => __('Compatible')], '2' => ['success' => true, 'type' => 'warning', 'message' => __('This browser is not tested.')]]; $this->returnJson($compatibilityMessage[$isCompatible]); } catch (\common_exception_MissingParameter $e) { $this->returnJson(array('success' => false, 'type' => 'error', 'message' => $e->getUserMessage())); } }