Cómo agregar acl en un módulo personalizado en magento


8

Creé un módulo personalizado en magento. Creé ese menú en el menú del cliente. Necesito agregar acl para el módulo personalizado. Necesito saber que cómo crear acl en un módulo personalizado estoy dando aquí mi 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>

Respuestas:


3

Crea adminhtml.xmlen Webcreon/Seller/etcdonde necesites poner tu código

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

De acuerdo con usted tiene crear new menu at customer sectionun child taby su nombre es set_time Entonces agrego este código

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

necesito mostrar mi módulo en el grupo acl del cliente ... significa mi permiso en la sección del cliente
Deepak Kumar

si. está debajo del cliente
Amit Bera

no se muestra en la sección de clientes ... tampoco se muestra en el grupo acl
Deepak Kumar

Creé adminhtml en etc ... pero y todo el código que pegué allí en el archivo ... borré el caché ... luego volví a iniciar sesión en admin ... pero en el permiso del usuario no se muestra allí
Deepak Kumar

Asegúrese de hacer clic en "Flush Cache Storage" en la página de administración de caché. "Flush Magento Cache" no lo actualiza.
Emery King

10

Una explicación general:

ACL para el menú de administración

Para definir la ACL para una costumbre menú de administración de entrada, copiar todo por debajo adminhtml/menude acl/resources/admin/childreny quitar los <action>nodos.

Ejemplo: qué copiar

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

Para utilizar realmente la ACL, debe agregar el siguiente método a su controlador :

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

El identificador de recurso se basa en los nombres de nodo a continuación acl/resources/admin/children, omitiendo los siguientes childrennodos.

Ejemplo: identificadores de recursos

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

ACL para la sección de configuración del sistema

Para definir la ACL para una sección de configuración del sistema , a continuación se debe agregar lo siguiente acl/resources/admin/children:

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

de donde my_configuration_sectionviene system.xml:

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

Específico a su pregunta:

En su caso, eso significa que adminhtml.xmldebería verse así:

<?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>
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.