ฉันมีการโยกย้ายที่สร้างไฟล์ สำหรับเจ้าของไฟล์ ฉันกำลังพยายามค้นหาผู้ใช้ที่มีอยู่ทางอีเมล และหากไม่พบ ฉันจะสร้างทันที ปัญหาคือผู้ใช้ที่ฉันสร้างต้องถูกปิดใช้งาน (ฉันไม่ต้องการให้พวกเขาลงชื่อเข้าใช้เว็บไซต์) แต่ถ้าฉันปิดใช้งานและพยายามใช้เป็นเจ้าของไฟล์ ฉันจะได้รับข้อความ:
"เอนทิตีนี้ (ผู้ใช้: 187) ไม่สามารถอ้างอิงได้"
ฉันสามารถปิดใช้งานการตรวจสอบสำหรับไฟล์การย้ายข้อมูลนั้น แต่จะปิดใช้งานทั้งหมด ไม่ใช่แค่การตรวจสอบผู้ใช้นี้เท่านั้น
ฉันลองใช้ Account Switcher (จากผู้สมัครสมาชิกเหตุการณ์, ตอบสนองต่อเหตุการณ์ pre_import และ post_import) เพื่อเปลี่ยนไปใช้ผู้ใช้ 1 ก่อนที่การย้ายข้อมูลจะเริ่มต้นและเปลี่ยนกลับเมื่อสิ้นสุด แต่ไม่ได้ผล
มีความคิดที่จะอ้างอิงถึงผู้ใช้ที่ถูกปิดใช้งานในระหว่างการย้ายข้อมูล แต่เปิดการตรวจสอบไว้หรือไม่
อัปเดต:
ได้ทำการวิจัยและการตรวจสอบนี้ทำที่
\Drupal\user\Plugin\EntityReferenceSelection\UserSelection::buildEntityQuery()
มีรหัส:
// การเพิ่มการตรวจสอบสิทธิ์นั้นไม่เพียงพอสำหรับผู้ใช้: แกน
// ต้องการให้เรารู้เกี่ยวกับแนวคิดของ 'ถูกบล็อก' และ 'ใช้งานอยู่'
ถ้า (!$this->currentUser->hasPermission('ดูแลผู้ใช้')) {
$query->condition('สถานะ', 1);
}
และถ้าฉันแสดงความคิดเห็นในบรรทัดเหล่านั้น ก็จะไม่ถูกตรวจสอบว่าผู้ใช้ถูกปิดใช้งานหรือไม่ และการตรวจสอบจะสิ้นสุดลง
สิ่งที่แปลกคือแม้ฉันจะใช้ Account Switcher เพื่อสลับไปยังผู้ใช้ 1 และภายในปลั๊กอินกระบวนการของฉัน ผู้ใช้จริงๆ คือ 1 เมื่อรหัสนี้ถูกเรียกใช้ ผู้ใช้จะไม่ใช่ 1 อีกต่อไป แต่เป็นสิ่งที่ฉันสร้างและกำหนดให้กับไฟล์ (ปิดการใช้งาน) ดังนั้น ต้องเป็นการนำเข้านั้นใช้ตัวสลับบัญชีด้วยหรือไม่
มีความคิดวิธีแก้ปัญหานี้หรือไม่? ฉันสามารถบังคับให้ย้ายข้อมูลเป็นผู้ใช้เฉพาะ (ผู้ดูแลระบบ) ได้หรือไม่