Bonjour,
Une question redondante dans le forum et la liste SPIP : comment restreindre une partie du site aux seuls membres identifiés ou mettre en place une partie « privée » ??
Voici une approche qui m’a été inspirée par un filtre écrit par Emilien ARNAUD de chat-diffusion. Son filtre permettait de protéger un texte par un mot de passe.
J’essaie de faire la même chose à la différence que je veux protéger l’article.
- Pré-requis :
Mise en place au préalable du système d’authentification (Login_public + Logout) associé à l’utilisation du statut membre des visiteur inscrits aux forums sur abonnement. Voir la doc de Spip
Voici le flitre :
function proteger($texte)
{
global $auteur_session;
$p = strpos($texte, '§proteger§'); // rechercher §proteger§ dans $texte
if (!$p) // si pas trouvé alors (pas page protégée)
return $texte; // renvoyer $texte au complet C'EST FINI sinon la suite
else
{
?>
<script>alert(" 1 - <?php echo $auteur_session['statut'] ?>");</script>
<?php // alert pour moi, phase test
if (!$auteur_session)
{
?>
<script type="text/javascript">
alert(" 2 - NO good - <?php echo $auteur_session['statut'] ?>");
window.history.back();
</script>
<?php // alert pour moi, phase test
return $texte;
// exit();
}
else
{
?>
<script>alert(" 3 - GOOD ! - <?php echo $auteur_session['statut'] ?>");</script>
<?php // alert pour moi, phase test
$t = ereg_replace("§proteger§", "", $texte); // remplacer §proteger§ par le vide dans $texte
return $t;
}
}
}
Le rédacteur doit mettre dans le pavé CHAPEAU ce mot de passe : §proteger§
Bien sur ce mot peut être modifié, mais il faut le changer également dans la fonction.
Le filtre s’appelle dans le squelette ainsi :
(chapo
Le choix du chapeau est dû au fait que le texte à vérifier est normalement moins long.
- Le problème :
Ca marche bien tant qu’on ne s’est pas authentifié. Mais une fois que l’on s’est authentifié, la protection ne marche plus.
C’est sûrement dû au cache mais je ne sais pas comment surmonter ce souci.
Si quelqu’un a une idée pour améliorer ou peut confirmer qu’on ne peut rien y faire, je suis preneur.
Cette approche permettrait d’éviter de bidouiller les différents squelettes (à vérifier) et surtout de permettre aux rédacteurs de choisir quel article ils veulent mettre en accès restreint.
@+
Discussions par date d’activité
Une discussion
Nous cherchons à mettre en place un login pour l’espace public. Quelqu’un sait-il faire ?
Répondre à ce message
Ajouter un commentaire
Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :
Merci d’avance pour les personnes qui vous aideront !
Par ailleurs, n’oubliez pas que les contributeurs et contributrices ont une vie en dehors de SPIP.
Suivre les commentaires : |