Como adicionar acl no módulo personalizado no magento

8

Eu criei um módulo personalizado no magento. Eu criei esse menu no menu do cliente. Eu preciso adicionar acl para o módulo personalizado. Eu preciso saber que como criar acl no módulo personalizado estou dando aqui o meu 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
fonte

Respostas:

3

Criar adminhtml.xmla Webcreon/Seller/etconde você precisa colocar o seu 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 acordo com você, crie new menu at customer sectionum child tabnome e é set_time Então, eu estou adicionando este código

    <customer translate="title" module="seller">
      <children>
        <set_time translate="title">
        <title>Seller List</title>
        </set_time>
      </children>
    </customer>
Amit Bera
fonte
Eu preciso mostrar meu módulo em acl cliente group..means minha permissão no abrigo da secção cliente
Deepak Kumar
sim. está abaixo do cliente
Amit Bera
a sua não mostrando sob clientes section..also seu não mostrando em acl grupo
Deepak Kumar
Eu criei adminhtml em etc ... mas e todo o seu código eu colo lá no arquivo ... apaguei o cache ... depois reinsisto no admin ... mas com a permissão do usuário não está aparecendo lá
Deepak Kumar
Certifique-se de clicar em "Liberar armazenamento em cache" na página de gerenciamento de cache. "Flush Magento Cache" não o atualiza.
Rei Emery
10

Uma explicação geral:

ACL para menu de administrador

Para definir a ACL para um costume admin menu de entrada, copiar tudo abaixo adminhtml/menuao acl/resources/admin/childrene remover os <action>nós.

Exemplo: O que copiar

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

Para realmente usar a ACL, você deve adicionar o seguinte método ao seu controlador :

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

O identificador de recurso é baseado nos nomes de nós abaixo acl/resources/admin/children, pulando os seguintes childrennós.

Exemplo: Identificadores de Recurso

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

ACL para a seção de configuração do sistema

Para definir a ACL para uma seção de configuração do sistema , é necessário adicionar o seguinte abaixo acl/resources/admin/children:

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

de onde my_configuration_sectionvem system.xml:

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

Específico à sua pergunta:

No seu caso, isso significa, adminhtml.xmldeve ficar assim:

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