Jump to content

Cómo restringir acceso a invitados Prestahop 1.6


agenciaE

Recommended Posts

Hola tengo una tiendo online en prestashop 1.6 y necesito restringir el acceso a usuarios invitados, que no se hayan registrado y mandarles automaticamente a la página de autenticación sin dejarles ver nada de la tienda.

 

Hasta ahora lo único que he conseguido es abrir los .tpl como header y footer y mediante la variable $logged si un usuario no estaba logueado le mandaba autamaticamente a la pagina de registro o identificación, pero el problema viene con el body en la web.

La redirección esta programada al instante pero eso no evita que durante 1, 2 segundos el usuario pueda ver un instante la tienda o un producto y luego le expulse, necesitaría también "capar" el body, lo he intentado de la siguiente forma:

 

El <body> de la web comienza en el header.tpl y finaliza en el footer.tpl, con lo cual en el header comienzo agregando el {if $logged} para saber si es invitado o no y cierro el if en el footer.tpl junto a la etiqueta </body>. Esto debería de funcionar pero no lo hace y me gustaría saber si existe otra forma más sencilla de "capar" el body o estaba abriendo-cerrando mal la condición en estos archivos para que no llegue a funcionar.

 

Muchas gracias, un saludo.

Link to comment
Share on other sites

Me he confundido en mi anterior respuesta, asi que la he borrado xDD..
 
Revisa ahora mi respuesta:
 
Hola !
 
Supongo que conoces que puedes Catalogo -> Categorías (y por lo tanto todos los productos de esas categorías de forma automática), restringir Categorías por grupos de clientes y que en Clientes -> Grupos restringir los módulos por grupos de usuarios.
 
Si por otro lado, lo que quieres es que si un usuario no registrado entrar vaya redireccionado a la pagina de registro, prueba en tu fichero:
 

/classes/controller/FrontController.php

Dentro de la función:
 

public function init()
{

Justo debajo de:
 

parent::init();

Añadir esto:
 

if (!$this->context->customer->isLogged() && $this->php_self != 'authentication' && $this->php_self != 'password')
Tools::redirect('index.php?controller=authentication?back=my-account'); 

Recuerda que es mejor hacer un override del fichero que modificar el original.
 
Información obtenida de aquí: http://www.prestashop.com/forums/topic/220431-solved-force-redirect-to-login-page/

Edited by nadie (see edit history)
  • Like 1
Link to comment
Share on other sites

  • nadie locked this topic
Guest
This topic is now closed to further replies.
×
×
  • Create New...