EC-CUBE カスタマイズ 管理権限を制限しセキュリティ対策
カスタマイズ:応用/管理ユーザ追加
実際のネットショップ運営では、何人ものスタッフで、管理画面を触ることになります。
その際に、全てのスタッフが全権限を持つユーザでログインできてしまっては、セキュリティ上の問題が生じます。
ここでは管理ユーザを追加し、その権限を制限する方法を紹介します。
システム開発でお悩みの方は、ネットショップ構築パッケージ EC-Orange にお問い合わせください
管理権限の追加
システム設定>マスタデータ管理より、mtb_authorityを開いてください。
初期状態では、
ID:0
値:管理者
だけが入っていますので、
ID:1
値:店長
と入力してみましょう。
ユーザ作成
システム設定>メンバー管理より、新規メンバーを登録しましょう。
先ほど追加した「店長」が選択できるようになっています。
表示制限
各管理メニューの左部(sub_navi)にて表示制限をします。
例として、権限が管理者以外の場合、システム設定のメンバー管理より下の項目全てを表示させないようにしてみましょう。
/data/Smarty/templates/default/admin/system/subnavi.tpl
を編集します。
管理サイトでは、ログインしているメンバーの状態をセッションにて持ちまわっているので、その値を利用します。 今回用いる値は、権限IDです。以下テンプレート変数を表示させてみましょう。
$smarty.session.authority
管理者のIDは“0”であることがわかります。したがって、IDが“0”以外の場合、左部のボタンを非表示にする記述を追加します。
- <table width="141" border="0" cellspacing="0" cellpadding="0" summary=" " id="menu_navi">
- <!--ナビ-->
- <tr><td class=<!--{if $tpl_subno != 'index'}-->"navi"<!--{else}-->"navi-on"<!--{/if}-->><a href="./index.php" onMouseOver="naviStyleChange('index', '#a5a5a5')" <!--{if $tpl_subno != 'index'}-->onMouseOut="naviStyleChange('index', '#636469')"<!--{/if}--> id="index"><img src="<!--{$TPL_DIR}-->img/contents/icon.jpg" width="15" height="9" alt="" border="0"><span class="navi_text">メンバー管理</span></a></td></tr>
- <tr><td><img src="<!--{$TPL_DIR}-->img/contents/navi_line.gif" width="140" height="2" alt=""></td></tr>
- <tr><td class=<!--{if $tpl_subno != 'bkup'}-->"navi"<!--{else}-->"navi-on"<!--{/if}-->><a href="./bkup.php" onMouseOver="naviStyleChange('bkup', '#a5a5a5')" <!--{if $tpl_subno != 'bkup'}-->onMouseOut="naviStyleChange('bkup', '#636469')"<!--{/if}--> id="bkup"><img src="<!--{$TPL_DIR}-->img/contents/icon.jpg" width="15" height="9" alt="" border="0"><span class="navi_text">バックアップ管理</span></a></td></tr>
- <tr><td><img src="<!--{$TPL_DIR}-->img/contents/navi_line.gif" width="140" height="2" alt=""></td></tr>
- <tr><td class=<!--{if $tpl_subno != 'parameter'}-->"navi"<!--{else}-->"navi-on"<!--{/if}-->><a href="./parameter.php" onMouseOver="naviStyleChange('parameter', '#a5a5a5')" <!--{if $tpl_subno != 'parameter'}-->onMouseOut="naviStyleChange('parameter', '#636469')"<!--{/if}--> id="parameter"><img src="<!--{$TPL_DIR}-->img/contents/icon.jpg" width="15" height="9" alt="" border="0"><span class="navi_text">パラメータ設定</span></a></td></tr>
- <tr><td><img src="<!--{$TPL_DIR}-->img/contents/navi_line.gif" width="140" height="2" alt=""></td></tr>
- <tr><td class=<!--{if $tpl_subno != 'masterdata'}-->"navi"<!--{else}-->"navi-on"<!--{/if}-->><a href="./masterdata.php" onMouseOver="naviStyleChange('masterdata', '#a5a5a5')" <!--{if $tpl_subno != 'masterdata'}-->onMouseOut="naviStyleChange('masterdata', '#636469')"<!--{/if}--> id="masterdata"><img src="<!--{$TPL_DIR}-->img/contents/icon.jpg" width="15" height="9" alt="" border="0"><span class="navi_text">マスタデータ管理</span></a></td></tr>
- <tr><td><img src="<!--{$TPL_DIR}-->img/contents/navi_line.gif" width="140" height="2" alt=""></td></tr>
- <tr><td class=<!--{if $tpl_subno != 'system'}-->"navi"<!--{else}-->"navi-on"<!--{/if}-->><a href="./system.php" onMouseOver="naviStyleChange('system', '#a5a5a5')" <!--{if $tpl_subno != 'system'}-->onMouseOut="naviStyleChange('system', '#636469')"<!--{/if}--> id="system"><img src="<!--{$TPL_DIR}-->img/contents/icon.jpg" width="15" height="9" alt="" border="0"><span class="navi_text">システム情報</span></a></td></tr>
- <tr><td><img src="<!--{$TPL_DIR}-->img/contents/navi_line.gif" width="140" height="2" alt=""></td></tr>
- <!--ナビ-->
- </table>
デフォルトでは上記のようになっていますので、セッション状態を判断するif文を挿入します。
- <table width="141" border="0" cellspacing="0" cellpadding="0" summary=" " id="menu_navi">
- <!--ナビ-->
- <tr><td class=<!--{if $tpl_subno != 'index'}-->"navi"<!--{else}-->"navi-on"<!--{/if}-->><a href="./index.php" onMouseOver="naviStyleChange('index', '#a5a5a5')" <!--{if $tpl_subno != 'index'}-->onMouseOut="naviStyleChange('index', '#636469')"<!--{/if}--> id="index"><img src="<!--{$TPL_DIR}-->img/contents/icon.jpg" width="15" height="9" alt="" border="0"><span class="navi_text">メンバー管理</span></a></td></tr>
- <tr><td><img src="<!--{$TPL_DIR}-->img/contents/navi_line.gif" width="140" height="2" alt=""></td></tr>
- <!--{if $smarty.session.authority == 0}-->
- <tr><td class=<!--{if $tpl_subno != 'bkup'}-->"navi"<!--{else}-->"navi-on"<!--{/if}-->><a href="./bkup.php" onMouseOver="naviStyleChange('bkup', '#a5a5a5')" <!--{if $tpl_subno != 'bkup'}-->onMouseOut="naviStyleChange('bkup', '#636469')"<!--{/if}--> id="bkup"><img src="<!--{$TPL_DIR}-->img/contents/icon.jpg" width="15" height="9" alt="" border="0"><span class="navi_text">バックアップ管理</span></a></td></tr>
- <tr><td><img src="<!--{$TPL_DIR}-->img/contents/navi_line.gif" width="140" height="2" alt=""></td></tr>
- <tr><td class=<!--{if $tpl_subno != 'parameter'}-->"navi"<!--{else}-->"navi-on"<!--{/if}-->><a href="./parameter.php" onMouseOver="naviStyleChange('parameter', '#a5a5a5')" <!--{if $tpl_subno != 'parameter'}-->onMouseOut="naviStyleChange('parameter', '#636469')"<!--{/if}--> id="parameter"><img src="<!--{$TPL_DIR}-->img/contents/icon.jpg" width="15" height="9" alt="" border="0"><span class="navi_text">パラメータ設定</span></a></td></tr>
- <tr><td><img src="<!--{$TPL_DIR}-->img/contents/navi_line.gif" width="140" height="2" alt=""></td></tr>
- <tr><td class=<!--{if $tpl_subno != 'masterdata'}-->"navi"<!--{else}-->"navi-on"<!--{/if}-->><a href="./masterdata.php" onMouseOver="naviStyleChange('masterdata', '#a5a5a5')" <!--{if $tpl_subno != 'masterdata'}-->onMouseOut="naviStyleChange('masterdata', '#636469')"<!--{/if}--> id="masterdata"><img src="<!--{$TPL_DIR}-->img/contents/icon.jpg" width="15" height="9" alt="" border="0"><span class="navi_text">マスタデータ管理</span></a></td></tr>
- <tr><td><img src="<!--{$TPL_DIR}-->img/contents/navi_line.gif" width="140" height="2" alt=""></td></tr>
- <tr><td class=<!--{if $tpl_subno != 'system'}-->"navi"<!--{else}-->"navi-on"<!--{/if}-->><a href="./system.php" onMouseOver="naviStyleChange('system', '#a5a5a5')" <!--{if $tpl_subno != 'system'}-->onMouseOut="naviStyleChange('system', '#636469')"<!--{/if}--> id="system"><img src="<!--{$TPL_DIR}-->img/contents/icon.jpg" width="15" height="9" alt="" border="0"><span class="navi_text">システム情報</span></a></td></tr>
- <tr><td><img src="<!--{$TPL_DIR}-->img/contents/navi_line.gif" width="140" height="2" alt=""></td></tr>
- <!--{/if}-->
- <!--ナビ-->
- </table>
これで、先程追加した「店長」ユーザでログインしてみてください。
左ナビが非表示になっているはずです。
注意点
- このカスタマイズではURL直打ちをされてしまうと、ページを見ることができます。
- 非表示対象のメニューが初期表示メニューの場合、ページは表示されてしまいます。
EC-CUBEのカスタマイズや、ECサイトの開発・構築でお困りなら、
ネットショップ構築パッケージEC-Orangeにお問い合わせください!
EC-CUBEのカスタマイズ・制作会社 強いネットショップ構築します|EC-Orange




