Xprotector - SPIP addon (version 1.0.8)

Mise à jour le 19 avril 2004  

Introduction

Xprotector est un programme en php pour créer et gérer des rubriques restreintes SPIP . On peut également gérer des utilisateurs qui ont accès à ces rubriques.

Pour ne pas confondre les utilisateurs et les auteurs, rappelez-vous qu'un auteur SPIP a accès à l'administration de votre projet web pour publier des articles. Par contre un utilisateur des rubriques restreintes est un visiteur de votre page web qui à accès par un mot de passe aux rubriques restreintes que vous avez protégez avec Xprotector.

Le projet Xprotector est hébergé par Sourceforge et distribuer sous la licence GPL.

Attention!

  • Xprotector est toujours en phase beta. Je ne peux pas garantir un fonctionnement à 100%.
  • Créer un administrateur ne fonctionne pas sous Windows. Si vous essayez à le faire, vous ne pouvez plus accéeder l'administration. Il faut effacer dans le répertoire Xprotector/admin/ les fichiers .htaccess et .htpasswd.
  • Tous les versions avant 1.04b ne fonctionnaient pas avec les versions php < 4.2.0.
  • Certaines versions php refusaient d'accepter un correct login dans une rubrique protégée. Ce bug est corrigé dans la version Xprotector 1.0.5b.
  • Xprotector ne fonctionne pas avec une version PHP < 4.1.
  • Les versions avant 1.0.8 ne sont pas compatible avec MySql >= 4.1
  • Il faut que le module Apache mod_rewrite soit installer!!!!

Installation (par étapes)

  • Décompressez le fichier Xprotector-1.0.7.tar.gz (.zip) et faites un upload du répertoire "Xprotector" via ftp sur le serveur dans le répertoire principal de l'installation de SPIP. Copier également le fichier .htaccess qui se trouve au dessus du répertoire Xprotector dans le répertoire principal de Spip. Si un tel fichier existe déjà il faut ajouter la ligne suivante dedans:

    # pas d'accès directe sur les fichiers interne de spip
    #
    RewriteRule ^inc-[^\.]*\.php.* - [F]

  • Vérifiez si vous avez les droits pour écrire dans le répertoire /Xprotector/admin.
  • Pointez votre browser sur http://www.mon-site-spip.fr/Xprotector/admin/. Xprotector va créer quelques tabelles mysql. Si tout va bien vous vous retrouvez dans le menu Xprotector.
  • Il est fortement recommander à créer un administrateur dans le menu "Admin". Sinon tout le monde peut accéder le menu Xprotector.
  • Pour donner une protection à vos pages il faut modifier les fichiers php qui contrôlent les squelettes qui doivent afficher le contenu d'une rubrique. Ou autrement dit: Les fichiers php qui sont appelés par :

    xxxxx.php3?id_rubrique=X
    xxxxx.php3?id_article=X
    xxxxx.php3?id_breve=X
    xxxxx.php3?id_forum=X


    Exemple:
    Le squelette rubriques.html est contrôlé par le fichier php rubriques.php3. Ouvrez ce fichier dans un éditeur et collez la ligne suivante dedans:

    include("Xprotector/include/Xprotect.php");

    Maintenant ce fichier doit se montrer comme suivant:

    <?php

    include("Xprotector/include/Xprotect.php");

    $fond = "rubrique";
    $delais = 3600;

    include ("inc-public.php3");

    ?>

    Par cette ligne php les rubriques restreintes sont uniquement accessible par des visteurs enregistrer. Ainsi il faut procéder pour les autres fichiers php qui doivent afficher du contenu protéger.

Documentation

La distribution des droits d'accès pour les rubriques se fait par des groupes d'utilisateurs. Vous pouvez joindre plusieurs rubriques à un groupe. Tous les utilisateurs de ce groupe ont accès à ces rubriques.

Exemple qui explique la relation entre les rubriques, groupes et visiteurs:

Visiteur "C" peut accéder les rubriques "Y" + "YB" parce que "C" est un membre du groupe "HIDE".
Visiteur "B peut accéder les rubriques "Y" + "YB" + "YA" + "YAB" parce que "B" est un membre du groupe "JECKYL".

La rubrique "YAA" ne peut être accéder par personne parce qu'elle appartient à aucun groupe. Elle n'est même pas accessible si elle n'est pas sélectionnée dans le menu Home comme restreinte. Il suffit qu'une rubrique parent soit sélectionnée restreinte et du moment toutes les sous rubriques le sont automatiquement.

La rubrique "X" est accessible par tout le monde. C'est la seule rubrique que visiteur "A" peut accéder.

Fontionnement

1. Choisir les rubriques à accès restreint

Dans le menu " Home ", vous devez d'abord choisir les rubriques pour lesquelles vous voulez réserver l'accès à des utilisateurs identifiés.

Attention, xprotector n'inclut pas automatiquement toutes les sous-rubriques. Si vous avez oublié à ajouter une sous-rubrique, elle n'est accessible par personne, donc inutilisable. Vous devez donc choisir toutes les sous-rubriques individuellement pour les rendre accessible.

