ECCUBE4 全ページを会員限定に変更する

ECCUBE4 全ページを会員限定に変更する

ECCUBE4で全ページを会員限定に変更するまでの手順を記述してます。

環境

  • ECCUBE 4.0.5

会員限定に変更

「/src/Eccube/DependencyInjection」にある「EccubeExtension.php」にある以下の箇所にコードを追加します。

// SSL強制時は, httpsのみにアクセス制限する
$accessControl = [
    ['path' => '^/%eccube_admin_route%/login', 'roles' => 'IS_AUTHENTICATED_ANONYMOUSLY'],
    ['path' => '^/%eccube_admin_route%/', 'roles' => 'ROLE_ADMIN'],
    ['path' => '^/mypage/login', 'roles' => 'IS_AUTHENTICATED_ANONYMOUSLY'],
    ['path' => '^/mypage/withdraw_complete', 'roles' => 'IS_AUTHENTICATED_ANONYMOUSLY'],
    ['path' => '^/mypage/change', 'roles' => 'IS_AUTHENTICATED_FULLY'],
    ['path' => '^/mypage/', 'roles' => 'ROLE_USER'],
];

上記に、以下を追加します。

['path' => '^/entry', 'roles' => 'IS_AUTHENTICATED_ANONYMOUSLY'], // 会員登録画面 全員許可
['path' => '^/', 'roles' => 'ROLE_USER'], // 全ページ 会員のみ表示

追加後

// SSL強制時は, httpsのみにアクセス制限する
$accessControl = [
    ['path' => '^/%eccube_admin_route%/login', 'roles' => 'IS_AUTHENTICATED_ANONYMOUSLY'],
    ['path' => '^/%eccube_admin_route%/', 'roles' => 'ROLE_ADMIN'],
    ['path' => '^/mypage/login', 'roles' => 'IS_AUTHENTICATED_ANONYMOUSLY'],
    ['path' => '^/mypage/withdraw_complete', 'roles' => 'IS_AUTHENTICATED_ANONYMOUSLY'],
    ['path' => '^/mypage/change', 'roles' => 'IS_AUTHENTICATED_FULLY'],
    ['path' => '^/mypage/', 'roles' => 'ROLE_USER'],
    ['path' => '^/entry', 'roles' => 'IS_AUTHENTICATED_ANONYMOUSLY'], // 会員登録画面 全員許可
    ['path' => '^/', 'roles' => 'ROLE_USER'], // 全ページ 会員のみ表示
];

各変数は以下の通りとなります。

  • IS_AUTHENTICATED_ANONYMOUSLY : 全員許可
  • IS_AUTHENTICATED_FULLY:会員のみ表示(自動ログイン済でも問題なし)
  • ROLE_USER:会員のみ表示(自動ログイン済でもログインが必要)
  • ROLE_ADMIN:管理者ログインが必要

反映されない場合は、キャッシュを削除します。