Modul khusus: Akses ditolak (Masalah ACL)

12

Saya membuat modul, dan itu berfungsi dengan sempurna; Namun, saya menabrak dinding. Ketika saya masuk sebagai admin, semuanya baik-baik saja. Saya menambahkan ini di acl:

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

Tetapi jika saya memberikan izin untuk peran dan masuk sebagai pengguna dengan peran itu, mereka melihat titik menu (bukan konfigurasi, tetapi titik menu sebenarnya), tetapi jika saya menekannya, saya mendapatkan kesalahan Akses Ditolak:

masukkan deskripsi gambar di sini

Apa yang saya lewatkan?

Dencker
sumber

Jawaban:

24

Saya punya firasat yang Anda miliki di controller admin Anda metode yang disebut _isAllowed.
Jika itu benar, saya pikir itu mengembalikan hal yang salah.
Seharusnya terlihat seperti ini:

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');  

}
Marius
sumber
DUH! Itu dia. Saya benar-benar mencoba untuk menambahkan _isAllowed (), tetapi itu memberi saya 503. Saya sedang bekerja di server langsung, jadi saya tidak bisa melihat data pengecualian. Jelas itu karena saya sedang mendeklarasikan ulang karena saya lupa saya menyatakannya di tengah-tengah kelas. Terima kasih banyak, selamat berakhir pekan!
Dencker
atau Anda juga dapat menulis: protected function _isAllowed () {return true; }
Andhi Irawan
2
Tapi itu akan membuatnya tersedia untuk setiap admin. Bahkan jika dia seharusnya tidak memiliki akses ke sana.
Marius