Accès webmestre incomplet

© Christian PAULUS. Document créé le 9 octobre 2010 , mis à jour le 9 octobre 2010.

Aucune route n'est longue à côté d'un ami. Proverbe japonais

Accueil du site > Astuces > SPIP > Accès webmestre incomplet

Administration / SPIP 2.1.2

Après une mise à jour du site en version 2.1.2, certains remarqueront que l’installateur du site, le premier webmestre, qui a un ID_AUTEUR égal à 1, ne retrouve pas certains contrôles qui lui étaient jusque là accessibles.

Un nouveau champ dans la table spip_auteurs a vu le jour avec cette version de SPIP. Et pour une raison obscure, ce champ, qui devrait contenir la valeur ’oui’ pour ce premier webmestre, contient sa valeur par défaut d’installation : ’non’, privant par la même l’accès privilégé à certains modules faisant appel à la fonction autoriser(), telles que par exemple la restauration de la base, les raccourcis de maintenance de SPIP-Listes, etc.

Pour corriger, quelques secondes via phpMyAdmin ou un UPDATE SQL fera l’affaire.

Pour les réfractaires de la ligne de commande ou de l’administration SQL, voici un petit squelette à lancer sur votre site. Il ne fait qu’afficher les valeurs actuelles de l’auteur connecté, et pour l’auteur #1, le premier webmaster, un formulaire lui permet de modifier la valeur du champ webmestre.

Ne pas oublier de supprimer ce squelette de votre site après utilisation.

Attention : comme d’habitude, ce morceau de code sous licence GPL3 est distribué car potentiellement utile, mais SANS AUCUNE GARANTIE, ni explicite ni implicite, y compris les garanties de commercialisation ou d’adaptation dans un but spécifique. Vous êtes seul responsable de ce que vous installez sur votre machine.

