%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /home/vacivi36/intranet.vacivitta.com.br/protected/modules/legal/controllers/
Upload File :
Create Path :
Current File : /home/vacivi36/intranet.vacivitta.com.br/protected/modules/legal/controllers/PageController.php

<?php

/**
 * @link https://www.humhub.org/
 * @copyright Copyright (c) 2018 HumHub GmbH & Co. KG
 * @license https://www.humhub.com/licences
 */

namespace humhub\modules\legal\controllers;

use humhub\components\access\ControllerAccess;
use humhub\components\Controller;
use humhub\modules\legal\models\Page;
use humhub\modules\legal\models\RegistrationChecks;
use humhub\modules\legal\Module;
use Yii;
use yii\web\HttpException;

/**
 * Class PageController
 *
 * @property Module $module
 * @package humhub\modules\legal\controllers
 */
class PageController extends Controller
{
    /**
     * @inheritDoc
     */
    public $access = ControllerAccess::class;

    /**
     * @inheritDoc
     */
    public function beforeAction($action)
    {
        if (Yii::$app->user->isGuest) {
            $this->layout = '@user/views/layouts/main';
            $this->subLayout = '@legal/views/page/layout_login';
        } else {
            $this->subLayout = '@legal/views/page/layout_standard';
        }

        return parent::beforeAction($action);

    }

    /**
     * @param $pageKey
     * @return string
     * @throws HttpException
     */
    public function actionView($pageKey)
    {
        $page = Page::getPage($pageKey);
        if ($page === null || !$this->module->isPageEnabled($pageKey)) {
            throw new HttpException('404', 'Could not find page!');
        }

        return $this->render('view', [
            'page' => $page,
            'canManagePages' => $this->canManagePages()
        ]);
    }

    /**
     * @return string
     * @throws HttpException
     */
    public function actionConfirm()
    {
        if (Yii::$app->user->isGuest) {
            return $this->goHome();
        }

        $model = new RegistrationChecks(['user' => Yii::$app->user->getIdentity()]);
        if ($model->showTermsCheck()) {
            $model->restrictToSettingKey = RegistrationChecks::SETTING_KEY_TERMS;
            $page = Page::getPage(Page::PAGE_KEY_TERMS);
        }
        elseif ($model->showPrivacyCheck()) {
            $model->restrictToSettingKey = RegistrationChecks::SETTING_KEY_PRIVACY;
            $page = Page::getPage(Page::PAGE_KEY_PRIVACY_PROTECTION);
        }
        if (!isset($page) || $page === null) {
            throw new HttpException('404', 'Could not find page!');
        }

        $this->layout = '@user/views/layouts/main';
        $this->subLayout = '@legal/views/page/layout_login';

        if ($model->load(Yii::$app->request->post()) && $model->save()) {
            if (Yii::$app->user->getReturnUrl()) {
                return $this->redirect(Yii::$app->user->getReturnUrl());
            }
            return $this->goHome();
        }

        return $this->render('confirm', [
            'page' => $page,
            'model' => $model,
            'module' => $this->module
        ]);
    }

    /**
     * @return string
     * @throws HttpException
     */
    public function actionUpdate()
    {
        if (Yii::$app->user->isGuest) {
            return $this->goHome();
        }

        $page = Page::getPage(Page::PAGE_KEY_LEGAL_UPDATE);
        if ($page === null || !$this->module->isPageEnabled(Page::PAGE_KEY_LEGAL_UPDATE)) {
            throw new HttpException('404', 'Could not find page!');
        }

        $this->layout = '@user/views/layouts/main';
        $this->subLayout = '@legal/views/page/layout_login';

        $model = new RegistrationChecks(['user' => Yii::$app->user->getIdentity()]);

        if (!$model->hasOpenCheck()) {
            return $this->goHome();
        }

        if ($model->load(Yii::$app->request->post()) && $model->save()) {
            return $this->goHome();
        }

        return $this->render('update', [
            'page' => $page,
            'model' => $model,
            'module' => $this->module
        ]);
    }

    /**
     * @return bool can Manage pages
     */
    public function canManagePages()
    {
        if (!Yii::$app->user->isGuest && Yii::$app->user->identity->isSystemAdmin()) {
            return true;
        }

        return false;
    }

}

Zerion Mini Shell 1.0