it-swarm-es.tech

No puede acceder a la sección privada de este sitio

En un sitio de Joomla 3.3.3 que se actualizó desde 2.5 (última versión en ese momento), tenemos algunos problemas con respecto al inicio de sesión del usuario. Algunos usuarios han informado que después de registrarse, no pueden iniciar sesión y reciben la siguiente advertencia mensaje:

You cannot access the private section of this site.

Lo extraño es que esto solo ocurre para aquellos que intentan iniciar sesión después de la actualización.

Antes de la actualización, estábamos usando Community Builder como Gestión de usuarios, por lo que se encargó del registro, inicio de sesión, etc. etc. Ahora lo hemos eliminado, junto con Akeeba Subs, por lo que la única extensión que puede haber tenido algo que ver con este problema fue Kunena 3.0.6.

Después de haber revisado muchas publicaciones en el foro en la web, he intentado lo siguiente:

  1. Reconstruir las categorías en el Administrador de categorías a través del backend de Joomla
  2. Asegurando que Root Asset en el #__assets la tabla tiene un parent_id de 0 y ninguna otra fila tiene el mismo parent_id
  3. Usando el script de @ Elin AssetFix
  4. Eliminando todos los artículos y categorías descartados, haciendo el check-in global

Por mi vida no puedo entender por qué sucede esto.

¿Alguien ha tenido este problema antes y/o conoce una solución que funcione para Joomla 3.3?

4
Lodder

Finalmente descubrí cuál era el problema.

Resultó que al migrar Joomla 2.5 a 3.3, muchos de los registrantes más recientes no han sido asignados al grupo de usuarios "Registrado", por lo tanto no tenían ningún permiso.

Terminé ejecutando la siguiente consulta MySQL en PhpMyAdmin:

SELECT `id` FROM `jos_users` WHERE `id` NOT IN (SELECT `user_id` FROM `jos_user_usergroup_map`)

que obtiene todos los ID de usuario de las tablas users que no pertenecen al user_usergroup_map mesa.

Luego exporté los resultados, abrí el archivo en un editor de texto y cambié:

INSERT INTO `jos_users` (`id`) VALUES

a

INSERT INTO `jos_user_usergroup_map` (`user_id`, `group_id`) VALUES

Entonces para todos los valores (98), (99), (100), etc., hice una búsqueda y reemplazo masivo, que reemplazó esto:

),

con este

, 2)

Esto ahora garantiza que hay 2 argumentos necesarios para las 2 columnas en esta tabla de base de datos. 2 es la ID predeterminada del grupo de usuarios "Registrados".

La última línea del archivo tiene un punto y coma en lugar de una coma, por lo tanto, la búsqueda y el reemplazo masivos no lo atenderán. Así que simplemente cambié esto manualmente.

Si alguien más tiene los mismos problemas, estaré más que feliz de publicar algunas capturas de pantalla que podrían ayudar un poco más.

Editar

La solución anterior en una línea:

INSERT INTO `jos_user_usergroup_map` (`user_id`, `group_id`) SELECT `id`, '2' FROM `jos_users` WHERE `id` NOT IN (SELECT `user_id` FROM `jos_user_usergroup_map`);
5
Lodder