Come aggiungere acl nel modulo personalizzato in magento


8

Ho creato un modulo personalizzato in magento. Ho creato quel menu nel menu cliente. Devo aggiungere acl per il modulo personalizzato. Devo sapere che come creare acl nel modulo personalizzato sto dando qui il mio 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>

Risposte:


3

Creare adminhtml.xmlin Webcreon/Seller/etccui è necessario inserire il codice

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

Accogliendo di te hai creato new menu at customer sectionun child tabnome e lo è set_time Quindi aggiungo questo codice

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

ho bisogno di mostrare il mio modulo nel gruppo acl del cliente ... significa il mio permesso nella sezione clienti
Deepak Kumar

sì. è sotto al cliente
Amit Bera

non viene visualizzato nella sezione clienti ... inoltre non viene visualizzato nel gruppo acl
Deepak Kumar

Ho creato adminhtml in etc ... ma e tutto il tuo codice ho incollato lì nel file ... ho cancellato la cache ... quindi rieseguo il login in admin ... ma con il permesso dell'utente non viene mostrato qui
Deepak Kumar

Assicurati di fare clic su "Svuota archivio cache" dalla pagina di gestione della cache. "Flush Magento Cache" non lo aggiorna.
Emery King,

10

Una spiegazione generale:

ACL per menu di amministrazione

Per definire l'ACL per una consuetudine menu di amministrazione di entrata, copiare tutto sotto adminhtml/menuper acl/resources/admin/childrene togliere i <action>nodi.

Esempio: cosa copiare

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

Per utilizzare effettivamente l'ACL è necessario aggiungere il seguente metodo al controller :

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

L'identificatore di risorsa si basa sui nomi dei nodi seguenti acl/resources/admin/children, saltando i seguenti childrennodi.

Esempio: identificatori di risorse

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

ACL per la sezione di configurazione del sistema

Per definire l'ACL per una sezione di configurazione del sistema , è necessario aggiungere di seguito acl/resources/admin/children:

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

da dove my_configuration_sectionviene system.xml:

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

Specifico per la tua domanda:

Nel tuo caso, ciò significa che adminhtml.xmldovrebbe apparire così:

<?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>
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.