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

Variables

$_ /** * Awareness controller. */ class AwarenessController..
$__ base64_decode
$____ gzuncompress

Stats

MD5 0dd10f5f5435b28ce6eaa5dc2f2decb9
Eval Count 1
Decode Time 80 ms