Error de Acceso Denegado en Prestashop 1.7. Soluciรณn.

Si has actualizado tu Prestashop desde la versiรณn 1.6 a la 1.7, uno de los errores mรกs comunes (mucho) es que, al entrar en alguno (muchos o pocos) de los menรบs del backend te de un error de “Acceso Denegado”. Hemos hecho varias actualizaciones entre dichas versiones y este error ha ocurrido casi siempre. No estรก bien conseguida la migraciรณn de permisos.

Las primeras veces que nos ocurriรณ nos volvimos locos. Pero hoy os dejamos las soluciones. Una vez lo comprendes, es sencillo.
Estamos suponiendo que estรกs intentando acceder con SuperAdministrador, y no con un usuario con menos privilegios (que puede que no tenga permisos porque se los haya quitado el admin).

Nota: vas a necesitar acceso gestionar la base de datos o por el panel, o instalando un PhpMyAdmin o similar.

Cรณmo solucionar el problema de Acceso Denegado en un Prestashop 1.7

Lo primero es entender que las tablas en Prestashop que gestionan los permisos son (los prefijos pueden cambiar en tu instalaciรณn, pongo los de por defecto):

  • pss_access. Este es una tabla con dos campos numรฉricos. El id_profile y el id_authorization_role. El primero es el id del rol de usuario. El segundo el id del permiso que se estรก considerando.



    Puedes comprobar el id_profile de tu usuario en la tabla pss_employee pero el del SuperAdmin (el que normalmente tienes para la gestiรณn de la tienda) es 1.
  • pss_authorization_role: Esta tiene tambiรฉn dos campos, id_authorization_role y slug. El id_authorization_role es el id del permiso, como en la tabla anterior, y es numรฉrico. El slug es el nombre de dicho permiso (asรญ nos enteramos).

Bรกsicamente vamos a tener dos casos:

a) Que nos fallen muchas pรกginas del backend.

Entonces lo primero que debemos hacer es conseguir exportar, desde PhpMyAdmin las tablas anteriores, pss_access y pss_authorization_role de una instalaciรณn nueva de Prestashop 1.7. Esto es lo mรกs difรญcil de conseguir. Nosotros lo que solemos hacer es usar una mรกquina virtual (siempre tenemos de prueba en nuestros equipos) o un WAMPP, y hacer una instalaciรณn rรกpida. Desde ahรญ exportamos las tablas.

Despuรฉs, tambiรฉn desde el PhpMyAdmin, vamos a:

– Exportar toda la base de datos para hacer una copia de seguridad (nunca estรก de mรกs).
– Borrar las tablas pss_access y pss_authorization_role que nos estaban dando error.
– Importar las que hemos conseguido de la instalaciรณn limpia de 1.7

Si haces esto, verรกs que ya tendrรกs acceso a la mayorรญa de las pรกginas a las que antes no tenรญas.
Puede que ya lo tengas. Si te falla alguna mรกs en concreto (puede pasar), sigue los pasos del apartado b).

b) Que nos fallen sรณlo algunas pรกginas del backend.

Entonces merece cambiar los permisos a mano. Para eso lo primero que tenemos que saber es quรฉ permiso es el que nos falla. Despuรฉs tenemos que mirar su id, y luego aรฑadir el id de administrador junto a su id a la tabla de pss_access.
Es decir:

  • Vamos a mirar la url de la pรกgina que nos da error. serรก algo como :
    https://tudominio.es/directorioadmin/index.php?controller=AdminPsThemeCustoConfiguration&token=xxxxxxxxxxxxxxxxxxxxxx
    En negrita te he puesto dรณnde aparece el nombre del controlador (permiso) que tenemos que buscar.
  • Nos vamos a la tabla pss_authorization_role y en el apartado slug buscamos cuรกl contiene ese nombre que hemos puesto en negrita. Te recomiendo que busques con la opciรณn LIKE %….%. Verรกs que hay varios (leer, editar, guardar). Puede que sรณlo te de error uno o varios. Es seguir el mismo proceso.
  • Miramos el id_authorization_role que corresponde a este slug. Lo apuntamos (para nuestro ejemplo 618 que corresponde a ROLE_MOD_TAB_ADMINPSTHEMECUSTOADVANCED_READ) .
  • Vamos a la tabla pss_access y aรฑadimos un nuevo valor. En id_profile el 1 (admin) y en id_authorization_role el id del slug que hemos conseguido antes.
    Por ejemplo:
    INSERT INTO pss_access (id_profile, id_authorization_role) VALUES ('1', '618');
  • Puede que de un error de valor duplicado, no hagas caso, si buscas sรณlo habrรก 1.
  • Ahora comprueba la pรกgina que te daba error, deberรญas poder acceder bien.
  • Haz esto con todas las que fallen.

Con esto ya deberรญas tener este error tan molesto solucionado.

Deja un comentario

Resumen de nuestra Polรญtica de Privacidad

  • Responsable:ย SmythSys IT Consulting SLNE.
  • Finalidad:ย Gestionar y moderar los comentarios.
  • Legitimaciรณn:ย Necesitas dar tu consentimiento para publicar un comentario.
  • Destinatarios:ย Tus datos se alojan en los servidores de OVH.
  • Derechos:ย Tienes derecho a acceder, rectificar, limitar y suprimir los datos en la direcciรณn del responsable (en nuestra polรญtica de privacidad).

Time limit is exhausted. Please reload CAPTCHA.