Score:0

ดูการส่งออกข้อมูลด้วยตารางที่กำหนดเองจะไม่ทำงานหากผู้ใช้ไม่ใช่ผู้ดูแลระบบ

ธง vn

ฉันกำลังทำงานบนเว็บไซต์ Drupal 9 ที่แสดงข้อมูลตารางที่กำหนดเอง และฉันจำเป็นต้องให้ลิงก์ส่งออก CSV/XLS สำหรับเว็บไซต์นั้น
ในขณะนี้ ฉันได้กำหนดมุมมองที่ใช้ข้อมูลตารางที่กำหนดเองด้วย Vดูตารางที่กำหนดเอง โมดูลและทำงานได้ดี ฉันได้ติดตั้ง ดูการส่งออกข้อมูล โมดูลและกำหนดค่าจอแสดงผลเพื่อส่งออกข้อมูลเป็น CSV จอแสดงผลนี้ติดอยู่กับจอแสดงผลฐาน
ปุ่ม CSV แสดงบนมุมมอง และเมื่อฉันเข้าสู่ระบบในฐานะผู้ดูแลระบบ ทุกอย่างก็ทำงานได้ดี เมื่อฉันเป็นเพียงผู้ใช้ที่ผ่านการรับรองความถูกต้อง และฉันคลิกที่ปุ่ม จอแสดงผลที่แนบมากับการส่งออก CSV จะแสดงและส่งออกในรูปแบบ CSV (ดังนั้นในไฟล์จึงมี HTML ทั้งหมด)

ฉันคิดว่ามันเป็นปัญหาเกี่ยวกับสิทธิ์: การส่งออกใช้โมดูลหลัก REST และโมดูลนี้กำลังดำเนินการตรวจสอบสิทธิ์ในเอนทิตี (เช่น ผู้ใช้สามารถเข้าถึงเอนทิตี) ในมุมมองของฉัน ไม่มีเอนทิตี เนื่องจากข้อมูลมาจาก ดูตารางที่กำหนดเอง โมดูล (ผ่าน hook_data()).

ฉันไม่แน่ใจว่ามีวิธีง่ายๆ หรือไม่ หรือฉันต้องกำหนดจุดสิ้นสุดของตัวเอง (และค้นหาวิธีแก้ไขเพื่อเก็บตัวกรองที่เปิดเผยไว้) นอกจากนี้ ดูการส่งออกข้อมูล PHPExcel โมดูลไม่พร้อมใช้งานสำหรับ Drupal 8 และ Drupal 9

Score:1
ธง cn

หากสิ่งที่คุณทำได้ผลเมื่อเข้าสู่ระบบในฐานะผู้ใช้ 1 (ผู้ดูแลระบบ) แสดงว่าคุณต้องปรับแต่งสิทธิ์บางอย่างและล้างแคชเพื่อให้มีผลกับ "ผู้ใช้" หรือ "บทบาท" อื่นๆ

เพื่อทดสอบ ฉันจะสร้างผู้ใช้ทดสอบและบทบาทที่เรียกว่า "บทบาททดสอบ" จากนั้นตรวจสอบให้แน่ใจว่าคุณได้กำหนดบทบาททดสอบให้กับผู้ใช้ทดสอบแล้ว จากนั้นตรวจสอบให้แน่ใจว่าคุณให้ "บทบาททดสอบ" ตามที่โมดูลต้องการ .... ฉันดูด้านล่างในเอกสารของ ดูตารางการส่งออก

คุณยังสามารถตรวจสอบว่าผู้ใช้/บทบาทที่ผ่านการรับรองความถูกต้องมีการตรวจสอบสิ่งต่อไปนี้หรือไม่ หากคุณไม่ต้องการสร้างผู้ใช้/บทบาททดสอบ (/admin/people/permissions)