#HTTP_HEADER{"Cache-Control: no-store, no-cache, must-revalidate"}
#HTTP_HEADER{Pragma: no-cache}
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="#LANG" lang="#LANG" dir="#LANG_DIR">
[<!--(#REM)

   CP: www.quesaco.org
   @license: GPL3
   @version: Sat Oct  9 17:40:57 CEST 2010

   Page à appeler dans le style
       http://<server_addr>/?page=verifier_webmestre

-->]
<head>
<title>V&#233;rification webmaster</title>
<INCLURE{fond=inc-head}>
<style type="text/css">
<!--
   body {padding-top:1em}
   h2 {border-bottom: 1px solid grey;
       margin:0.5em auto 0.75em; width:100ex}
   ul#session {text-align:left; margin:0 auto; width:120ex}
   li {color:grey}
   span.name {color:black; font-weight:700}
   span.value {color:black}
   #modif-webmestre {margin:1em auto; width:60ex}
   div.submit {text-align:right}
-->
</style>

</head>
<body id="page_verifier_webmestre">

[(#SESSION{statut}|=={0minirezo}|non)
   Svp, <a href="[(#URL_PAGE{login}|parametre_url{url,#SELF})]"
       rel="nofollow" class='login_modal'>
       identifiez-vous</a>
       pour acc&#233;der &#224; cette page.
       </body></html>
   <?php exit(-1); ?>
]

<?php

   $id_auteur = '[(#SESSION{id_auteur})]';
   $curr = '[(#SESSION{webmestre})]';
   
   if(
       ($id_auteur == 1)
       && ($set = _request('webmestre'))
       /* && ($curr != $set) */
   )
   {
       $set = (($set == 'oui') ? 'oui' : 'non');
       sql_update(
           array('spip_auteurs')
           , array('webmestre' =>sql_quote($set))
           , 'id_auteur=1 LIMIT 1'
       );
   }
   
   // requette SQL pour ne pas utiliser le cache interne
   $webmestre = sql_getfetsel(
       'webmestre'
       , array('spip_auteurs')
       , 'id_auteur='.sql_quote($id_auteur).' LIMIT 1');
   
       ?>
   
   
<h1>Information sur le compte <span class="value">#SESSION{nom}</span></h1>
<p><span style="font-weight:700">SPIP #EVAL{$GLOBALS['spip_version_branche']}
   [&nbsp;&#091;<span style="color:grey">
   (#EVAL{trim(version_svn_courante(_DIR_RACINE))})</span>&#093;]</span>
   &nbsp;code: #EVAL{$GLOBALS['spip_version_code']}
   &nbsp;base: #EVAL{$GLOBALS['spip_version_base']}
   &nbsp;@ #EVAL{date(DATE_RFC822)}
</p>

<h2>Informations du site</h2>

<ul id="session">
   <li><span class="name">Nom du site</span> :
       <span class="value">#NOM_SITE</span></li>
   <li><span class="name">URL du site</span> :
       <span class="value">#URL_SITE_SPIP</span></li>
   <li><span class="name">Nom du site</span> :
       <span class="value">#URL_SITE</span></li>
</ul>

<h2>Informations de session</h2>

[<!--(#REM)

   Les données de la balise SESSION sont en cache.
   
   Utiliser plutôt une boucle pour des données à jour :
   
-->]

<BOUCLE_a(AUTEURS){id_auteur=#SESSION{id_auteur}}{0,1}>

<ul id="session">
   <li><span class="name">id_auteur</span> :
       num&#233;ro interne unique de l’auteur:
       <span class="value">#ID_AUTEUR</span></li>
   <li><span class="name">nom</span> :
       nom de signature de l’auteur:
       <span class="value">#NOM</span></li>
   <li><span class="name">email</span> :
       l&#8217;adresse mail de l&#8217;auteur:
       <span class="value">#EMAIL</span></li>
   <li><span class="name">nom_site</span> :
       nom/titre du site internet de l&#8217;auteur:
       <span class="value">#NOM_SITE</span></li>
   <li><span class="name">url_site</span> :
       adresse http du site internet de l&#8217;auteur:
       <span class="value">#URL_SITE</span></li>
   <li><span class="name">login</span> :
       identitifiant de connexion:
       <span class="value">#LOGIN</span></li>
   <li><span class="name">statut</span> :
       0minirezo (administrateur ou administrateur restreint)
       , 1comite (r&#233;dacteur), 6forum (visiteur):
       <span class="value">#STATUT</span></li>
   <li><span class="name">maj</span> :
       date et heure de la derni&#232;re modification
       des donn&#233;es de l&#8217;auteur:
       <span class="value">#MAJ</span></li>
   <li><span class="name">webmestre</span> :
       <span class="value"><?php echo($webmestre); ?></span></li>
</ul>

<p><a href="http://www.spip.net/fr_article3979.html">
   Cliquez sur ce lien pour en savoir plus sur
   la balise SESSION ou la description des champs.</a></p>


[<!--(#REM)

   Formulaire de modification
   activé pour installateur

-->]

[(#ID_AUTEUR|=={1}|?{' '})
       
<h2>Modification webmestre pour auteur ID ##ID_AUTEUR</h2>

<form action="" id="modif-webmestre" method="post">
   <fieldset>
       <legend>Définir une valeur pour le champ webmestre : </legend>
       <label>
           <input type="radio" name="webmestre" value="oui"
               <?php echo($webmestre=='oui'?'checked="checked"':''); ?> />
                oui
       </label>
       <label>
           <input type="radio" name="webmestre" value="non"
               <?php echo($webmestre!='oui'?'checked="checked"':''); ?> />
                non
       </label>
   </fieldset>
   <div class="submit">
       <input class="submit" type="submit" name="valider"
                      value="<:bouton_valider:>" />
   </div>
</form>
]

</BOUCLE_a>
</B_a>
Pas d&#39;auteur en ID #1 ?<br />
<//B_a>

</body>
</html>

Le fichier à télécharger si problème de copier/coller :

Zip - 2.2 ko

Vu que la durée de vie de ce squelette est probablement de l’ordre de la semaine, s’il n’est pas déjà obsolète, sa mise en plugin ne me semble pas indispensable.

Je le laisse ici pour exemple d’utilisation de requêtes PHP, d’un squelette temporaire.

Plussoyez !

Les forums sont fermés.

  • Accès webmestre incomplet 22 octobre 2010 17:18, par JLuc

    Hello,

    même une fois modifié à la main par phpmyadmin dans la base de donnée, l’auteur n°1 ne devient pas webmestre dans l’interface spip.

    Il y a peut être un fichier cache ou un cookie quelquepart ? Comment les mettre à jour ?

    Les forums sont fermés.

    • Accès webmestre incomplet 22 octobre 2010 18:46, par Christian PAULUS

      Pour vérifier l’accès webmestre, il suffit d’aller dans la page de Maintenance technique :

      http://<monsite>/ecrire/?exec=admin_tech

      le webmestre a droit à la restauration de la base (la boîte Restaurer le contenu d’une sauvegarde de la base).

      Les forums sont fermés.

  • Accès webmestre incomplet 30 novembre 2010 07:34, par D@vid
    Bonjour,
    Merci pour cet outil.
    J’ai utilisé le squelette, j’ai bien "oui" à webmestre mais je n’ai toujours pas accès à la restauration.
    Désespérant !

    Les forums sont fermés.

    • Accès webmestre incomplet 30 novembre 2010 09:00, par Christian PAULUS
      Et en corrigeant directement le champ dans la base ?

      Les forums sont fermés.

      • Accès webmestre incomplet 30 novembre 2010 12:10, par D@vid
        C’est fait, J’ai bien "oui" dans le champs "webmestre" dans id_auteurs. Mais toujours pas d’accès à la restauration...

        Les forums sont fermés.

        • Accès webmestre incomplet 30 novembre 2010 17:46, par Christian PAULUS

          Installation propre (de base, pas à partir d’une mise à jour, loader) ?

          Si màj, tester via une installation propre (via la dist) me semble incontournable.

          Les forums sont fermés.

          • Accès webmestre incomplet 1er décembre 2010 03:44, par david
            Je vais essayer ça.

            Les forums sont fermés.

          • Accès webmestre incomplet 1er décembre 2010 12:04, par david
            C’est bon, c’est réglé avec une installation propre et une restauration de la base.
            Merci pour les conseils.

            Les forums sont fermés.