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é.
Aucune discussion
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 : |