/** * Display form for license activation * * @return \Symfony\Component\HttpFoundation\Response */ public function aboutAction() { $oLicense = LicenseQuery::create()->findOne(); // include symfony requirements class require_once dirname(__FILE__) . '/../../../../app/SymfonyRequirements.php'; $symfonyRequirements = new \SymfonyRequirements(); // add additional requirement for mcrypt $symfonyRequirements->addRequirement(extension_loaded('mcrypt'), "Check if mcrypt ist loaded for RSA encryption", "Please enable mcrypt-Extension. See <a href='http://php.net/manual/de/mcrypt.setup.php'>http://php.net/manual/de/mcrypt.setup.php</a>"); // fetch all data $aRequirements = $symfonyRequirements->getRequirements(); $aRecommendations = $symfonyRequirements->getRecommendations(); $aFailedRequirements = $symfonyRequirements->getFailedRequirements(); $aFailedRecommendations = $symfonyRequirements->getFailedRecommendations(); $iniPath = $symfonyRequirements->getPhpIniConfigPath(); $sVersion = file_get_contents(dirname(__FILE__) . '/../../../../version.txt'); return $this->render('SlashworksAppBundle:About:about.html.twig', array("license" => $oLicense, "version" => $sVersion, "iniPath" => $iniPath, "requirements" => $aRequirements, "recommendations" => $aRecommendations, "failedrequirements" => $aFailedRequirements, "failedrecommendations" => $aFailedRecommendations)); }
/** * Removes this object from datastore and sets delete attribute. * * @param PropelPDO $con * @return void * @throws PropelException * @throws Exception * @see BaseObject::setDeleted() * @see BaseObject::isDeleted() */ public function delete(PropelPDO $con = null) { if ($this->isDeleted()) { throw new PropelException("This object has already been deleted."); } if ($con === null) { $con = Propel::getConnection(LicensePeer::DATABASE_NAME, Propel::CONNECTION_WRITE); } $con->beginTransaction(); try { $deleteQuery = LicenseQuery::create()->filterByPrimaryKey($this->getPrimaryKey()); $ret = $this->preDelete($con); if ($ret) { $deleteQuery->delete($con); $this->postDelete($con); $con->commit(); $this->setDeleted(true); } else { $con->commit(); } } catch (Exception $e) { $con->rollBack(); throw $e; } }
/** * Update license * * @param \Symfony\Component\HttpFoundation\Request $request * * @return \Symfony\Component\HttpFoundation\RedirectResponse|\Symfony\Component\HttpFoundation\Response * @throws \Exception * @throws \PropelException */ public function updateAction(Request $request) { /** @var License $oLicense */ $oLicense = LicenseQuery::create()->findOne(); if ($oLicense === null) { throw $this->createNotFoundException('Unable to find License entity.'); } $editForm = $this->createEditForm($oLicense); $editForm->handleRequest($request); $aResult = array("success" => false, "message" => ""); $sLico = SystemSettings::get("lico"); $aHeaders = array('Content-Type: application/json'); $sDomain = $this->_getSiteURL(); $aRequest = array('lico' => array('domain' => $sDomain, 'license' => $oLicense->getSerial())); $sRequest = json_encode($aRequest); /* * Check license against license-server */ $oRequest = curl_init($sLico . "/api/check/license"); curl_setopt($oRequest, CURLOPT_HTTPHEADER, $aHeaders); curl_setopt($oRequest, CURLOPT_TIMEOUT, 120); curl_setopt($oRequest, CURLOPT_POST, 1); curl_setopt($oRequest, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($oRequest, CURLOPT_SSL_VERIFYHOST, false); curl_setopt($oRequest, CURLOPT_POSTFIELDS, $sRequest); curl_setopt($oRequest, CURLOPT_RETURNTRANSFER, true); $response = curl_exec($oRequest); $iHttpStatus = curl_getinfo($oRequest, CURLINFO_HTTP_CODE); $error = curl_error($oRequest); curl_close($oRequest); if ($iHttpStatus == 200) { $oResponse = json_decode($response); if ($editForm->isValid() && $oResponse->valid == true) { $aResult['max_clients'] = $oResponse->max_clients; $aResult['valid_until'] = $oResponse->valid_until; $aResult['domain'] = $sDomain; $aResult['success'] = true; $aResult['message'] = $this->get("translator")->trans("license.update.successful"); // license valid, save new license-data $oLicense->setValidUntil($aResult['valid_until']); $oLicense->setMaxClients($aResult['max_clients']); $oLicense->setDomain($sDomain); $oLicense->save(); } else { $aResult['success'] = false; $aResult['message'] = $this->get("translator")->trans("license.update.failed"); $aResult['valid_until'] = strtotime("1970-01-01"); $aResult['max_clients'] = 0; $aResult['domain'] = "-"; } } else { $aResult['max_clients'] = $oLicense->getMaxClients(); $aResult['valid_until'] = strtotime($oLicense->getValidUntil()); $aResult['domain'] = $sDomain; $aResult['success'] = false; $aResult['message'] = $this->get("translator")->trans("license.update.failed_lico"); } $sResult = json_encode($aResult); $response = new Response($sResult); $response->headers->set('Content-Type', 'application/json'); return $response; }