2015年5月20日水曜日

ECCUBE メンバーによって管理画面のアクセスを制限する。

EC-CUBE 2.12にてログインするメンバーによって管理画面のアクセスを制限したいという事になった。 例)Aさんに商品管理だけアクセス出来るようにしたい。 早速ググってみると、システム設定>マスターデータ管理>mtb_authorityでメンバーを追加し、admin_contents.cssにて非表示にするというもの。 でも直接/admin/...を叩くとアクセス出来てしまうという。。。 mtb_permissionを使うとページ毎にアクセスできるメンバーを制限できるというのを発見。 システム設定>マスターデータ管理>mtb_authorityにて 店舗スタッフ ID:2を作成 システム設定>マスターデータ管理>mtb_permissionにアクセス。 基本情報管理にはアクセスできなくていいので、 ID:/admin/basis/index.php 値:1を設定 IDにアクセスできるか否か設定したページを入力し、値には店舗スタッフ以上の権限のあるメンバーがアクセス出来るように今回は1を設定(数字が小さい方が偉い)。 なので、メンバーのIDが0と1の人はアクセス可能で、2以上の人はアクセス出来ないよということ。 商品管理以外も設定しこれでOKかとおもいきや。 基本情報管理>特定商取引法へアクセス出来る。。。URLは下記。 /admin/basis/tradelaw.php 基本情報管理>配送方法設定もアクセス出来る。。。 /admin/basis/delivery.php どうやら全てのファイルを指定する必要があるらしい。。。 どんだけのファイルをちまちま管理画面から設定する必要があるんだ。。。 なので、フォルダ以下の全てのファイルをアクセス出来ないように設定。 システム設定>マスターデータ管理>mtb_permissionで設定したやつを変更。 /admin/basis/index.php ↓ /admin/basis/ basis以下のファイルが全て対象となるように。 data/class/SC_Session.phpを開く 70行目あたり $admin_path...

2015年5月7日木曜日

【EC-CUBE】最近購入された商品ブロック追加プラグインを高速化

EC-CUBEのDBログファイルを見てみる。 ん、遅い。何かが遅い。 このSQLが遅い。 SQL: SELECT dtb_order_detail.product_id, dtb_order_detail.product_name, dtb_order.create_date, dtb_order.order_pref, (SELECT main_list_image FROM dtb_products WHERE dtb_products.product_id = dtb_order_detail.product_id) as main_list_image FROM dtb_order_detail LEFT JOIN dtb_order ON dtb_order_detail.order_id = dtb_order.order_id WHERE dtb_order.del_flg...