사용자 정의 모듈 : 액세스 거부 (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');  

}

DUH! 그거였다. 실제로 _isAllowed ()를 추가하려고 시도했지만 503이 발생했습니다. 라이브 서버에서 작업 중이므로 예외 데이터를 볼 수 없었습니다. 수업 중반에 선언 한 것을 잊었을 때 다시 선언했기 때문입니다. 고마워요, 즐거운 주말 보내세요!
Dencker

또는 다음과 같이 작성할 수도 있습니다. protected function _isAllowed () {return true; }
Andhi Irawan

2
그러나 모든 관리자가 사용할 수 있습니다. 그가 접근 할 수 없어도 말이다.
Marius
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.