Dès qu'une rubrique a été sélectionnée pour en restreindre l'accès, cette rubrique n'est plus accessible pour le public.

2. Définir les utilisateurs

Un utilisateur est une personne qui dispose d'un login et d'un mot de passe pour accéder à certaines rubriques. Vous créez les utilisateurs et vous administrez leurs paramètres dans le menu " User/groupes " lien "Administration d'utilisateurs ". Pour créer un nouvel utilisateur appuyez sur le bouton crée.

Définissez au moins autant d'utilisateurs que vous avez de profils différents d'utilisateurs.

3. Créer des groupes et leur donner un accès aux rubriques protégées

C'est au niveau de la définition des groupes que les informations quant aux utilisateurs et aux rubriques protégées (dont l'accès est restreint) seront réunies.

Il faut d'abord définir des groupes dans le menu " User/groupes " lien " nouveau groupe ". Un groupe est un 'regroupement' de personnes qui ont tous accès aux mêmes rubriques protégées. La caractéristique essentielle d'un groupe n'est donc pas tellement sa composition au niveau des utilisateurs, mais les rubriques auxquelles ses membres ont accès.

Ensuite vous devez placer les différents utilisateurs dans les groupes respectifs par le boutton " ajoutez des utilisateurs ".

Pour en finir la procédure il faut distribuer les rubriques sur les groupes. Appuyez sur le bouton " Admin " d'un groupe et ajouter des rubriques pour ce profil de groupe. Si vous ajoutez une rubrique à ce groupe, tous ses membres y ont accès. N'oubliez pas à mettre le statut du groupe sur " actif ", sinon le profil de groupe n'a aucun effet.

Si vous déplacez un membre d'un groupe vers un autre seuls les rubriques auxquels a accès cet utilisateur seront adaptées en fonction des droits du nouveau groupe. Par contre le login et le mot de passe de l'utilisateur déplacé restent inchangés puisqu'ils sont définis au niveau de l'utilisateur.

Vous devez donc créer un groupe d'utilisateurs pour chaque " configuration d'accès ".

Questions

Est-ce que Xprotector modifie l'installation SPIP?
Xprotector se trouve dans le répertoire /Xprotector et va créer pendant votre première utilisation quelques tabelles dans la même BD ou les tabelles de SPIP se trouvent. Ces noms de tabelles commencent par "xp_". Toutes les autres modifications sont fait par vous-même sur les fichiers php qui contrôlent les squelettes.

Quelle est le degré de protection que Xprotector donne au contenu des rubriques restreintes?
En ce qui concerne le contenu qui ce trouve dans la BD, je n'ai pas trouvé un moyen pour accéder le contenu d'une rubrique restreinte sans login et mot de passe. Ce qui ne veut pas dire que c'est impossible. Le problème est le contenu dans le répertoire /IMG. C'est l'endroit ou SPIP met tous les fichiers qui sont liés à vos documents. Images, PDF, DOC, RTF .... e.t.c. Ce répertoire est ouvert à tout le monde. Si quelqu'un connaît le nom d'un fichier il peut aussi le sortir de la.

J'ai crée un groupe et assigner des rubriques et des utilisateurs mais quand même les utilisateurs n'ont pas accès aux rubriques?
Pour qu'un utilisateur puisse accéder une rubrique restreinte il faut qu'il ait le statut actif et que le groupe ou il se retrouve dedans a le statut actif. Evidemment il faut que la rubrique restreinte soit assigner au groupe. Et il faut que le browser du visiteur accepte des cookies.

Est-ce qu'on peut effacer definitivement les utilisateurs qui se retrouvent en poubelle?
Les utilisateurs qui se retrouvent en poubelle sont effacés automatiquement après 4 heures. De même pour les groupes.

Est-ce que Xprotector fonctionne avec toutes les versions SPIP?
Xprotector est testé avec la version SPIP 1.5.2. Xprotector utilise le fichier "inc_connect.php3" ou "inc_connect.php" dans le répertoire /ecrire et les information de l'appel de la fonction php "spip_connect_db()". Je ne sais pas comment ce fichier se présente dans d'autres versions.

Est-ce qu'on peut modifier le layout de la page login?
Oui. Editez la page /Xprotector/login.tpl. Mais attention! Ne modifiez pas les noms des éléments du formulaire html.

Est-ce que ça marche avec le cache SPIP?
Oui. Le cache fonctionne comme avant.

Est-ce que ça ralenti mon site?
Pas tellement. Un test sur un PIII 800 avec 10000 utilisateurs distribuer sur 4 groupes a donné un ralentissement de 0.005 secondes.

Comment faire une mise à jour vers une nouvelle version?
Charge la nouvelle version sur celle qui est installée. Fait un login dans le menu d'administration. La mise à jour se fait automatiquement.

J'ai d'autres questions. Je dois m'adresser à qui?
xprotector@open-publisher.net



_______________________________________________________________________
© 200
4 Armand Turpel xprotector@open-publisher.net
Web: http://xprotector.sourceforge.net
Distribution sous licence GPL

Merci à Mike Mathias du www.cercle.lu pour son support.