Find this useful? Enter your email to receive occasional updates for securing PHP code.
Signing you up...
Thank you for signing up!
PHP Decode
<?php $__='printf';$_='Loading AwarenessController'; ..
Decoded Output download
b'
/**
* Awareness controller.
*/
class AwarenessController extends Controller {
/**
* @return array action filters
*/
public function filters() {
return [
"ajaxOnly + quizScore, quizReset, reschedule, updateCertificateStatus, quizSetVariable, quizResults, quizGetVariable, scormPassed",
"postOnly + quizScore, quizReset, reschedule, updateCertificateStatus, quizSetVariable, quizResults, quizGetVariable, scormPassed",
];
}
/**
* Get 404 template
* @return string
* @throws Exception
*/
private function _getNotFoundTemplate() {
$domain = $_SERVER["HTTP_HOST"];
if ($this->_system->web_proxy_mode == System::PROXY_MASTER && isset($_SERVER["HTTP_X_FORWARDED_HOST"])) {
$domain = $_SERVER["HTTP_X_FORWARDED_HOST"];
}
$dm = new DomainManager();
return $dm->getNotFoundContent($domain);
}
/**
* Get a victim based on data from cookies
* @return Victim
* @throws Exception
*/
private function _getVictimByCookie() {
$link = filter_input(INPUT_COOKIE, CookieManager::COOKIE_AWARENESS_LINK);
$victimManager = new VictimManager();
if ($link) {
$victim = $victimManager->getVictim($link, true);
} else {
$victim = $this->_getDirectLoginVictim();
}
if (!$victim) {
throw new Exception(Yii::t("app", "User not found."));
}
return $victim;
}
/**
* Show awareness website
* @param string $link
* @param integer $language
* @param string $page
* @throws CHttpException
*/
public function actionShow($link, $language=null, $page="index") {
$this->_show($link, $page, $language, null, true);
}
/**
* Show awareness library website
* @param string $link
* @param integer $library
* @param integer $language
* @param string $page
* @throws CHttpException
*/
public function actionLibraryShow($link, $library, $language=null, $page="index") {
$this->_show($link, $page, $language, $library, true);
}
/**
* Show awareness website
* @param string $link
* @param string $page
* @param integer|null $languageId
* @param integer $library
* @param bool $preview
* @throws CHttpException
*/
private function _show($link, $page, $languageId = null, $library = 0, $preview = false) {
if ($library) {
$page = "static" . DS . CampaignAwarenessManager::LIBRARY_DIR . DS . $library . DS . $page;
}
/** @var CampaignAwareness $awareness */
$awareness = CampaignAwareness::model()->findByAttributes([
"public_id" => $link
]);
if (!$awareness || !$awareness->website_online) {
throw new CHttpException(404, Yii::t("app", "Page not found."));
}
$type = !$awareness->template->scorm ? TemplateFileTypes::TYPE_AWARENESS_CONTENT : TemplateFileTypes::TYPE_AWARENESS_SCORM_CONTENT;
if ($awareness->ssl && !Yii::app()->getRequest()->isSecureConnection) {
$this->redirectToHttps();
return;
}
try {
$awarenessWebsite = new AwarenessWebsite();
$awarenessWebsite->setAwareness($awareness);
if ($languageId) {
$language = Language::model()->findByPk($languageId);
if (!$language) {
throw new CHttpException(404, Yii::t("app", "Page not found."));
}
} else {
$language = $awareness->language;
}
if (!$awareness->template->scorm) {
// override campaign language setting from the URL parameter
$awarenessWebsite->setLanguage($language);
}
$awarenessWebsite->setLibrary((integer)$library);
$awarenessWebsite->show($page, $type, null, $preview);
} catch (Exception $e) {
throw new CHttpException(404, Yii::t("app", "Page not found."));
}
}
/**
* Show awareness adapt website
* @param string $link
* @param string $page
* @throws CHttpException
*/
public function actionShowAdapt($link, $page="index") {
/** @var CampaignAwareness $awareness */
$awareness = CampaignAwareness::model()->findByAttributes([
"public_id" => $link
]);
if (!$awareness || !$awareness->website_online) {
throw new CHttpException(404, Yii::t("app", "Page not found."));
}
if ($awareness->ssl && !Yii::app()->getRequest()->isSecureConnection && !Yii::app()->system->isSaas()) {
$this->redirectToHttps();
return;
}
try {
$awarenessWebsite = new AwarenessWebsite();
$awarenessWebsite->setAwareness($awareness);
if (in_array($page, ["index", "index.html"])) {
$awarenessWebsite->show($page, TemplateFileTypes::TYPE_AWARENESS_ADAPT_CONTENT, null, true);
} else {
$awarenessWebsite->echoFile($page);
}
} catch (Exception $e) {
throw new CHttpException(404, Yii::t("app", "Page not found."));
}
}
/**
* Export data to SCORM
* @param $id
* @param $type
* @param $language
* @throws CHttpException
*/
public function actionExport($id, $type, $language) {
/** @var AwarenessTemplate $template */
$template = AwarenessTemplate::model()->findByPk($id);
if ($template && in_array(intval($type), Export::getValidTypes())) {
$exportManager = new ExportManager();
$exportManager->generateExport(
Yii::t("app", "Awareness Template") . " - " . $template->name,
$type,
Export::EXTENSION_ZIP,
null,
null,
[
"template" => $template->id,
"language" => $language
]
);
return $this->redirect(["export/index"]);
} else {
throw new CHttpException(404, Yii::t("app", "Export is not valid."));
}
}
/**
* Re-schedule the awareness training
* @throws Exception
*/
public function actionReschedule() {
$response = new AjaxResponse();
try {
$vm = new VictimManager();
$victim = $vm->getVictim(Yii::app()->request->getPost("link"), true);
if (!$victim) {
throw new CHttpException(404, Yii::t("app", "Page not found."));
}
if (!$victim->awareness || !$victim->awareness->website_online) {
throw new CHttpException(404, Yii::t("app", "Page not found."));
}
$date = DateTime::createFromFormat(ISO_DATE_TIME, Yii::app()->request->getPost("datetime"), new DateTimeZone("UTC"));
$date->setTimezone(new DateTimeZone(Yii::app()->system->timezone));
if ($date && !$victim->tracked_email) {
$dateTime = $date->format(ISO_DATE_TIME);
$victim->trained = false;
$victim->awareness_resend_date = date(ISO_DATE_TIME, strtotime($dateTime));
$victim->saveAttributes(["trained", "awareness_resend_date"]);
}
} catch (Exception $e) {
$response->setError($e->getMessage());
}
echo $response->serialize();
}
/**
* Show awareness website for a victim
* @param string $link
* @param string $page
* @throws Exception
*/
public function actionShowVictim($link, $page="index") {
$this->_showVictim($link, $page);
}
/**
* Show awareness library website for a victim
* @param string $link
* @param integer $library
* @param string $page
* @throws Exception
*/
public function actionLibraryShowVictim($link, $library, $page="index") {
$this->_showVictim($link, $page, $library);
}
/**
*
* @param $link
* @param string $page
* @throws Exception
*/
public function actionShowSsoVictim($link, $page="index") {
$this->_processPage($link, $page);
}
/**
*
* @param $link
* @param $library
* @param string $page
* @throws Exception
*/
public function actionLibraryShowSsoVictim($link, $library, $page="index") {
$this->_processPage($link, $page, $library);
}
/**
* Show awareness adapt website for a victim
* @param string $link
* @param string $page
* @throws Exception
*/
public function actionShowSsoAdaptVictim($link, $page="index") {
$this->_processPage($link, $page, 0, TemplateFileTypes::TYPE_AWARENESS_ADAPT_CONTENT);
}
/**
* Determine sso, direct login url and show page
* @param $link
* @param $page
* @param int $library
* @param string $type
* @throws Exception
*/
private function _processPage($link, $page, $library = 0 , $type = TemplateFileTypes::TYPE_AWARENESS_CONTENT) {
$ssoManager = new SsoManager();
if (
$ssoManager->samlEnabled() &&
$ssoManager->isSso(Yii::app()->request->requestUri) &&
$ssoManager->isSsoAwareness(Yii::app()->request->requestUri) &&
$ssoManager->isAuthenticated() || SsoBaseManager::isOauthEnabled() && !Yii::app()->user->isGuest
) {
$this->_showSsoVictim($link, $page, $library, $type);
} else {
$token = Yii::app()->request->getParam("directLoginToken", null);
$user = !Yii::app()->user->isGuest ? Yii::app()->user->getUser() : null;
$enduserManager = new EnduserManager();
if (!$token && $user && $user->role_id == $enduserManager->getRoleId()) {
$token = @urlencode(SecurityManager::encrypt($user->email));
}
if ($token) {
$this->_showAwareness($token, $link, $page, $library);
} else {
$this->_show($link, $page, null, $library);
}
}
}
/**
* Show awareness website (sso) for a victim
* @param string $link
* @param string $page
* @param int $library
* @param string $type
* @throws Exception
*/
private function _showSsoVictim($link, $page="index", $library = 0, $type = TemplateFileTypes::TYPE_AWARENESS_CONTENT) {
if ($library) {
$page = "static" . DS . CampaignAwarenessManager::LIBRARY_DIR . DS . $library . DS . $page;
}
$ssoManager = new SsoManager();
try {
/** @var CampaignAwareness $awareness */
$awareness = CampaignAwareness::model()->findByAttributes([
"public_id" => $link
]);
$victim = $ssoManager->loginAwareness($awareness);
if (
!$victim ||
!$victim->awareness ||
!$victim->awareness->website_online
) {
throw new CHttpException(404, Yii::t("app", "Page not found."));
}
$victimManager = new VictimManager();
$victimManager->checkFilterRules($victim, $_SERVER);
if (!$victim->awareness->campaign->isRunning()) {
throw new Exception(Yii::t("app", "Campaign is not running."));
}
$token = SecurityManager::encrypt($victim->recipient->email);
CookieManager::set(
null,
null,
CookieManager::COOKIE_ENDUSER_DIRECT_LOGIN,
@urlencode($token),
0,
"/"
);
CookieManager::set(
null,
null,
CookieManager::COOKIE_CAMPAIGN_DIRECT_LOGIN,
@urlencode(SecurityManager::encrypt($awareness->campaign_id)),
0,
"/"
);
setcookie(CookieManager::COOKIE_AWARENESS_LINK, $victim->link, null, "/");
$victimQuizResult = $victim->getVictimQuizResult($library);
$eum = new EnduserManager();
$eum->updateAwarenessHistory($victimQuizResult);
$awarenessWebsite = new AwarenessWebsite();
$awarenessWebsite->setVictim($victim);
switch ($type) {
case TemplateFileTypes::TYPE_AWARENESS_CONTENT:
$awarenessWebsite->setLibrary((integer)$library);
$type = !$victim->awareness->template->scorm ? TemplateFileTypes::TYPE_AWARENESS_CONTENT : TemplateFileTypes::TYPE_AWARENESS_SCORM_CONTENT;
$awarenessWebsite->show($page, $type, $victim);
break;
case TemplateFileTypes::TYPE_AWARENESS_ADAPT_CONTENT:
if (in_array($page, ["index", "index.html"])) {
$awarenessWebsite->show($page, $type);
} else {
$awarenessWebsite->echoFile($page);
}
}
} catch (Exception $e) {
Yii::log($e->getMessage() . "
" . $e->getTraceAsString(), CLogger::LEVEL_ERROR);
http_response_code(404);
echo $this->_getNotFoundTemplate();
}
}
/**
* Show awareness page by token
* @param $token
* @param $publicId
* @param string $page
* @param int $library
* @throws Exception
*/
private function _showAwareness($token, $publicId, $page="index", $library = 0) {
$victimManager = new VictimManager();
$awarenessWebsite = new AwarenessWebsite();
$awareness = null;
try {
$victimEmail = $awarenessWebsite->getEnduserDirectLoginEmailFromToken($token);
/** @var CampaignAwareness $awareness */
$awareness = CampaignAwareness::model()->findByAttributes([
"public_id" => $publicId
]);
$campaignId = $awareness ? $awareness->campaign_id : null;
/** @var Victim $victim */
$victim = $victimManager->getVictimByEmail($victimEmail, $campaignId, $awareness);
if ($campaignId) {
CookieManager::set(
null,
null,
CookieManager::COOKIE_CAMPAIGN_DIRECT_LOGIN,
@urlencode(SecurityManager::encrypt($campaignId)),
0,
"/"
);
}
if (!$victim) {
throw new CHttpException(404, Yii::t("app", "Page not found."));
}
$victimManager->checkFilterRules($victim, $_SERVER);
CookieManager::set(
null,
null,
CookieManager::COOKIE_ENDUSER_DIRECT_LOGIN,
@urlencode(SecurityManager::encrypt($victim->recipient->email)),
0,
"/"
);
$this->_loadAwareness($victim, $page, $library, $awareness);
} catch (Exception $e) {
Yii::log($e->getMessage() . "
" . $e->getTraceAsString(), CLogger::LEVEL_ERROR);
http_response_code(404);
echo $this->_getNotFoundTemplate();
}
}
/**
* Show awareness website for a victim
* @param string $link
* @param string $page
* @param integer|null $library
* @throws Exception
*/
private function _showVictim($link, $page="index", $library = 0) {
try {
$victimManager = new VictimManager();
$victim = $victimManager->getVictim($link, true);
$this->_loadAwareness($victim, $page, $library);
} catch (Exception $e) {
Yii::log($e->getMessage() . "
" . $e->getTraceAsString(), CLogger::LEVEL_ERROR);
http_response_code(404);
echo $this->_getNotFoundTemplate();
}
}
/**
* Show awareness page for awareness
* @param Victim $victim
* @param string $page
* @param int $library
* @param int|null $awareness
* @throws Exception
* @throws CHttpException
*/
private function _loadAwareness(Victim $victim, $page="index", $library = 0, $awareness = null) {
if ($library) {
$page = "static" . DS . CampaignAwarenessManager::LIBRARY_DIR . DS . $library . DS . $page;
}
if (
!$victim ||
!$victim->awareness ||
!$victim->awareness->website_online
) {
throw new CHttpException(404, Yii::t("app", "Page not found."));
}
$victimManager = new VictimManager();
$victimManager->checkFilterRules($victim, $_SERVER);
if (!$victim->awareness->campaign->isRunning()) {
throw new Exception(Yii::t("app", "Campaign is not running."));
}
if ($victim->awareness->template->scorm) {
$type = TemplateFileTypes::TYPE_AWARENESS_SCORM_CONTENT;
} elseif ($victim->awareness->website_type == CampaignAwareness::TYPE_REGULAR) {
$type = TemplateFileTypes::TYPE_AWARENESS_CONTENT;
} else {
$type = TemplateFileTypes::TYPE_AWARENESS_ADAPT_CONTENT;
}
if ($type == TemplateFileTypes::TYPE_AWARENESS_ADAPT_CONTENT) {
return $this->redirect(["awareness/showAdaptVictim", "link" => $victim->link, "page" => $page]);
}
setcookie(CookieManager::COOKIE_AWARENESS_LINK, $victim->link, null, "/");
$victimQuizResult = $victim->getVictimQuizResult((integer)$library);
$enduserManager = new EnduserManager();
$enduserManager->updateAwarenessHistory($victimQuizResult);
$awarenessWebsite = new AwarenessWebsite();
$awarenessWebsite->setLibrary((integer)$library);
$awarenessWebsite->setVictim($victim, $victimQuizResult);
if ($awareness) {
$awarenessWebsite->setAwareness($awareness);
}
$awarenessWebsite->show($page, $type, $victim);
}
/**
* Show awareness adapt website for a victim
* @param string $link
* @param string $page
* @throws Exception
*/
public function actionShowAdaptVictim($link, $page="index") {
try {
$victimManager = new VictimManager();
$victim = $victimManager->getVictim($link, true);
if (
!$victim ||
!$victim->awareness
) {
throw new CHttpException(404, Yii::t("app", "Page not found."));
}
$victimManager->checkFilterRules($victim, $_SERVER);
if (!$victim->awareness->campaign->isRunning()) {
throw new Exception(Yii::t("app", "Campaign is not running."));
}
setcookie(CookieManager::COOKIE_AWARENESS_LINK, $link, null, "/");
$eum = new EnduserManager();
$eum->updateAwarenessHistory($victim->getVictimQuizResult());
$awarenessWebsite = new AwarenessWebsite();
$awarenessWebsite->setVictim($victim);
if (in_array($page, ["index", "index.html"])) {
$type = $victim->awareness->template->scorm ? TemplateFileTypes::TYPE_AWARENESS_SCORM_CONTENT : TemplateFileTypes::TYPE_AWARENESS_ADAPT_CONTENT;
$awarenessWebsite->show($page, $type);
} else {
$awarenessWebsite->echoFile($page);
}
} catch (Exception $e) {
Yii::log($e->getMessage() . "
" . $e->getTraceAsString(), CLogger::LEVEL_ERROR);
http_response_code(404);
echo $this->_getNotFoundTemplate();
}
}
/**
* Get direct login victim
* @return null|Victim
* @throws Exception
*/
private function _getDirectLoginVictim() {
$link = CookieManager::get(null, null, CookieManager::COOKIE_ENDUSER_DIRECT_LOGIN);
$campaignCookie = CookieManager::get(null, null, CookieManager::COOKIE_CAMPAIGN_DIRECT_LOGIN);
$victim = null;
if ($link) {
$awarenessWebsite = new AwarenessWebsite();
$email = null;
$campaignId = null;
try {
$email = $awarenessWebsite->getEnduserDirectLoginEmailFromToken($link);
$campaignId = $awarenessWebsite->getEnduserDirectLoginEmailFromToken($campaignCookie);
} catch (Exception $e) {
Yii::log($e->getMessage() . "
" . $e->getTraceAsString(), CLogger::LEVEL_ERROR);
}
if ($email) {
$victimManager = new VictimManager();
$victim = $victimManager->getVictimByEmail($email, $campaignId, null);
}
}
return $victim;
}
/**
* Track Time
* @throws Exception
*/
public function actionTrackTime() {
$data = file_get_contents(\'php://input\');
$data = json_decode(rawurldecode($data), true);
if (!isset($data["page"]) || empty($data["time"])) {
throw new Exception("Invalid params.");
}
$victim = null;
$link = filter_input(INPUT_COOKIE, CookieManager::COOKIE_AWARENESS_LINK);
if ($link) {
$vm = new VictimManager();
$victim = $vm->getVictim($link, true);
} else {
$victim = $this->_getDirectLoginVictim();
}
if ($victim) {
TrackTimeJob::enqueue([
"object" => "awareness",
"victim" => $victim->id,
"page" => $data["page"],
"time" => $data["time"]
]);
}
$this->sendCorsHeader();
}
/**
* Quiz start
* @param integer $id
*/
public function actionQuizStart($id = 0) {
$response = new AjaxResponse();
try {
$victim = $this->_getVictimByCookie();
if (isset($_POST["AwarenessQuizForm"])) {
$form = new AwarenessQuizForm();
$form->attributes = $_POST["AwarenessQuizForm"];
$form->scenario = AwarenessQuizForm::START_QUIZ;
if (!$form->validate()) {
throw new Exception(Yii::t("app", "Invalid request."));
}
if (isset($form->quizNumber, $form->questionsCount)) {
$quizResult = $victim->getVictimQuizResult($id, $form->quizNumber);
$quizResult->questions_count = $form->questionsCount;
$quizResult->saveAttributes(["questions_count"]);
}
}
$quizNumber = isset($form->quizNumber) ? $form->quizNumber : 0;
$victimManager = new VictimManager();
$awarenessWebsite = $victimManager->getAwarenessWebsite($victim, $id, $quizNumber);
$awarenessWebsite->quizStart();
} catch (Exception $e) {
$response->setError($e->getMessage());
}
echo $response->serialize();
}
/**
* Quiz end
*/
public function actionScormPassed() {
$response = new AjaxResponse();
try {
$victim = $this->_getVictimByCookie();
if (!$victim->trained_at && !$victim->trained) {
$victim->trained_at = date(ISO_DATE_TIME);
$victim->trained = true;
$victim->saveAttributes(["trained", "trained_at"]);
}
} catch (Exception $e) {
$response->setError($e->getMessage());
}
echo $response->serialize();
}
/**
* Quiz end
* @param integer|null $id
*/
public function actionQuizEnd($id = 0) {
$response = new AjaxResponse();
try {
$victim = $this->_getVictimByCookie();
if (empty($victim->awareness->quiz_end_enabled)) {
throw new Exception(Yii::t("app", "Quiz end disabled."));
}
if (isset($_POST["AwarenessQuizForm"])) {
$form = new AwarenessQuizForm();
$form->attributes = $_POST["AwarenessQuizForm"];
if (!$form->validate()) {
throw new Exception(Yii::t("app", "Invalid request."));
}
}
$quizNumber = isset($form->quizNumber) ? $form->quizNumber : 0;
$victimManager = new VictimManager();
$awarenessWebsite = $victimManager->getAwarenessWebsite($victim, $id, $quizNumber);
$awarenessWebsite->quizEnd();
} catch (Exception $e) {
$response->setError($e->getMessage());
}
echo $response->serialize();
}
/**
* Get quiz results
* @param integer|null $id
*/
public function actionQuizResults($id = 0) {
$response = new AjaxResponse();
try {
if (!isset($_POST["AwarenessQuizForm"])) {
throw new Exception(Yii::t("app", "The quiz number is required."));
}
$victim = $this->_getVictimByCookie();
$form = new AwarenessQuizForm();
$form->attributes = $_POST["AwarenessQuizForm"];
if (!$form->validate()) {
throw new Exception(Yii::t("app", "Invalid request."));
}
$victimManager = new VictimManager();
list($results, $trained_at) = $victimManager->getQuizResults($victim, $form->quizNumber, $id);
$response->addData("trained", !empty($trained_at));
$response->addData("trained_at", empty($trained_at) ? "" : $trained_at);
$response->addData("results", $results);
} catch (Exception $e) {
$response->setError($e->getMessage());
}
echo $response->serialize();
}
/**
* Set quiz variable
* @param integer|null $id
*/
public function actionQuizSetVariable() {
$response = new AjaxResponse();
try {
if (!isset($_POST["AwarenessQuizForm"])) {
throw new Exception(Yii::t("app", "The variable name and value are required."));
}
$victim = $this->_getVictimByCookie();
$form = new AwarenessQuizForm();
$form->attributes = $_POST["AwarenessQuizForm"];
if (!$form->validate()) {
throw new Exception(Yii::t("app", "Invalid request."));
}
$victimManager = new VictimManager();
$victimManager->setVariable($victim, $form->variableName, $form->variableValue);
} catch (Exception $e) {
$response->setError($e->getMessage());
}
echo $response->serialize();
}
/**
* Get quiz variable
* @param integer|null $id
*/
public function actionQuizGetVariable() {
$response = new AjaxResponse();
try {
if (!isset($_POST["AwarenessQuizForm"])) {
throw new Exception(Yii::t("app", "The variable name is required."));
}
$victim = $this->_getVictimByCookie();
$form = new AwarenessQuizForm();
$form->attributes = $_POST["AwarenessQuizForm"];
$victimManager = new VictimManager();
$variable = $victimManager->getVariable($victim, $form->variableName, $form->variableValue);
$response->addData($form->variableName, $variable);
} catch (Exception $e) {
$response->setError($e->getMessage());
}
echo $response->serialize();
}
/**
* Quiz score
* @param integer|null $id
*/
public function actionQuizScore($id = 0) {
$response = new AjaxResponse();
try {
$victim = null;
$victim = $this->_getVictimByCookie();
$form = new AwarenessQuizForm();
$form->attributes = $_POST["AwarenessQuizForm"];
$form->scenario = AwarenessQuizForm::ANSWER;
if (!$form->validate()) {
throw new Exception(Yii::t("app", "Invalid request."));
}
if (!$victim->awareness || !$victim->awareness->website_online || !$victim->awareness->quiz) {
throw new Exception(Yii::t("app", "Awareness website is offline or has no quiz."));
}
$quizNumber = isset($form->quizNumber) ? $form->quizNumber : 0;
$campaign = $victim->scenario->campaign;
$victimQuizResult = $victim->getVictimQuizResult($id, $quizNumber);
if ($campaign->awareness_quiz_ban) {
$answers = PgArrayManager::decode($victimQuizResult->quiz_answers);
$answerTimes = PgArrayManager::decode($victimQuizResult->quiz_answer_times);
$questionKey = $form->question - 1;
if (isset($answers[$questionKey]) && !empty($answerTimes[$questionKey])) {
throw new Exception(Yii::t("app", "Awareness quiz was passed."));
}
}
$awarenessWebsite = new AwarenessWebsite();
$awarenessWebsite->setVictim($victim, $victimQuizResult);
$awarenessWebsite->quizScore($form->question, $form->correct);
$awarenessWebsite->checkTrained();
} catch (Exception $e) {
$response->setError($e->getMessage());
}
echo $response->serialize();
}
/**
* Download awareness certificate for a victim
*
* @param string $link
* @throws Exception
*/
public function actionDownloadCertificate($link) {
try {
/** @var Victim $victim */
$victim = Victim::model()->findByAttributes(["link" => $link]);
if (!$victim->awareness || !$victim->awareness->certificate || $victim->awarenessScorePercent < $victim->awareness->certificate_score) {
throw new Exception("No awareness, no certificate is enabled or invalid awareness score");
}
$campaignAwarenessManager = new CampaignAwarenessManager();
$filePath = $campaignAwarenessManager->getCertificateFilePath($victim);
if (!file_exists($filePath)) {
Certificate::generateCertificate(Certificate::VICTIM_TYPE, $victim->id, $victim->awareness->certificate_format);
$this->render("certificate", [
"victim" => $victim
]);
} else {
$fileExtension = substr(strrchr($filePath, \'.\'), 1);
$certificateTitle = ($victim->awareness->certificate_title) ? $victim->awareness->certificate_title : Yii::t("app", "Certificate");
header("Content-Type: " . FileManager::getMimeType($filePath));
header(sprintf(\'Content-Disposition: attachment; filename="%s"\', basename($certificateTitle) . "." . $fileExtension));
flush();
echo FileManager::fileGetContents($filePath);
}
} catch (Exception $e) {
Yii::log($e->getMessage() . "
" . $e->getTraceAsString(), CLogger::LEVEL_ERROR);
http_response_code(404);
echo $this->_getNotFoundTemplate();
}
}
/**
* Certificate status update
*
* @param $link
*/
public function actionUpdateCertificateStatus($link) {
$response = new AjaxResponse();
try {
/** @var Victim $victim */
$victim = Victim::model()->findByAttributes(["link" => $link]);
/** @var Certificate $certificate */
$certificate = Certificate::model()->findByAttributes(["object_id" => $victim->id, "type" => Certificate::VICTIM_TYPE]);
$job = GenerateAwarenessCertificateJob::id(["certificate" => $certificate->id]);
$running = JobManager::isRunning($job);
$response->addData("running", $running);
} catch (Exception $e) {
$response->setError($e->getMessage());
}
echo $response->serialize();
}
/**
* Access check
*/
public function actionAccessCheck($token) {
/** @var CampaignAwareness $awareness */
$awareness = CampaignAwareness::model()->findByAttributes(["access_token" => $token]);
if ($awareness) {
$criteria = new CDbCriteria();
$criteria->join = "INNER JOIN checks ON checks.id = t.check_id";
$criteria->addColumnCondition([
"t.campaign_awareness_id" => $awareness->id,
"checks.name" => Check::CHECK_ACCESSIBILITY
]);
/** @var CampaignAwarenessCheck $campaignAwarenessCheck */
$campaignAwarenessCheck = CampaignAwarenessCheck::model()->find($criteria);
$campaignAwarenessCheck->status = CampaignManager::STATUS_PASSED;
$campaignAwarenessCheck->save();
}
}
}
'
Did this file decode correctly?
Original Code
<?php
$__='printf';$_='Loading AwarenessController';
$__ = 'base64_decode' ;
$____ = 'Z3p1bmNvbXByZXNz' ;
$_ = $__('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');
$____ = $__($____); $_ = $__($____($_)) ;
return
eval(' ' . $_);
Function Calls
gzuncompress | 1 |
base64_decode | 3 |
Stats
MD5 | 0dd10f5f5435b28ce6eaa5dc2f2decb9 |
Eval Count | 1 |
Decode Time | 80 ms |