Тег действий ACL приводит к некорректному отображению «дерева ресурсов ролей» в admin / system / permissions / role - PullRequest
0 голосов
/ 10 апреля 2010

Мы создали новое действие, похожее на 'hold', 'ship' и другие, в разделе администратора 'sales_order / view', которое можно запустить, нажав на кнопку. После этого мы добавили наше новое действие в ACL со следующим кодом в config.xml:

 <acl>  
   <resources>  
      <admin>  
          <children>  
              <sales>
                  <children>
                         <order>
                                <children>
                                    <actions translate="title">
                                        <title>Actions</title>
                                        <children>
                                            <shipNew translate="title"><title>Ship Ups</title></shipNew>
                                        </children>
                                    </actions>
                                </children>
                                <sort_order>10</sort_order>
                            </order>  
              </children>
                  </sales>  
                        </children>  
              </admin>
          </resources>  
       </acl>  

Функциональность ACL работает, однако, в «Дереве ресурсов ролей» (Система / Разрешения / Роли / Ресурсы ролей) наше новое действие никогда не отображается как выбранное (отмеченное), даже если оно разрешено для конкретной роли. Я могу видеть, что из таблицы 'admin_rule' с идентификатором ресурса для нашего нового действия разрешено, поэтому оно должно отображаться выбранным, но это не так.

Когда я пытался решить эту проблему, я изучил шаблон (permissions / rolesedit.phtml) и обнаружил, что «дерево ресурсов роли» нарисовано с помощью Javascript ... вот где я застрял из-за моих ограниченных знаний в JavaScript

Почему дерево ресурсов ролей не отображает нашу новую запись ACL правильно, то есть флажок никогда не устанавливается?

Спасибо за помощь
margots

1 Ответ

0 голосов
/ 11 апреля 2010

Я нашел проблему.

Видимо, все буквы для тега acl должны быть в нижнем регистре, чтобы правильно нарисовать «дерево ресурсов». После того как я изменил «shipNew» на «shipnew», «дерево ресурсов» рисуется правильно в admin-> system-> permissions-> role-> role resource

Правильный код будет выглядеть следующим образом:

   <acl>   
     <resources>   
       <admin>   
        <children>  
           <sales>
            <order>
                 <children>
                         <actions>
                                    <children>
                                        <shipnew translate="title"><title>Ship Ups</title></shipnew>
                                    </children>
                                </actions>
                            </children>
                        </order>  
                   </children>
              </sales>  
           </children>  
          </admin>
      </resources>  
   </acl>  

Я также удалил тег 'title', 'order', который кажется ненужным

Надеюсь, это полезно

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...