mirror of
https://git.imnavajas.es/jjimenez/safekat.git
synced 2025-07-25 22:52:08 +00:00
77 lines
2.3 KiB
PHP
77 lines
2.3 KiB
PHP
<?php
|
||
|
||
namespace App\Controllers\Scripts;
|
||
|
||
use App\Controllers\BaseController;
|
||
use App\Models\Usuarios\UserModel;
|
||
use App\Entities\Usuarios\UserEntity;
|
||
use CodeIgniter\Shield\Authentication\Passwords\IdentityModel;
|
||
|
||
class UsersIntegrity extends BaseController
|
||
{
|
||
public function completarIdentidades()
|
||
{
|
||
$userModel = new UserModel();
|
||
|
||
|
||
// Buscar usuarios safekat.com no eliminados
|
||
$usuarios = $userModel
|
||
->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,
|
||
]);
|
||
}
|
||
}
|