การอนุญาตด้านล่างมาพร้อมกับโมดูล ฉันคิดว่าและคุณจะเห็นว่าหลังจากติดตั้งโมดูลและล้างแคชแล้ว เป็นต้น

  • กำหนดสิทธิ์ของผู้ใช้ในการดูแลระบบ » คน » สิทธิ์:

    • เพิ่มตารางที่กำหนดเองในมุมมอง

      ให้สิทธิ์การเข้าถึงแก่ผู้ใช้เพื่อเพิ่มตารางที่กำหนดเองลงในระบบ

    • จัดการตารางที่กำหนดเองทั้งหมดในมุมมอง

      ให้ผู้ใช้เข้าถึงเพื่อจัดการตารางที่กำหนดเองทั้งหมด เพิ่มโดยทั้งหมด ผู้ใช้

    • จัดการตารางที่กำหนดเองในมุมมอง

      ให้ผู้ใช้เข้าถึงเพื่อจัดการตารางที่กำหนดเอง

  • จัดการตารางแบบกำหนดเองในการดูแลระบบ » โครงสร้าง » มุมมอง » ดูแบบกำหนดเอง ผู้ชายโต๊ะ

ตรวจสอบอีกครั้งว่าคุณมีการกำหนดค่านี้สำหรับไฟล์ โมดูลการส่งออกข้อมูล (พิเศษ #8)

สุดท้าย เข้าสู่ระบบในฐานะ "ผู้ใช้ทดสอบ" และเช็คเอาท์

ตรวจสอบบันทึกหากขั้นตอนบางอย่างไม่ทำงาน (ผู้ดูแลระบบ/รายงาน/dblog)

vn flag
ขอบคุณสำหรับความช่วยเหลือของคุณ @salah-1 ! สิทธิ์ของ Views Custom Table จะจัดการกับการกำหนดตารางแบบกำหนดเองใน backoffice เท่านั้น ไม่ใช่กับการส่งออก แต่เพื่อความแน่ใจ ฉันได้ทำตามที่คุณพูดและตรวจสอบการอนุญาตทุกอย่างสำหรับผู้ใช้ที่ผ่านการตรวจสอบสิทธิ์แล้ว แต่ปัญหายังคงอยู่ (หลังจากล้างแคช) :/ เมื่อฉันตรวจสอบบันทึก ฉันเห็นการแจ้งเตือน: `ประกาศ: ดัชนีที่ไม่ได้กำหนด: #content_type dans Drupal\views_data_export\Plugin\views\display\DataExport::buildStandard() (/home/a-adamezyk/dev/orange-cmu/web/modules/contrib/views_data_export/src/Plugin /views/display/DataExport.php ligne 190)`
salah-1 avatar
cn flag
คุณมีอาร์เรย์บ้างไหม? ข้อผิดพลาดชี้ไปที่ดัชนีอาร์เรย์ที่ไม่ได้กำหนด คุณเขียนรหัสนั้นหรือไม่ /home/a-adamezyk/dev/orange-cmu/web/modules/contrib/views_data_export/src/Plugin/views/display/DataExport.php? ถ้าเป็นเช่นนั้นดูบรรทัดที่ 190หากคุณไม่ได้เขียนโค้ดนั้น ให้ดูอย่างใกล้ชิดตามประเภทเนื้อหาหรือฟิลด์ที่คุณกำหนดไว้
vn flag
ฉันมีอาร์เรย์ สำหรับผู้ดูแลระบบ จะมีข้อมูล content_type + csv สำหรับผู้ใช้ที่ผ่านการรับรองความถูกต้อง ไม่มี content_type และไม่มีข้อมูล csv ฉันไม่ได้เขียนโค้ดนี้ มันมาจากโมดูลการส่งออกข้อมูลมุมมอง ในโมดูลนี้ ฉันเห็นว่าบรรทัดส่งคืนข้อมูลที่ดีสำหรับผู้ดูแลระบบ แต่ไม่ใช่สำหรับบทบาทอื่น: `$output = (string) $renderer->renderRoot($build);` แต่ฉันไม่เข้าใจ ทำไม...

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา