magentoのカスタムモジュールにACLを追加する方法


8

magentoでカスタムモジュールを作成しました。顧客メニューの下にそのメニューを作成しました。カスタムモジュールのACLを追加する必要があります。カスタムモジュールでACLを作成する方法を知っている必要があります。ここに私のconfig.xmlを与えます...

my config.xml
------------------
<?xml version="1.0" encoding="UTF-8" ?>
<config>
    <!-- module configuration -->
    <modules>
        <Webcreon_Seller>
            <version>1.0.0</version>
        </Webcreon_Seller>
    </modules>
    <!-- module configuration end -->
    <frontend>
        <routers>
            <seller>
                <use>standard</use>
                <args>
                    <module>Webcreon_Seller</module>
                    <frontName>seller</frontName>  
                </args>
            </seller>
        </routers>
     <layout>
            <updates>
                <seller>
                      <file>sellerform.xml</file>
                </seller>
            </updates>
       </layout>
    </frontend>
    <admin>
     <routers>
         <seller>
            <use>admin</use>
            <args>
               <module>Webcreon_Seller</module>
               <frontName>adminseller</frontName>
            </args>
         </seller>
      </routers>
 </admin>
 <adminhtml>
   <layout>
      <updates>
          <seller>
              <file>sellerform.xml</file>
           </seller>
      </updates>
   </layout>
   <menu>
      <customer translate="title" module="adminhtml">

         <sort_order>100</sort_order>
         <children>
             <set_time>
                   <title>Seller List</title>
                   <action>adminseller/adminhtml_index</action>
              </set_time>
          </children>
       </customer>
    </menu>
</adminhtml> 

    <global>
        <blocks>
            <seller>
                <class>Webcreon_Seller_Block</class>
            </seller>
         </blocks>
         <helpers>
            <seller>
                <class>Webcreon_Seller_Helper</class>
            </seller> 
        </helpers>
              <models>
          <seller>
                <class>Webcreon_Seller_Model</class>
                 <resourceModel>seller_mysql4</resourceModel>
            </seller> 
            <seller_mysql4>
             <class>Webcreon_Seller_Model_Mysql4</class>
             <entities>
                 <seller>
                   <table>db_vendor</table>
                 </seller>
              </entities>
          </seller_mysql4>
        </models>
        <resources>
        <!-- connection to write -->
        <seller_write>
            <connection>
                <use>core_write</use>
            </connection>
        </seller_write>
        <!-- connection to read -->
       <seller_read>
          <connection>
             <use>core_read</use>
          </connection>
       </seller_read>
       <webcreon_seller_setup>
            <setup>
                <module>Webcreon_Seller</module>
            </setup>
        </webcreon_seller_setup>
</resources>
<rewrite>
    <sellercreate>
         <from><![CDATA[#^/seller[\/]?$#]]></from>
         <to><![CDATA[/seller/seller/sellercreate/$1]]></to>
         <complete>1</complete>
      </sellercreate>
</rewrite>
</global>


</config>

回答:


3

コードを配置する必要がある場所に作成adminhtml.xmlするWebcreon/Seller/etc

<?xml version="1.0" encoding="UTF-8" ?>
    <config>
        <acl>
          <resources>
            <all>
              <title>Allow Everything</title>
            </all>
            <admin>
             <children>
                <customer translate="title" module="seller">
                  <children>
                    <set_time translate="title">
                    <title>Seller List</title>
                    </set_time>
                  </children>
                </customer>
              </children>
            </admin>
          </resources>
        </acl>
    </config>

あなたに応じて作成new menu at customer sectionchild tab、それの名前は set_time だから私はこのコードを追加します

    <customer translate="title" module="seller">
      <children>
        <set_time translate="title">
        <title>Seller List</title>
        </set_time>
      </children>
    </customer>

私は、お客様のaclグループにモジュールを表示する必要があります。お客様のセクションで許可を得ていることを意味します
Deepak Kumar

はい。それは顧客にある
Amit Bera

顧客セクションの下には表示されません。ACLグループにも表示されません
Deepak Kumar

etc ...でadminhtmlを作成しましたが、コード全体をファイルに貼り付けます...キャッシュを削除しました...その後、adminに再ログインします...しかし、ユーザー権限では表示されません
Deepak Kumar

キャッシュ管理ページから必ず「キャッシュストレージをフラッシュ」をクリックしてください。「Magentoキャッシュのフラッシュ」では更新されません。
エメリーキング

10

一般的な説明:

管理メニューのACL

カスタム管理メニューエントリのACLを定義するには、以下adminhtml/menuにすべてをコピーしacl/resources/admin/children<action>ノードを削除します。

例:何をコピーするか

http://i.stack.imgur.com/9CiIQ.png

ACLを実際に使用するには、コントローラーに次のメソッドを追加する必要があります。

protected function _isAllowed()
{
    return Mage::getSingleton('admin/session')->isAllowed('ENTER RESOURCE IDENTIFIER HERE');
}

リソース識別子は以下のノード名に基づいており、acl/resources/admin/children後続のchildrenノードはスキップされます。

例:リソース識別子

http://i.stack.imgur.com/HZ2Is.png

システム構成セクションのACL

システム構成セクションの ACLを定義するには、以下を追加する必要がありますacl/resources/admin/children

<system>
  <children>
    <config>
      <children>
        <my_configuration_section>
          <title>My Configuration Section</title>
        </my_configuration_section>
      </children>
    </config>
  </children>
</system>

どこmy_configuration_sectionから来ていますsystem.xml

<sections>
    <my_configuration_section translate="label" module="my_module">
      ...
    </my_configuration_section>
</sections>     

あなたの質問に固有:

あなたのケースでは、adminhtml.xmlこれは次のようになるはずです:

<?xml version="1.0" encoding="UTF-8" ?>
<config>
    <acl>
      <resources>
        <admin>
         <children>

           <customer translate="title" module="adminhtml">
             <sort_order>100</sort_order>
             <children>
               <set_time>
                 <title>Seller List</title>
               </set_time>
             </children>
           </customer>

          </children>
        </admin>
      </resources>
    </acl>
</config>
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.