@akula22

Как грамотно сделать закрытие сайта по опции?

Если Yii::$app->params['is_offline'] == 1 мне надо закрыть сайт, но в админку доступ должен остаться. Админка сделана просто модулем, на этом же домене. Подскажите как лучше это сделать?
В каком файле делать проверку, не в индекс.пхп же?
и как сделать проверку так чтобы доступ в админку остался
  • Вопрос задан
  • 103 просмотра
Решения вопроса 1
@akula22 Автор вопроса
Пока ждал ответа сам придумал такое решение, прошу заценить.
в конфиге
'bootstrap' => [
        'app\components\MainComponent',
    ],

и сам MainComponent
class MainComponent extends Component
{
    public $roles = ['root', 'admin']; // разрешенные роли

    public function init()
    {
        if (Yii::$app->params['is_offline'] == 1) {
            $enable_role = in_array(Yii::$app->user->identity->role, $this->roles);

            $ips = explode(',', Yii::$app->params['allow_ip']);
            $ips = array_map("trim", $ips);
            $enable_ip = in_array($this->getIp(), $ips); //check "allowed IP"

            if(!$enable_role AND !$enable_ip) {
                die(Yii::$app->params['closeText']);
            }
        }
    }
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
webinar
@webinar Куратор тега Yii
Учим yii: https://youtu.be/-WRMlGHLgRg
не в индекс.пхп же?

А почему нет?
Просто в index php подключать разные конфиги в зависимости от необходимости. В yii2 есть изначально подобная фича для dev и prod. Добавьте вариант close, при этом подключайте в конфиге модуль админки и не подключайте другие или еще что-либо.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы