Subversion Repositories Sites.tela-botanica.org

Rev

Rev 609 | Blame | Compare with Previous | Last modification | View Log | RSS feed

<?php

/***************************************************************************\
 *  SPIP, Systeme de publication pour l'internet                           *
 *                                                                         *
 *  Copyright (c) 2001-2005                                                *
 *  Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James  *
 *                                                                         *
 *  Ce programme est un logiciel libre distribue sous licence GNU/GPL.     *
 *  Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne.   *
\***************************************************************************/


//
// Ce fichier ne sera execute qu'une fois
if (defined("_ECRIRE_INC_ADMIN")) return;
define("_ECRIRE_INC_ADMIN", "1");


function fichier_admin($action) {
        global $connect_login;
        return "admin_".substr(md5($action.(time() & ~2047).$connect_login), 0, 10);
}

function debut_admin($action, $commentaire='') {
        global $clean_link;
        global $connect_statut;

        if ((!$action) || ($connect_statut != "0minirezo")) {
                include_ecrire ("inc_presentation.php3");
                install_debut_html(_T('info_acces_refuse'));
                install_fin_html();
                exit;
        }
        $fichier = fichier_admin($action);
        if (@file_exists(_DIR_SESSIONS . $fichier)) {
                spip_log ("Action admin: $action");
                return true;
        }

        include_ecrire ("inc_presentation.php3");
        install_debut_html(_T('info_action', array('action' => $action)));

        if ($commentaire) {
                echo "<p>".propre($commentaire)."</p>";
        }

        echo $clean_link->getForm('POST');
        echo "<P><B>"._T('info_authentification_ftp')."</B>";
        echo aide("ftp_auth");
        echo "<P>"._T('info_creer_repertoire');
        echo "<P align='center'><INPUT TYPE='text' NAME='fichier' CLASS='fondl' VALUE=\"$fichier\" SIZE='30'>";
        echo "<P> "._T('info_creer_repertoire_2');
        echo "<P align='right'><INPUT TYPE='submit' NAME='Valider' VALUE='"._T('bouton_recharger_page')."' CLASS='fondo'>";
        echo "</FORM>";

        install_fin_html();
        exit;
}

function fin_admin($action) {
        $fichier = fichier_admin($action);
        @unlink(_DIR_SESSIONS . $fichier);
        @rmdir(_DIR_SESSIONS . $fichier);
}


function _action_auteur($action, $id_auteur, $nom_alea) {
        if (!$id_auteur) {
                global $connect_id_auteur, $connect_pass;
                $id_auteur = $connect_id_auteur;
                $pass = $connect_pass;
        }
        else {
                $result = spip_query("SELECT pass FROM spip_auteurs WHERE id_auteur=$id_auteur");
                if ($result) if ($row = spip_fetch_array($result)) $pass = $row['pass'];
        }
        $alea = lire_meta($nom_alea);
        return md5($action.$id_auteur.$pass.$alea);
}


function calculer_action_auteur($action, $id_auteur = 0) {
        return _action_auteur($action, $id_auteur, 'alea_ephemere');
}

function verifier_action_auteur($action, $valeur, $id_auteur = 0) {
        if ($valeur == _action_auteur($action, $id_auteur, 'alea_ephemere'))
                return true;
        if ($valeur == _action_auteur($action, $id_auteur, 'alea_ephemere_ancien'))
                return true;
        spip_log("inc_admin: verifier action $action $id_auteur : echec");
        return false;
}


?>