カスタムモジュール:アクセスが拒否されました(ACLの問題)


12

私はモジュールを作成しましたが、完全に機能します。しかし、私は壁にぶつかった。管理者としてログインしているときは、何も問題はありません。私はこれを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>  

しかし、ロールに権限を付与し、そのロールを持つユーザーとしてログインすると、メニューポイント(設定ではなく実際のメニューポイント)が表示されますが、それを押すと、アクセス拒否エラーが発生します。

ここに画像の説明を入力してください

私は何が欠けていますか?

回答:


24

私はあなたがあなたの管理コントローラにと呼ばれるメソッドを持っている予感を持っています_isAllowed
それが本当なら、それは間違ったものを返すと思います。
次のようになります。

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

}

ああ!それだけでした。実際に_isAllowed()を追加しようとしましたが、503が追加されました。ライブサーバーで作業していたため、例外データが表示されませんでした。明らかにそれはクラスの真ん中で宣言したのを忘れていたので、それを再宣言していたからです。どうもありがとう、素晴らしい週末を!
デンカー、2014

または、次のように記述することもできます。protected function _isAllowed(){return true; }
アンディイラワン

2
しかし、それによってすべての管理者が利用できるようになります。彼がそれにアクセスするべきではない場合でも。
マリウス
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.