EC-CUBE EC-CUBEのカスタマイズ・制作会社 強いネットショップ構築します|EC-Orange

EC-Orange とは

EC-CUBE カスタマイズ

EC-CUBEインストール

EC-CUBE 環境構築ノウハウ

EC-CUBE 基本構成理解

ソースコード読解

EC-CUBE カスタマイズ:初歩

EC-CUBE カスタマイズ:基礎

EC-CUBE カスタマイズ:応用

EC-CUBE 機能拡張ノウハウ

EC-CUBE カスタマイズ    管理権限を制限しセキュリティ対策

    EC-CUBE カスタマイズ  >  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”以外の場合、左部のボタンを非表示にする記述を追加します。

  1. <table width="141" border="0" cellspacing="0" cellpadding="0" summary=" " id="menu_navi">
  2.     <!--ナビ-->
  3.     <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>
  4.     <tr><td><img src="<!--{$TPL_DIR}-->img/contents/navi_line.gif" width="140" height="2" alt=""></td></tr>
  5.     <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>
  6.     <tr><td><img src="<!--{$TPL_DIR}-->img/contents/navi_line.gif" width="140" height="2" alt=""></td></tr>
  7.     <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>
  8.     <tr><td><img src="<!--{$TPL_DIR}-->img/contents/navi_line.gif" width="140" height="2" alt=""></td></tr>
  9.     <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>
  10.     <tr><td><img src="<!--{$TPL_DIR}-->img/contents/navi_line.gif" width="140" height="2" alt=""></td></tr>
  11.     <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>
  12.     <tr><td><img src="<!--{$TPL_DIR}-->img/contents/navi_line.gif" width="140" height="2" alt=""></td></tr>
  13.     <!--ナビ-->
  14. </table>

デフォルトでは上記のようになっていますので、セッション状態を判断するif文を挿入します。

  1. <table width="141" border="0" cellspacing="0" cellpadding="0" summary=" " id="menu_navi">
  2.     <!--ナビ-->
  3.     <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>
  4.     <tr><td><img src="<!--{$TPL_DIR}-->img/contents/navi_line.gif" width="140" height="2" alt=""></td></tr>
  5.     <!--{if $smarty.session.authority == 0}-->
  6.     <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>
  7.     <tr><td><img src="<!--{$TPL_DIR}-->img/contents/navi_line.gif" width="140" height="2" alt=""></td></tr>
  8.     <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>
  9.     <tr><td><img src="<!--{$TPL_DIR}-->img/contents/navi_line.gif" width="140" height="2" alt=""></td></tr>
  10.     <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>
  11.     <tr><td><img src="<!--{$TPL_DIR}-->img/contents/navi_line.gif" width="140" height="2" alt=""></td></tr>
  12.     <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>
  13.     <tr><td><img src="<!--{$TPL_DIR}-->img/contents/navi_line.gif" width="140" height="2" alt=""></td></tr>
  14.     <!--{/if}-->
  15.     <!--ナビ-->
  16. </table>

これで、先程追加した「店長」ユーザでログインしてみてください。
左ナビが非表示になっているはずです。

注意点

  • このカスタマイズではURL直打ちをされてしまうと、ページを見ることができます。
  • 非表示対象のメニューが初期表示メニューの場合、ページは表示されてしまいます。




EC-CUBEのカスタマイズや、ECサイトの開発・構築でお困りなら、
ネットショップ構築パッケージEC-Orangeにお問い合わせください!