So fügen Sie acl im benutzerdefinierten Modul in Magento hinzu


8

Ich habe ein benutzerdefiniertes Modul in Magento erstellt. Ich habe dieses Menü unter Kundenmenü erstellt. Ich muss acl für benutzerdefiniertes Modul hinzufügen. Ich muss wissen, wie man acl in einem benutzerdefinierten Modul erstellt. Ich gebe hier meine 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>

Antworten:


3

Erstellen Sie adminhtml.xmlauf , Webcreon/Seller/etcwo Sie Ihren Code zu setzen braucht

<?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>

Sie haben new menu at customer sectionein erstellt child tabund es heißt set_time Also füge ich diesen Code hinzu

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

Ich muss mein Modul in der Kunden-ACL-Gruppe zeigen. Bedeutet meine Erlaubnis im Kundenbereich
Deepak Kumar

Ja. es ist unter beim Kunden
Amit Bera

seine zeigt nicht unter Kunden section..also seine nicht in acl Gruppe zeigt
Deepak Kumar

Ich habe adminhtml in etc erstellt ... aber und deinen gesamten Code füge ich dort in die Datei ein ... ich habe den Cache gelöscht ... dann melde dich erneut bei admin an ... aber mit Erlaubnis des Benutzers wird er dort nicht angezeigt
Deepak Kumar

Stellen Sie sicher, dass Sie auf der Cache-Verwaltungsseite auf "Cache-Speicher leeren" klicken. "Flush Magento Cache" aktualisiert es nicht.
Emery King

10

Eine allgemeine Erklärung:

ACL für das Admin-Menü

Um die ACL für einen benutzerdefinierten Admin-Menüeintrag zu definieren , kopieren Sie alles unten adminhtml/menuauf acl/resources/admin/childrendie <action>Knoten und entfernen Sie sie .

Beispiel: Was kopiert werden soll

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

Um die ACL tatsächlich zu verwenden, müssen Sie Ihrem Controller die folgende Methode hinzufügen :

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

Die Ressourcen-ID basiert auf den folgenden Knotennamen acl/resources/admin/childrenund überspringt die folgenden childrenKnoten.

Beispiel: Ressourcenkennungen

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

ACL für den Abschnitt zur Systemkonfiguration

Um die ACL für einen Systemkonfigurationsabschnitt zu definieren , muss Folgendes hinzugefügt werden acl/resources/admin/children:

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

woher my_configuration_sectionkommt system.xml:

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

Speziell für Ihre Frage:

In Ihrem Fall adminhtml.xmlsollte das so aussehen:

<?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>
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.