Am o migrare care creează fișiere. Pentru proprietarii de fișiere, încerc să găsesc un utilizator existent prin e-mail și, dacă nu găsesc, creez unul din zbor. Problema este că acei utilizatori pe care îi creez trebuie să fie dezactivați (nu vreau să se autentifice pe site). Dar dacă le dezactivez și încerc să le folosesc ca proprietar de fișier, primesc mesajul:
„Această entitate (utilizator: 187) nu poate fi referită.”
Pot dezactiva validarea pentru acel fișier de migrare, dar se va dezactiva total, nu numai pentru această verificare de utilizator.
Am încercat să folosesc Account Switcher (de la abonatul evenimentului, reacționând la evenimentele pre_import și post_import) pentru a trece la utilizatorul 1 înainte de a începe migrarea și a reveni când se termină, dar nu m-a ajutat.
Aveți idee cum să faceți referire la utilizatorii cu dizabilități în timpul migrării, dar cu validarea menținută activată?
Actualizați:
Am făcut niște cercetări și această verificare se face la
\Drupal\user\Plugin\EntityReferenceSelection\UserSelection::buildEntityQuery()
Există un cod:
// Adăugarea verificării permisiunii este, din păcate, insuficientă pentru utilizatori: core
// ne cere să știm și despre conceptul de „blocat” și „activ”.
dacă (!$this->currentUser->hasPermission('administrați utilizatori')) {
$interogare->conditie('status', 1);
}
Și dacă comentez acele rânduri, nu se verifică dacă utilizatorul este dezactivat sau nu și validarea se încheie cu succes.
Lucru ciudat este că chiar și eu folosesc Account Switcher pentru a comuta la utilizatorul 1 și în interiorul meu plugin-ul de proces, utilizatorul este într-adevăr 1 când se execută acest cod, utilizatorul nu mai este 1, ci cel pe care l-am creat și l-am atribuit fișierului (dezactivat), așa că trebuie să fie că importul folosește și Account Switcher?
Ai idee cum să rezolv asta? Pot forța migrarea să fie rulată ca utilizator (admin) specific?