EC-CUBE3がベースにしているSymfony2では各ページに表示権限を与えることができます。

この仕組みによってログインユーザーのみページを表示する・しないという設定ができます。

$app[‘security.access_rules’]による指定を行います。

/src/Eccube/Application.phpに下記のようなコードがありますので、ここに指定したいアクセス制限を記述します。

 

例えば、array(‘^/mypage’, ‘ROLE_USER’)は/mypage以下のURLを会員ユーザー(顧客)のみ表示許可するという設定です。

ただし、より上位にarray(‘^/mypage/change’, ‘IS_AUTHENTICATED_FULLY’),という記載があり、/mypage/changeではそちらが優先されます。

/campaignというURLを会員にのみ表示したい場合は、array(‘^/campaign’, ‘ROLE_USER’),という要素を配列に追加すればOKです。

 

なお、Symfonyの権限は分かりにくいので以下にEC-CUBE3で使用する権限をまとめておきます。

 

・ROLE_ADMIN

EC-CUBE3では管理者としてログインしていることを意味します。

 

・ROLE_USER

EC-CUBE3では顧客としてログインしていることを意味します。

 

・IS_AUTHENTICATED_ANONYMOUSLY

匿名ユーザーを含みます。要はログインしていなくても表示できるという意味です。

 

・IS_AUTHENTICATED_REMEMBERED

「次回から自動的にログインする」機能によってログインしたユーザーです。

 

・IS_AUTHENTICATED_FULLY

IS_AUTHENTICATED_REMEMBEREDの対比です。自動的にログインする機能ではなく、当セッション中にフォームで認証を行いログインしたユーザーです。

 

これらのROLEを使うことでより柔軟なサイトを作ることができますね!

EC-CUBE3をご利用の方はぜひお試しください。

 

関連するカスタマイズ

管理画面のパスワードを忘れた時に再設定する方法... 管理画面のパスワードを忘れてログインが不可能になった場合、EC-CUBE上で再設定する方法はありません。DB上で直接暗号化されたパスワード(ハッシュ)を修正するか、ソースコードを修正してパスワードなしでログインした上で自分のパスワードを変更する必要があります。 ハッシュを修正するには一定の知識...
ログアウト時にカート内の商品を維持する方法... EC-CUBE3ではログアウト時にカート内の商品が消えてしまいます。これはログアウト時にinvalidateメソッドによりセッションの破棄を行っているためです。 カートの商品を維持するにはinvalidate_sessionの設定をfalseに設定する方法があります。invalidat...
会員マスター並び替え・並び順変更方法 (登録日・購入金額等)... EC-CUBE3系管理画面の会員マスターをカスタマイズしてみたいと思います。 今回は簡単にできる会員マスターの並び順変更方法をご紹介します。 デフォルトでは会員マスターの並び順はEccube/Repository/CustomerRepository.phpのメソッド、getQueryB...
ロゴブロックに入っているh1タグを動的に変更する方法... EC-CUBE3.0の標準テンプレートでは、ロゴエリアはブロックとして配置されており、コントローラと紐付けられていないため、内容を動的に変更するのが若干手間となっています。 今回はh1タグをここに配置したまま商品名やカテゴリ名を動的に入れられるようにする方法をご紹介します。 考え方として...

弊社はEC-CUBE公式インテグレートパートナーです。