Score:1

การอ้างอิงถึงผู้ใช้ที่ปิดใช้งานระหว่างการย้ายข้อมูล

ธง in

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

"เอนทิตีนี้ (ผู้ใช้: 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 อีกต่อไป แต่เป็นสิ่งที่ฉันสร้างและกำหนดให้กับไฟล์ (ปิดการใช้งาน) ดังนั้น ต้องเป็นการนำเข้านั้นใช้ตัวสลับบัญชีด้วยหรือไม่ มีความคิดวิธีแก้ปัญหานี้หรือไม่? ฉันสามารถบังคับให้ย้ายข้อมูลเป็นผู้ใช้เฉพาะ (ผู้ดูแลระบบ) ได้หรือไม่

usmanjutt84 avatar
in flag
การย้ายข้อมูลของคุณขึ้นอยู่กับโมดูลที่คุณกำหนดเองหรือไม่
usmanjutt84 avatar
in flag
เมื่อฉันโอนย้ายจาก D7 เป็น D9 มันทำงานได้อย่างสมบูรณ์แบบผ่านทางการเขียนโปรแกรมในฝั่งของฉัน `$d9Node->setOwnerId($d9Uid);`
in flag
ใช่แล้ว. ฉันมีปลั๊กอินกระบวนการแบบกำหนดเองซึ่งคัดลอกไฟล์ S3 bucket ไปยัง bucket จากนั้นฉันก็ลงทะเบียนไฟล์เหล่านั้นกับระบบไฟล์ของ drupal ด้วย File::create() โดยที่ฉันส่ง user id เป็นหนึ่งในพารามิเตอร์ ไฟล์เหล่านั้นถูกใช้โดยการย้ายข้อมูลเพื่อสร้างเอนทิตีอิมเมจสื่อโดยอ้างอิงไฟล์ที่สร้างขึ้น
in flag
แต่ฉันต้องการวิธีแก้ปัญหาทั่วไป - การย้ายข้อมูลส่วนใหญ่จะไม่ใช้ปลั๊กอินที่กำหนดเองของฉัน
Alireza Tabatabaeian avatar
cn flag
คุณหมายถึงต้องการให้ผู้ใช้ไซต์ทั้งหมดถูกปิดการใช้งานใช่หรือไม่ ทำไมคุณไม่ปล่อยให้เปิดใช้งานและปิดการใช้งานทั้งหมดหลังจากการย้ายข้อมูลเสร็จสิ้น
in flag
@AlirezaTabatabaeian ไม่ใช่ทั้งหมด แค่สิ่งที่ฉันกำลังสร้าง และฉันต้องการให้สามารถอ้างอิงพวกเขาในฐานะเจ้าของไฟล์/เอนทิตี ในขณะที่เปิดใช้การตรวจสอบความถูกต้องสำหรับไฟล์การย้ายข้อมูล
Alireza Tabatabaeian avatar
cn flag
ในกรณีนี้ ฉันจะเพิ่มฟิลด์บูลีน ให้เรียกมันว่า `field_should_disabled` และในกรณีของการสร้างผู้ใช้ประเภทนั้น จะให้ค่า True แก่พวกเขา จากนั้นฉันจึงสามารถย้ายข้อมูลต่อโดยผู้ใช้เหล่านี้เปิดใช้งานและปิดใช้งานเมื่อการย้ายข้อมูลเสร็จสิ้น สามารถลบฟิลด์คู่ได้หลังจากนั้น
in flag
@AlirezaTabatabeian ขอโทษ ฉันไม่เข้าใจคุณ แม้ว่าฉันจะเปลี่ยนผู้ใช้เป็นผู้ใช้ 1 ในระหว่างการย้ายข้อมูล แต่จุดที่ somoe เปลี่ยนกลับเป็นผู้ใช้ที่ฉันสร้างขึ้น ซึ่งถูกปิดใช้งานและการอ้างอิงล้มเหลว นั่นคือปัญหา
Alireza Tabatabaeian avatar
cn flag
ฉันขอแนะนำให้คุณปล่อยให้ผู้ใช้เปิดใช้งานอยู่ เพื่อที่คุณจะสามารถย้ายข้อมูลได้โดยไม่มีปัญหา แต่คุณไม่ต้องการให้ผู้ใช้เปิดใช้งานบนไซต์ของคุณ ดังนั้นวิธีแก้ไขคือโพสต์การปิดใช้งานผู้ใช้เหล่านี้ และเพื่อติดตามว่าผู้ใช้รายใดควรเป็น ปิดใช้งานและผู้ใช้รายใดที่ไม่ควรตั้งค่าในบัญชีของพวกเขา (โดยใช้ฟิลด์พิเศษ) ตอนนี้ฉันชัดเจนมากขึ้นไหม :)
in flag
ใช่ ชัดเจนแล้ว อาจเป็นวิธีแก้ปัญหาบางอย่าง ฉันจะต้องดูแลผู้ใช้ทั้งหมดที่ใช้ในการย้ายข้อมูล ไม่เพียงแต่ผู้ใช้ที่ฉันสร้าง เนื่องจากผู้ใช้ที่มีอยู่ก็สามารถปิดใช้งานได้เช่นกัน แต่สามารถทำได้

โพสต์คำตอบ

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