Как добавить acl в пользовательский модуль в magento

8

Я создал пользовательский модуль в magento. Я создал это меню в меню клиента. Мне нужно добавить ACL для пользовательского модуля. Мне нужно знать, что, как создать ACL в пользовательском модуле, я даю здесь мой 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>
Дипак Кумар
источник

Ответы:

3

Создание adminhtml.xmlв Webcreon/Seller/etcкотором нужно поместить код

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

Согласно наблюдениям вам есть создать и имя new menu at customer sectionchild tabset_time Так что я добавляю этот код

    <customer translate="title" module="seller">
      <children>
        <set_time translate="title">
        <title>Seller List</title>
        </set_time>
      </children>
    </customer>
Амит Бера
источник
мне нужно показать мой модуль в группе клиентов ACL .. означает мое разрешение в разделе клиентов
Дипак Кумар
да. это под клиентом
Амит Бера
это не показывается в разделе клиентов .. также не показывается в группе acl
Дипак Кумар
Я создал adminhtml в etc ... но и весь ваш код я вставляю туда в файл ... я удалил кеш ... затем заново войдите в систему в admin ... но в разрешении пользователя его там нет
Deepak Kumar
Убедитесь, что нажали «Flush Cache Storage» на странице управления кешем. «Flush Magento Cache» не обновляет его.
Эмери Кинг
10

Общее объяснение:

ACL для меню администратора

Для определения ACL для пользовательского меню администратора записи, скопируйте все ниже , adminhtml/menuчтобы acl/resources/admin/childrenи удалить <action>узлы.

Пример: что копировать

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

Чтобы фактически использовать ACL, вы должны добавить следующий метод в свой контроллер :

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

Идентификатор ресурса основан на именах узлов ниже acl/resources/admin/children, пропуская следующие childrenузлы.

Пример: идентификаторы ресурса

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

ACL для раздела конфигурации системы

Чтобы определить ACL для раздела конфигурации системы , необходимо добавить следующее acl/resources/admin/children:

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

откуда my_configuration_sectionисходит system.xml:

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

Специфично для вашего вопроса:

В вашем случае это означает, что adminhtml.xmlдолжно выглядеть так:

<?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>
Фабиан Шменглер
источник