Mô-đun tùy chỉnh: Truy cập bị từ chối (Vấn đề ACL)


12

Tôi đã tạo ra một mô-đun, và nó hoạt động hoàn hảo; Tuy nhiên, tôi đã va vào một bức tường. Khi tôi đăng nhập với tư cách quản trị viên, mọi thứ đều tốt. Tôi đã thêm điều này trong 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>  

Nhưng nếu tôi cấp quyền cho một vai trò và đăng nhập với tư cách là người dùng với vai trò đó, họ sẽ thấy điểm menu (không phải cấu hình, mà là điểm menu thực tế), nhưng nếu tôi nhấn nó, tôi sẽ gặp lỗi Truy cập từ chối:

nhập mô tả hình ảnh ở đây

Tôi đang thiếu gì?

Câu trả lời:


24

Tôi có một linh cảm bạn có trong bộ điều khiển quản trị của mình một phương thức được gọi _isAllowed.
Nếu đó là sự thật, tôi nghĩ nó trả lại điều sai.
Nó sẽ giống như thế này:

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

}

TÂT NHIÊN! Điều đó là vậy đó. Tôi thực sự đã cố gắng thêm _is ALLowed (), nhưng điều đó mang lại cho tôi 503. Tôi đang làm việc trên một máy chủ trực tiếp, vì vậy tôi không thể thấy dữ liệu ngoại lệ. Rõ ràng đó là vì tôi đã khai báo lại khi tôi quên tôi đã khai báo nó ở giữa lớp. Cảm ơn một bó, có một ngày cuối tuần tuyệt vời!
Dencker

hoặc bạn cũng có thể viết: hàm được bảo vệ _is ALLowed () {return true; }
Andhi I Girls

2
Nhưng điều đó sẽ làm cho nó có sẵn cho mọi quản trị viên. Ngay cả khi anh không nên có quyền truy cập vào nó.
Marius
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.