2015-09-16 14 views
6

Ich habe ein benutzerdefiniertes Modul in Magento für Admin-Benutzer erstellt, ich habe bereit mit einer grundlegenden Einrichtung, ich habe eine Benutzerrolle erstellt und geben Ressourcenzugriffsberechtigung für dieses Modul, aber Wenn ich mich mit diesen Benutzeranmeldeinformationen anmelde, erhalte ich einen Zugriffsverweigerungsfehler, aber wenn ich mich als Administrator anmelde, kann ich auf das Modul zugreifen. Meine config.xml DateiZugriff verweigert für Admin-Benutzer in das benutzerdefinierte Modul Magento

<?xml version="1.0"?> 
<config> 
    <global> 
    <modules> 
     <Su_VirtualRetailer> 
      <version>0.1.0</version>  
     </Su_VirtualRetailer> 
    </modules> 
    <blocks> 
      <virtualretailer> 
       <rewrite> 
     <virtualretailer>Su_VirtualRetailer_Block_VirtualRetailer</virtualretailer> 
     </rewrite> 
      </virtualretailer> 
    </blocks> 
    <helpers> 
      <su_virtualretailer> 
       <!-- Helper definition needed by Magento --> 
       <class>Mage_Core_Helper</class> 
      </su_virtualretailer>    
     </helpers> 
    </global> 
    <frontend> 
     <routers> 
      <virtualretailer> 
       <use>standard</use> 
       <args> 
        <module>Su_VirtualRetailer</module> 
        <frontName>virtualretailer</frontName> 
       </args> 
      </virtualretailer> 
     </routers> 
     <layout> 
      <updates> 
       <virtualretailer> 
         <file>virtualretailer.xml</file> 
       </virtualretailer> 
      </updates> 
     </layout> 
    </frontend> 
    <admin> 
     <routers> 
      <adminhtml> 
       <args> 
        <modules> 
         <su_virtualretailer before="Mage_Adminhtml">Su_VirtualRetailer_Adminhtml</su_virtualretailer> 
        </modules> 
       </args> 
      </adminhtml> 
     </routers> 
    </admin> 

</config> 

Mein adminhtml.xml

<?xml version="1.0" encoding="UTF-8"?> 
<config> 
    <menu> 
     <retailertab module="su_virtualretailer" translate="title"> 
      <title>Virtual Retailer</title> 
      <sort_order>100</sort_order> 
      <children> 
       <index module="su_virtualretailer" translate="title"> 
        <title>Home</title> 
        <sort_order>1</sort_order> 
        <action>adminhtml/custom</action> 
       </index> 
       <myaccount module="su_virtualretailer" translate="title"> 
        <title>My Account</title> 
        <sort_order>2</sort_order> 
        <action>adminhtml/custom/list</action> 
       </myaccount> 
       <shop module="su_virtualretailer" translate="title"> 
        <title>Shop</title> 
        <sort_order>3</sort_order> 
        <action>adminhtml/custom/shop</action> 
       </shop> 
      </children> 
     </retailertab> 
    </menu> 
    <acl> 
     <resources> 
      <admin> 
       <children> 
        <retailertab translate="title" module="su_virtualretailer"> 
         <title>Virtual Retailer</title> 
         <sort_order>-100</sort_order> 
         <children> 
          <index translate="title"> 
           <title>Home Action</title> 
           <sort_order>1</sort_order> 
          </index> 
          <myaccount translate="title"> 
           <title>My Account Action</title> 
           <sort_order>2</sort_order> 
          </myaccount> 
          <shop translate="title"> 
           <title>Shop Action</title> 
           <sort_order>3</sort_order> 
          </shop> 
         </children> 
        </retailertab> 
       </children> 
      </admin> 
     </resources> 
    </acl> 
</config> 

i acl Berechtigungen in config.xml gegeben habe, bin ich nicht sicher, ob irgend etwas, das ich hier falsch gemacht haben. Admin-Benutzer-Login-Fehler Screenshot enter image description here

für Admin-Login funktioniert, Bildschirm Schuss enter image description here

+0

Ich denke Admin muss die Erlaubnis zu einem anderen Benutzer von "Role Resource" unter dem System> Berechtigungen> Rollen. – aforankur

+0

Ich habe diese Berechtigungen aber nicht funktioniert – Naveenbos

Antwort

15

Schließlich bekam ich die Antwort, in der Datei config.xml gab ich den Code unten

<acl> 
      <resources> 
       <all> 
        <title>Allow Everything</title> 
       </all> 

      </resources> 
</acl> 

und In meiner Controller-Datei gab ich unten Code

protected function _isAllowed(){ 
     return true; 
    } 

dann funktioniert alles wie erwartet

+1

Vielen Dank, Chef. Diese Funktion _isAllowed() hat meinen Tag gemacht ... Danke eine Tonne .. –

+2

Die meisten Module haben das erlaubt alles unter allen. Die Funktion _isAllowed fehlt. Upvoted! – jehzlau

+0

@Naveenbos Perfekte Antwort. Vielen Dank ! –

2

Ausgabe in Ihrer adminhtml.xml Datei

<config> 
    <menu> 
     <retailertab module="su_virtualretailer" translate="title"> 
      <title>Virtual Retailer</title> 
      <sort_order>100</sort_order> 
      <children> 
       <index module="su_virtualretailer" translate="title"> 
        <title>Home</title> 
        <sort_order>1</sort_order> 
        <action>adminhtml/custom</action> 
       </index> 
       <myaccount module="su_virtualretailer" translate="title"> 
        <title>My Account</title> 
        <sort_order>2</sort_order> 
        <action>adminhtml/custom/list</action> 
       </myaccount> 
       <shop module="su_virtualretailer" translate="title"> 
        <title>Shop</title> 
        <sort_order>3</sort_order> 
        <action>adminhtml/custom/shop</action> 
       </shop> 
      </children> 
     </retailertab> 
    </menu> 
    <acl> 
     <resources> 
      <admin> 
       <children> 
        <retailertab translate="title" module="su_virtualretailer"> 
         <title>Virtual Retailer</title> 
         <sort_order>-100</sort_order> 
         <children> 
          <index translate="title"> 
           <title>Home Action</title> 
           <sort_order>1</sort_order> 
          </index> 
          <myaccount translate="title"> 
           <title>My Account Action</title> 
           <sort_order>2</sort_order> 
          </myaccount> 
          <shop translate="title"> 
           <title>Shop Action</title> 
           <sort_order>3</sort_order> 
          </shop> 
         </children> 
        </retailertab> 
       </children> 
      </admin> 
     </resources> 
    </acl> 
</config> 

Update-Code gemäß oben.

nur Ihre acl Baumknoten ändern benutzerdefinierte zu retailertab

+0

Ich habe dies geändert, wie Sie Chirag gesagt haben, aber der gleiche Fehler wird erhalten, Zugriff verweigert. – Naveenbos

+0

Ich weiß nicht warum, aber irgendwie funktioniert das auch nicht in meinem Fall. –