agenciaE Posted November 27, 2014 Share Posted November 27, 2014 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 More sharing options...
nadie Posted November 27, 2014 Share Posted November 27, 2014 (edited) 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 November 27, 2014 by nadie (see edit history) 1 Link to comment Share on other sites More sharing options...
agenciaE Posted December 2, 2014 Author Share Posted December 2, 2014 Muchas gracias!Me ha servido tu ayuda.A qué te refieres con hacer un override del fichero que modificar el general? Link to comment Share on other sites More sharing options...
Recommended Posts