ฉันได้ค้นพบว่าในชั้นเรียน\Magento\Backend\App\AbstractAction
(บรรพบุรุษของทุกการกระทำของตัวควบคุมผู้ดูแลระบบ) มีสมาชิกชื่อ_publicActions
ที่ใช้ในการตรวจสอบความลับคีย์เช่นนี้
if (is_array($this->_publicActions) && in_array($this->getRequest()->getActionName(), $this->_publicActions)) {
return true;
}
ซึ่งหมายความว่าหากชื่อการกระทำบางอย่างอยู่ในรายการ_publicActions
คุณสามารถเข้าถึงการดำเนินการได้โดยไม่ต้องใช้รหัสลับใน URL
นี่เป็นพรสำหรับการพัฒนาและการดีบักเนื่องจากคุณสามารถทำได้ROOT/admin/module/controller/action
ด้วยตนเองโดยไม่จำเป็นต้องรู้รหัสลับของผู้ดูแลระบบ แต่สิ่งที่ฉันไม่เข้าใจคือเหตุผลที่ฉันสามารถเข้าถึงหน้าแก้ไขผลิตภัณฑ์โดยไม่มีรหัสลับได้
เพียงแค่โทรหน้าผลิตภัณฑ์แก้ไขใด ๆ ROOT/admin/catalog/product/edit/id/{product_id_here}
เช่นนี้
publicActions
สมาชิกจะถูกเขียนทับสำหรับการสั่งซื้อ (ที่ช่วยให้ดัชนีและมุมมอง) ในผลิตภัณฑ์ (สำหรับการแก้ไข) และในการควบคุมการเปลี่ยนเส้นทางสำหรับการเปลี่ยนเส้นทาง
ตอนนี้คำถามของฉัน:
ทำไมการแก้ไขบางอย่างอนุญาตโดยไม่มีรหัสลับและเมื่อใด / ฉันควรอนุญาตให้โมดูล CRUD ที่กำหนดเองโดยไม่มีรหัสลับได้อย่างไร