【EC-CUBE 4】管理者のみアクセスできるページを作成する方法

【トップ画面】管理画面にログインしている場合のみアクセスできるページを作る方法

本記事では、管理画面にログインしている場合のみアクセス可能な新規ページの作り方を紹介します。

カスタマイズ前にデバッグモードを設定しておくと、エラーが起きたときに詳細情報が表示されるようになります。
エラー箇所を探しやすくなるので、開発前に設定しておくのをオススメします。
デバッグモードの設定方法については こちらの記事 で解説しています。

【動作環境】
EC CUBEのバージョン:4.1.2
サーバー:Xserver

目次

実装後の状態

こちらの記事で作成した『メーカー情報登録ページ』ですが、URLさえ知っていれば誰でもアクセスができてしまいます。管理側のメンバーだけでアクセスできる状態が理想のため、そのように実装します。

管理画面にログインしていない状態でページにアクセスすると、ログイン画面が表示されるようになります。

ログイン画面

ログインすると、ページにアクセスできます。(ログインした状態でページにアクセスした場合、最初のログイン画面はスキップされます。)

メーカー情報登録画面

実装の手順

以下の2つを修正することで実装できます。

  1. 対象ページのControllerを修正
  2. 対象ページのTwigテンプレートを修正

Controllerのルーティングに、%eccube_admin_route% を追加

実装例を見てもわかる通り、URLのドメインの後に「administrator」が入ると、ログインしていないユーザーはアクセスできないページになります。

よって、アクセス制限をかけたいページのControllerを開き、ルーティング部分を修正します。

@Route("/%eccube_admin_route%/xxx")

「xxx」にはアクセス制限をかけたいページのURLを入れます。

実装例では「(ドメイン名)/maker_register」のページにアクセス制限をかけるため、MakerRegisterControllerのルーティングを以下の通り修正します。

@Route("/%eccube_admin_route%/maker_register", name="maker_register")

Twigテンプレートの {% extends ‘default_frame.twig’ %} を削除

対象ページのTwigテンプレートに {% extends ‘default_frame.twig’ %} の記述がある場合、これを削除します。(管理画面から作成したページにはデフォルトで記述されます。)

以上で修正は完了です。
管理画面からログアウトしていることを確認し、「(ドメイン名)/administrator/(ページURL)」にアクセスしてみましょう。EC-CUBEのログイン画面が表示され、ログイン後にページにアクセスできるようになっていればOKです!

もし上手く表示されない場合は、キャッシュを削除すると正常に動作することがあります。

まとめ

以上、管理ユーザーのみアクセス可能なページの作成方法を紹介しました。
EC-CUBE管理画面以外で外部ユーザーに見られたくないページがある場合に、ぜひ利用してみてください。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次