Özel modül: Erişim reddedildi (ACL Sorunu)


12

Bir modül oluşturdum ve mükemmel çalışıyor; ancak bir duvara çarptım. Yönetici olarak giriş yaptığımda, her şey iyi. Ben acl ekledi:

<?xml version="1.0"?>
<config>
    <menu>
        <erp translate="title" module="firtal_deadstock">
            <title>ERP</title>
            <sort_order>99</sort_order>
            <children>
                <stock_management module="firtal_deadstock">
                                <title>Stock Management</title>
                                <children>
                                    <firtal_deadstock>
                                        <title><![CDATA[Firtal Stock Analysis]]></title>
                                        <sort_order>99</sort_order>
                                        <action>adminhtml/deadstock</action>
                                    </firtal_deadstock>
                                </children>
                </stock_management>
            </children>
        </erp>
    </menu>
    <acl>
        <resources> 
            <all>
                <title>Allow Everything</title>
            </all>
            <admin>
                <children>
                    <system>
                        <children>
                            <config>
                                <children>
                                    <firtal_deadstock translate="title">
                                        <title>Firtal Stock Analysis settings</title>
                                        <sort_order>100</sort_order>
                                    </firtal_deadstock>
                                </children>
                            </config>
                        </children>
                    </system>
                    <erp module="firtal_deadstock">
                        <children>
                            <stock_management module="firtal_deadstock">
                                <children>
                                    <firtal_deadstock translate="title" module="firtal_deadstock">
                                        <title>Firtal Stock Analysis</title>
                                    </firtal_deadstock>
                                </children>
                            </stock_management>
                        </children>
                    </erp>
                </children>
            </admin>
        </resources>
    </acl>
</config>  

Ancak bir role izin verir ve bu role sahip bir kullanıcı olarak oturum açarsam, menü noktasını (yapılandırma değil, gerçek menü noktası) görürler, ancak buna basarsam, Erişim Reddedildi hatası alıyorum:

resim açıklamasını buraya girin

Neyi kaçırıyorum?

Yanıtlar:


24

Yönetici denetleyicinizde denilen bir yöntem var _isAllowed.
Eğer bu doğruysa, bence yanlış şeyi döndürür.
Şöyle görünmelidir:

protected function _isAllowed()
{
    return Mage::getSingleton('admin/session')->isAllowed('erp/stock_management/firtal_deadstock');  
    //or at least
    //return Mage::getSingleton('admin/session')->isAllowed('erp/stock_management');  

}

YAA! Öyleydi. Aslında bir _isAllowed () eklemeye çalıştım, ama bu bana 503 verdi. Canlı bir sunucu üzerinde çalışıyordum, bu yüzden istisna verilerini göremedim. Açıkçası, sınıfın ortasında ilan ettiğimi unuttuğum için tekrar söylüyordum. Çok teşekkürler, iyi hafta sonları!
Dencker

veya şunu da yazabilirsiniz: korumalı işlev _isAllowed () {return true; }
Andhi Irawan

2
Ancak bu her yönetici için kullanılabilir olacaktır. Buna erişimi olmasa bile.
Marius
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.