InstallAccessGuard
in package
FinalYes
インストーラー再実行ガードの核となる判定。
インストールはセッションに状態を持たず、全ステップを POST の hidden で持ち回る設計で、 Step_5 で blog_id=1 が作られた時点で isInstalled() は true になる。 このため「インストール済みなら一律停止」にすると正規フローの最終段 Step_6 が壊れる。 そこで「未インストールなら常に許可」「インストール済みは有効な CSRF トークンを持つ 正規セッションのみ許可(=外部からの再実行を遮断)」という判定に切り出す。
状態(isInstalled の真偽・トークンの有効性)の取得は呼び出し側に委ね、本クラスは 真偽の組み合わせから可否を返すだけの純粋ロジックとする。
ブラウザセッション+ CSRF トークンという Web 固有の概念に基づく判定のため
Acms\Services\Setup に置く(CLI 版インストーラーでは --force 等の別の再実行ガード方式になる想定で、
このクラス自体は再利用されない)。
Table of Contents
Methods
- isAllowed() : bool
- インストーラーへのアクセスを許可してよいか。
Methods
isAllowed()
インストーラーへのアクセスを許可してよいか。
public
isAllowed(bool $isInstalled, bool $hasValidToken) : bool
Parameters
- $isInstalled : bool
-
すでにインストール済みか(blog_id=1 の存在等で判定)
- $hasValidToken : bool
-
有効な setup CSRF トークンを持つ正規セッションか