JoeSatriani Posted October 21, 2011 Share Posted October 21, 2011 Bonjour à tous, j'aimerai savoir s'il serait possible de restreindre l'accès au site à un client non connecté. Faut il modifier les fichier ou bien existe t'il un module qui le permet ? Cordialement. Joe Link to comment Share on other sites More sharing options...
Maury Girard Posted October 21, 2011 Share Posted October 21, 2011 Il existe un module vente privé sur l'addons.prestashop.com qui restreint l'accès à votre boutique sinon , un autre module existe (je n'ai plus le nom mais c'est un free) pour restreindre les catégories , pour tells ou tells clients et biensur si celui ci est connecté ou non aura un aperçu différent en fonction de cela. Cordialement Link to comment Share on other sites More sharing options...
luci1 Posted October 22, 2011 Share Posted October 22, 2011 Bonjour, Tu peux tester si le client est connecté avec la fonction isLogged() de la classe Cookie. Link to comment Share on other sites More sharing options...
Poox Posted October 22, 2011 Share Posted October 22, 2011 Bonjour Elkastor, Je dois aussi le faire mais je ne vois ou il faut poser le test pour que ca s'applique à toute les pages du front. Si tu passe par la Merci ! Link to comment Share on other sites More sharing options...
luci1 Posted October 24, 2011 Share Posted October 24, 2011 Bonjour Poox, Regarde du coté de la classe FrontController, toutes les autres classes controller se basent sur cette classe. Link to comment Share on other sites More sharing options...
JoeSatriani Posted October 24, 2011 Author Share Posted October 24, 2011 Bonjour Poox, Regarde du coté de la classe FrontController, toutes les autres classes controller se basent sur cette classe. Bonjour elkastor, que faut'il faire avec la classe FrontController ? Si tu pourrai m'expliquer un peu plus en details stp, je t'en serai reconnaissant. Cordialement Link to comment Share on other sites More sharing options...
JoeSatriani Posted October 24, 2011 Author Share Posted October 24, 2011 J'ai remplacé ça : if ($this->auth AND !$cookie->isLogged($this->guestAllowed)) Tools::redirect('authentication.php'.($this->authRedirection ? '?back='.$this->authRedirection : '')); par ça : // si utilisateur pas connecté alors restriction d'acces au site. if (!$cookie->isLogged() AND !Tools::isSubmit('ajax')) Tools::redirect('my-account.php'); // if ($this->auth AND !$cookie->isLogged($this->guestAllowed)) // Tools::redirect('authentication.php'.($this->authRedirection ? '?back='.$this->authRedirection : '')); mais j'obtiens un message d'erreur : Cette page Web présente une boucle de redirection. La page Web à l'adresse http://localhost/Codep_EDM/authentication.php a déclenché trop de redirections. Pour résoudre le problème, effacez les cookies de ce site ou autorisez les cookies tiers. Si le problème persiste, il peut être dû à une mauvaise configuration du serveur et n'être aucunement lié à votre ordinateur. Link to comment Share on other sites More sharing options...
luci1 Posted October 24, 2011 Share Posted October 24, 2011 Essaies de surcharger la fonction displayContent() : public function displayContent() { Tools::safePostVars(); self::$smarty->assign('errors', $this->errors); if ( $this->auth AND !$cookie->isLogged($this->guestAllowed)) self::$smarty->display(_PS_THEME_DIR_.'ton_template.tpl); } et dans le fichier ton_template.tpl tu indiques "Vous n'êtes pas autorisé.... veuillez vous connecter..." Je n'ai pas essayé, à voir ce que ça donne. Link to comment Share on other sites More sharing options...
JoeSatriani Posted October 24, 2011 Author Share Posted October 24, 2011 ok, merci, je test et je vous tiens au courant. Link to comment Share on other sites More sharing options...
JoeSatriani Posted October 25, 2011 Author Share Posted October 25, 2011 Bonjour, j'ai toujours un problème, avec les modifications que vous avez indiquées. Message d'erreur : Cette page Web présente une boucle de redirection. La page Web à l'adresse http://localhost/Codep_EDM/my-account.php a déclenché trop de redirections. Pour résoudre le problème, effacez les cookies de ce site ou autorisez les cookies tiers. Si le problème persiste, il peut être dû à une mauvaise configuration du serveur et n'être aucunement lié à votre ordinateur. En ayant remplacé le code : //test // public function displayContent() // { // Tools::safePostVars(); // self::$smarty->assign('errors', $this->errors); // } //test public function displayContent() { Tools::safePostVars(); self::$smarty->assign('errors', $this->errors); if ( $this->auth AND !$cookie->isLogged($this->guestAllowed)) self::$smarty->display(_PS_THEME_DIR_.'authentication.tpl'); } Un poco d'aide por favor ? Link to comment Share on other sites More sharing options...
luci1 Posted October 25, 2011 Share Posted October 25, 2011 Bonjour, Essaies de modifier le controller qui gère la page pour laquelle tu souhaites restreindre l'affichage : exemple, pour restreindre l’affichage des catégories, tu surcharges le controller CategoryController.php : le code initial est : public function displayContent() { parent::displayContent(); self::$smarty->display(_PS_THEME_DIR_.'category.tpl'); } et surcharges avec : public function displayContent() { global $cookie; parent::displayContent(); if( !$cookie->isLogged()) self::$smarty->display(_PS_THEME_DIR_.'error_authentication.tpl'); else self::$smarty->display(_PS_THEME_DIR_.'category.tpl'); } et dans ton fichier error_authentication.tpl tu mets : Vous devez être connecté pour voir cette page. <a href="{$link->getPageLink('authentication.php')}">Se connecter</a> 2 Link to comment Share on other sites More sharing options...
Sbizz Posted October 25, 2011 Share Posted October 25, 2011 Bonjour, Je pense qu'il serait plus intéressant de mettre cette condition dans la fonction preProcess du FrontController.php. Cette dernière s’exécute avant le header. Link to comment Share on other sites More sharing options...
JoeSatriani Posted October 25, 2011 Author Share Posted October 25, 2011 Bonjour, Essaies de modifier le controller qui gère la page pour laquelle tu souhaites restreindre l'affichage : exemple, pour restreindre l’affichage des catégories, tu surcharges le controller CategoryController.php : le code initial est : public function displayContent() { parent::displayContent(); self::$smarty->display(_PS_THEME_DIR_.'category.tpl'); } et surcharges avec : public function displayContent() { global $cookie; parent::displayContent(); if( !$cookie->isLogged()) self::$smarty->display(_PS_THEME_DIR_.'error_authentication.tpl'); else self::$smarty->display(_PS_THEME_DIR_.'category.tpl'); } et dans ton fichier error_authentication.tpl tu mets : Vous devez être connecté pour voir cette page. <a href="{$link->getPageLink('authentication.php')}">Se connecter</a> Bonjour elkastor, ton code est vraiment extra, pour ma part, j'ai juste modifié le nom du fichier sur lequel tu renvois si on n'est pas connecté, j'ai mis "authentification.tpl" parce que celui que tu m'as mis me renvoi une 404. Je n'ai pas eu besoin de mettre les phrases pour se connecter dans les .tpl En tout cas merci pour tout. Cordialement. Link to comment Share on other sites More sharing options...
luci1 Posted October 26, 2011 Share Posted October 26, 2011 Bonjour, j'ai juste modifié le nom du fichier sur lequel tu renvois si on n'est pas connecté, j'ai mis "authentification.tpl" parce que celui que tu m'as mis me renvoi une 404. C'est normal, c'est un fichier qu'il fallait créer à part . En tout cas merci pour tout. De rien c'est un plaisir. A bientôt. 2 Link to comment Share on other sites More sharing options...
dimam Posted March 6, 2013 Share Posted March 6, 2013 Bonjour, Est-il possible de le faire pour le mode multiboutique? En effet, j'aimerais avoir une partie boutique particuliers et une autre pour les pros. dans ce cas de figure faudrait restreindre l'accès aux catégories pour les utilisateurs non-authentifiés de coté des pros, mais laisser l'accès de côté des particuliers. Serais reconnaissant pour toute réponse, Cordialement, DM Link to comment Share on other sites More sharing options...
dimam Posted March 6, 2013 Share Posted March 6, 2013 Bonjour, Est-il possible de le faire pour le mode multiboutique? En effet, j'aimerais avoir une partie boutique particuliers et une autre pour les pros. dans ce cas de figure faudrait restreindre l'accès aux catégories pour les utilisateurs non-authentifiés de coté des pros, mais laisser l'accès de côté des particuliers. Serais reconnaissant pour toute réponse, Cordialement, DM Au fait, dans le 1.5 on peut limiter l'accès aux catégories à des groupes de clients c.a.d. suffit de restreindre l'accès des catégories aux clients authentifiés, et ils ne vont même pas s'afficher. je cherche maintenant comment laisser les gens créer un compte du côté particuliers et d'interdire la création du compte aux clients pros (pour le faire soi même). Cordialement Link to comment Share on other sites More sharing options...
corky61 Posted March 18, 2013 Share Posted March 18, 2013 Bonjour, j'ai ce code là pour un formulaire et je voudrai le rendre visible une fois le visiteur authentifié seulement: où dois-je placer iflogged etc... ? <?php // if the from is loaded from WordPress form loader plugin, // the phpfmg_display_form() will be called by the loader if( !defined('FormmailMakerFormLoader') ){ # This block must be placed at the very top of page. # -------------------------------------------------- require_once( dirname(__FILE__).'/form.lib.php' ); phpfmg_display_form(); # -------------------------------------------------- }; function phpfmg_form( $sErr = false ){ $style=" class='form_text' "; ?> <form name="frmFormMail" action='' method='post' enctype='multipart/form-data' onsubmit='return fmgHandler.onsubmit(this);'> <input type='hidden' name='formmail_submit' value='Y'> <div id='err_required' class="form_error" style='display:none;'> <label class='form_error_title'>Please check the required fields</label> </div> <ol class='phpfmg_form' > <li class='field_block' id='field_0_div'><div class='col_label'> <label class='form_field'>Nom du produit</label> <label class='form_required' >*</label> </div> <div class='col_field'> <input type="text" name="field_0" id="field_0" value="<?php phpfmg_hsc("field_0", ""); ?>" class='text_box'> <div id='field_0_tip' class='instruction'></div> </div> </li> <li class='field_block' id='field_1_div'><div class='col_label'> <label class='form_field'>Taille</label> <label class='form_required' > </label> </div> <div class='col_field'> <input type="text" name="field_1" id="field_1" value="<?php phpfmg_hsc("field_1", ""); ?>" class='text_box'> <div id='field_1_tip' class='instruction'></div> </div> </li> <li class='field_block' id='field_2_div'><div class='col_label'> <label class='form_field'>Photo 1</label> <label class='form_required' >*</label> </div> <div class='col_field'> <input type="file" name="field_2" id="field_2" value="" class='text_box' onchange="fmgHandler.check_upload(this);"> <div id='field_2_tip' class='instruction'></div> </div> </li> <li class='field_block' id='field_3_div'><div class='col_label'> <label class='form_field'>Photo 2</label> <label class='form_required' > </label> </div> <div class='col_field'> <input type="file" name="field_3" id="field_3" value="" class='text_box' onchange="fmgHandler.check_upload(this);"> <div id='field_3_tip' class='instruction'></div> </div> </li> <li class='field_block' id='field_4_div'><div class='col_label'> <label class='form_field'>Photo 3</label> <label class='form_required' > </label> </div> <div class='col_field'> <input type="file" name="field_4" id="field_4" value="" class='text_box' onchange="fmgHandler.check_upload(this);"> <div id='field_4_tip' class='instruction'></div> </div> </li> <li class='field_block' id='field_5_div'><div class='col_label'> <label class='form_field'>Description du produit</label> <label class='form_required' >*</label> </div> <div class='col_field'> <textarea name="field_5" id="field_5" rows=4 cols=25 class='text_area'><?php phpfmg_hsc("field_5"); ?></textarea> <div id='field_5_tip' class='instruction'></div> </div> </li> <li class='field_block' id='phpfmg_captcha_div'> <div class='col_label'><label class='form_field'>Security Code:</label> <label class='form_required' >*</label> </div><div class='col_field'> <?php phpfmg_show_captcha(); ?> </div> </li> <li> <div class='col_label'> </div> <div class='form_submit_block col_field'> <input type='submit' value='Submit' class='form_button'> <span id='phpfmg_processing' style='display:none;'> <img id='phpfmg_processing_gif' src='<?php echo PHPFMG_ADMIN_URL . '?mod=image&func=processing' ;?>' border=0 alt='Processing...'> <label id='phpfmg_processing_dots'></label> </span> </div> </li> </ol> </form> <?php phpfmg_javascript($sErr); } # end of form function phpfmg_form_css(){ $formOnly = isset($GLOBALS['formOnly']) && true === $GLOBALS['formOnly']; ?> <style type='text/css'> <?php if( !$formOnly ){ echo" body{ margin-left: 18px; margin-top: 18px; } body{ font-family : Verdana, Arial, Helvetica, sans-serif; font-size : 13px; color : #474747; background-color: transparent; } select, option{ font-size:13px; } "; }; // if ?> ol.phpfmg_form{ list-style-type:none; padding:0px; margin:0px; } ol.phpfmg_form li{ margin-bottom:5px; clear:both; display:block; overflow:hidden; width: 100% } .form_field, .form_required{ font-weight : bold; } .form_required{ color:red; margin-right:8px; } .field_block_over{ } .form_submit_block{ padding-top: 3px; } .text_box, .text_area, .text_select { width:300px; } .text_area{ height:80px; } .form_error_title{ font-weight: bold; color: red; } .form_error{ background-color: #F4F6E5; border: 1px dashed #ff0000; padding: 10px; margin-bottom: 10px; } .form_error_highlight{ background-color: #F4F6E5; border-bottom: 1px dashed #ff0000; } div.instruction_error{ color: red; font-weight:bold; } hr.sectionbreak{ height:1px; color: #ccc; } #one_entry_msg{ background-color: #F4F6E5; border: 1px dashed #ff0000; padding: 10px; margin-bottom: 10px; } <?php phpfmg_text_align();?> </style> Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now