Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

管理者のみがショップを閲覧できるモードが欲しい #4954

Closed
yKazihara opened this issue Mar 9, 2021 · 3 comments
Closed
Labels
enhancement 機能追加
Milestone

Comments

@yKazihara
Copy link
Contributor

yKazihara commented Mar 9, 2021

概要(Overview)

現状メンテナンスモードはあるが、管理者であってもショップの閲覧ができない。
このメンテナンスモードとは別に、管理者のみがショップを閲覧出来るモードが欲しい。

期待する内容(Expect) or 要望 (Requirement)

メンテナンスモードを改修するのではなく、新たに管理者のみがショップを閲覧出来る機能を追加したい。

環境 (environment)

  • EC-CUBE: 4.0.x

関連情報 (Ref)

#4839

@okazy
Copy link
Contributor

okazy commented Mar 11, 2021

メンテナンスモードを改修するのではなく、新たに管理者のみがショップを閲覧出来る機能を追加したい。

こちら補足します。

既存のメンテナンス機能はアップデートやプラグインインストール時のトラブルを防ぐため、フロント画面アクセスでキャッシュが生成されないように作られた機能です。
そのため最初にアクセスされる index.php 内で Symfony のカーネルが呼び出されるよりも先にメンテナンスモードか判定してアクセスを遮断するようにできています。

ec-cube/index.php

Lines 58 to 73 in 8934130

$maintenanceFile = env('ECCUBE_MAINTENANCE_FILE_PATH', __DIR__.'/.maintenance');
if (file_exists($maintenanceFile)) {
$pathInfo = \rawurldecode($request->getPathInfo());
$adminPath = env('ECCUBE_ADMIN_ROUTE', 'admin');
$adminPath = '/'.\trim($adminPath, '/').'/';
if (\strpos($pathInfo, $adminPath) !== 0) {
$locale = env('ECCUBE_LOCALE');
$templateCode = env('ECCUBE_TEMPLATE_CODE');
$baseUrl = \htmlspecialchars(\rawurldecode($request->getBaseUrl()), ENT_QUOTES);
header('HTTP/1.1 503 Service Temporarily Unavailable');
require __DIR__.'/maintenance.php';
return;
}
}

既存機能のメンテナンス機能と本 Issue の主題となっているメンテナンス機能は両立できない問題があります。
「管理画面にログインしていたらフロント画面にアクセスできる」機能を実現するためには Symfony が提供している機能を使ってログイン状態かを判定する必要があります。
なのでログイン状態の判定には Symfony のキャッシュの生成が必要になり、既存のメンテナンス機能の要件が満たされなくなります。

こちらの問題の良い解決策が見つからないため、既存のメンテナンス機能とは別で、管理者だけがフロントを確認できるメンテナンス機能を実装するのがいいと思います。

@kiy0taka
Copy link
Contributor

#4961 現状のメンテナンスモードと共存する方法を考えてみました。

@chihiro-adachi chihiro-adachi modified the milestones: 4.1, 4.1.x Sep 3, 2021
@chihiro-adachi chihiro-adachi modified the milestones: 4.1.x, 4.1.2 Apr 21, 2022
@chihiro-adachi
Copy link
Contributor

#5233

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement 機能追加
Projects
None yet
Development

No branches or pull requests

4 participants