Página 1 de 1

Agregar usuario eliminado y asociarlo con sus antiguos mensajes

Publicado: 19 Jul 2017, 05:36
por Iselaya
Hola.
Administro un foro privado creado como punto de encuentro de reducidísimo grupo de amigos. Hace unos años, uno de los usuarios pidió ser eliminado del foro. Lo eliminé, manteniendo sus mensajes (en los que está visible el que era su nombre de usuario). Ahora, esta persona quiere incorporarse nuevamente al foro. Mi consulta es:
"¿Hay algún modo de asociar al "nuevo" usuario (aún no lo di de alta) los mensajes del "antiguo"? (Como si nunca hubiera sido eliminado). Gracias de antemano.

Datos de soporte:
URL: --
Estilo(s) usuado(s): Prosilver
Extensiones instaladas: no, que yo sepa y recuerde
Versión de phpBB: 3.2.1
Tu conocimiento: Principiante
Servidor: Pago
Es una actualización desde otra versión: de 3.2.0 a 3.2.1
Es una conversión desde otro tipo de Foro: no

Re: Agregar usuario eliminado y asociarlo con sus antiguos mensajes

Publicado: 19 Jul 2017, 22:41
por AlfredoRamos
Lo eliminaste desde la base de datos o desactivaste su cuenta? cómo lo hiciste?

Hay una extensión que te permite eliminar tu propia cuenta (me parece se usa o usaba aquí), esta asocia tus mensajes al usuario por default, y si ese es tu caso será dificil identificar los mensajes del antiguo usuario a los de los otros usuarios que eliminaron sus cuentas.

Re: Agregar usuario eliminado y asociarlo con sus antiguos mensajes

Publicado: 20 Jul 2017, 01:22
por Iselaya
Hola., gracias por responder.

Desde el PCA, opción borrar usuario y mantener mensajes.

Por el momento, la única solución que se me ocurrió fue crear nuevo usuario con el mismo nombre y (como no se eliminaron los mensajes y se muestra el nombre) ir editándolos asignándoles ese nuevo usuario, pero es una tarea muy pesada y lenta.

Aparte de esto, ¿hay alguna opción para editar la fecha de registro del usuario? (cambiar la nueva por la antigua).

Re: Agregar usuario eliminado y asociarlo con sus antiguos mensajes

Publicado: 20 Jul 2017, 03:33
por AlfredoRamos
Personalmente no le asignaría sus mensajes anteriores, el lo solicitó y debe atenerse a las consecuencias, aunque si aún así quieres hacerlo toma en cuenta que jamás quedará como antes.

Cosas a considerar en el ejemplo que propongo para que funcione (lo he probado):
  • Doy por hecho que sabes realizar consultas SQL (desde phpMyAdmin o por SSH) y que tienes los permisos para hacerlo
  • Haz una copia de todo antes de hacer nada
  • Los cambios hazlos en local, no en tu sitio directamente
  • testuser es el nombre del usuario anterior (el eliminado)
  • 55 es el ID del nuevo usuario
  • phpbb_ es el prefijo de las tablas
  • Preferiblemente, el usuario debe registrarse con exactamente el mismo nombre que usó con anterioridad
  • Realiza lo siguiente bajo tu propio riesgo, no me hago responsable de pérdida o daño de datos
Primero, verifica que todos sus temas aparezcan:

Código: Seleccionar todo

SELECT topic_id,forum_id,topic_poster,topic_first_poster_name FROM phpbb_topics WHERE topic_first_poster_name = 'testuser';
Lo mismo con sus posts:

Código: Seleccionar todo

SELECT post_id,topic_id,forum_id,poster_id,post_username FROM phpbb_posts WHERE poster_id = 1 AND post_username = 'testuser';
Si las consultas anteriores devuelven resultados:

Asocia los mensajes de la tabla de temas:

Código: Seleccionar todo

UPDATE phpbb_topics SET topic_poster = 55 WHERE topic_poster = 1 AND topic_first_poster_name = 'testuser';
Luego, los posts:

Código: Seleccionar todo

UPDATE phpbb_posts SET poster_id = 55, post_username = '' WHERE poster_id = 1 AND post_username = 'testuser';
Para cambiar la fecha de registro necesitas su timestamp UNIX, puedes generar este valor con esta herramienta, Google es tu amigo.

Código: Seleccionar todo

UPDATE phpbb_users SET user_regdate = 1420070400 WHERE user_id = 55;
En este ejemplo 1420070400 equivale a 01 de Enero de 2015 a las 00:00:00