Restriction des pages consultables hors connexion

Principe simpe d’un accès restreint où seuls une liste de pages prédeterminées sont autorisé à la consultation.

Existant

Il existe déjà un certains nombre de contribution permettant de limiter l’accès au contenu d’un site soit par Acces-restreint-par-adresse-ip soit par accès restreint.

Cette contrib est relativement simple, elle montre comment filtrer l’accès à un site via les paramétres d’url (GET)

Pré requis

Il faut qu’un format d’url propre soit activé.
Via les urls propre, le serveur apache va reecrire les noms des pages en sous la forme spip.php?page=...&id_....

Ainsi _request('page') nous indiquera à tout moment la page demandée par le visiteur.

Code

Dans un fichier personnel mes_fonctions.php, vous pouvez faire :

$pages = array('','login','spip_pass');

if ($GLOBALS['auteur_session'] OR in_array(_request('page'),$pages) ) {
    //autorisé
} else {    
    include_spip('inc/headers');
    redirige_par_entete(generer_url_public('login'));  
}

Dans cet exemple, nous autorisons

  • l’accès global au site si le visiteur est authentifié. ($GLOBALS['auteur_session'])
  • l’accès aux pages definies dans $pages à l’ensemble des visiteurs

Nous pouvons noté le cas particulier '', cette page correspond à la page d’accueil, la page associée au squelette sommaire.html

Les autres pages correspondent :

  • à la page d’authentification (login)
  • à la page mot de passe oublié (spip_pass)

Évolution

Vous pouvez par la suite complexifié les autorisations de visites en regardant les variables d’id de page tel que _request('id_article') ou bien _request('id_rubrique')

De même via $GLOBALS['auteur_session']['statut'] vous pouvez gérer plus finement l’accès au site en fonction du statut du visiteur authentifié.

updated on 2 October 2019

Discussion

Aucune discussion

Comment on this article

Who are you?
  • [Log in]

To show your avatar with your message, register it first on gravatar.com (free et painless) and don’t forget to indicate your Email addresse here.

Enter your comment here

This form accepts SPIP shortcuts {{bold}} {italic} -*list [text->url] <quote> <code> and HTML code <q> <del> <ins>. To create paragraphs, just leave empty lines.

Add a document

Follow the comments: RSS 2.0 | Atom