[imc-france-tech] [SPIP] Administrateur bridé

Dario Spagnolo imc-france-tech at lists.indymedia.org
Sat, 19 Oct 2002 00:54:27 +0200


Bonsoir à tous,

grace à Ioseba qui a trouvé une super astuce pour résoudre ce problème, j'ai 
pu en moins d'une demi heure pondre dix lignes de code (on ne rigole pas ! :) 
) qui nous permettent de regler vite fait et bien fait la question.

J'explique d'abord l'astuce.

Il s'agit de reserver le tout premier utilisateur (administrateur) inscrit 
dans la table spip_auteurs pour les taches vitales du site (effacement, 
backup, restoration de la base, modification du fonctionnement du site,...). 
Les geek se partageront donc un seul compte pour ces taches.

Je ne sais pas si l'astuce de Ioseba prévoyait d'installer le patch de 
verification de l'id de l'auteur ($connect_id_auteur) dans chaque page 
concernée ou bien dans un fichier d'inclusion commun à toutes les pages. J'ai 
décidé de placer le patch dans le fichier d'inclusion principal (inc.php3), 
ce qui est très pratique parce que ça permet de centraliser dans un seul 
fichier cette modification.

Voici donc le petit bout de code :

//******************************************************************
//Patch pour reserver le tout premier utilisateur (administrateur)
//inscrit dans la table spip_auteurs pour les taches vitales du site
//******************************************************************

//Tableau contenant les pages pour lesquells l'accès est restreint
$pages = array("config-contenu", "config-fonctions", "configuration", 
"admin_effacer", "admin_tech", "admin_vider");

//On recupere le nom du fichier appelé
$self = basename($_SERVER["PHP_SELF"], ".php3");

//La verification
if ($connect_id_auteur != 1 && in_array($self, $pages))
{
    echo "<html>\n<body>\n";
    echo "<b>Accès interdit</b><br>\n";
    echo "Cliquez ici pour revenir à la page précedente : <a href=\"" . 
$_SERVER["HTTP_REFERER"] . "\">retour</a><br>\n";
    echo "</body>\n</html>";
    die;
};
//************
//Fin du patch
//************ 

Désolé de ne pas utiliser l'espace cvs, je n'ai pas encore pris mes repères.
Ces quelques lignes sont à inserer à la ligne 26 du fichier /ecrire/inc.php3, 
juste après l'inclusion des differents "inc_".

Bonne soirée à tous !

Dario