where('deleted_at', null) //->like('username', '@safekat.com') ->findAll(); $resultados = []; foreach ($usuarios as $usuario) { $email = $usuario->username . "@safekat.com"; // 1. Verificar si el usuario ya tiene identidad tipo email_password $tieneIdentidad = array_filter( $usuario->getIdentities(), fn($identity) => $identity->type === 'email_password' ); if (!empty($tieneIdentidad)) { $resultados[] = "✅ Ya tiene identidad: {$email}"; continue; } // 2. Verificar si ya existe una identidad globalmente con ese email $db = db_connect(); $builder = $db->table('auth_identities'); $existeGlobal = $builder ->where('type', 'email_password') ->where('secret', $email) ->get() ->getFirstRow(); if ($existeGlobal) { $resultados[] = "⚠️ Email ya registrado en otra identidad: {$email}"; continue; } // 3. Crear y guardar identidad try { $identity = $usuario->createEmailIdentity([ 'email' => $email, 'password' => 'Temporal123!', // reemplazar por valor real si lo tenés ]); //$userModel->saveEmailIdentity($identity); $resultados[] = "➕ Identidad creada: {$email}"; } catch (\Throwable $e) { $resultados[] = "❌ Error con {$email}: " . $e->getMessage(); } } return $this->response->setJSON([ 'status' => 'completado', 'procesados' => count($usuarios), 'resultados' => $resultados, ]); } }