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>
Deepak Kumar
quelle

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>
Amit Bera
quelle
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>
Fabian Schmengler
quelle