Exemplo n.º 1
0
/**
 * Action de confirmation d'une inscription
 * 
 * @global array $GLOBALS['visiteur_session']
 * @global string $GLOBALS['redirect']
 * @return void
 */
function action_confirmer_inscription_dist()
{
    $jeton = _request('jeton');
    $email = _request('email');
    include_spip('action/inscrire_auteur');
    if ($auteur = auteur_verifier_jeton($jeton) and $auteur['email'] == $email and $auteur['statut'] == 'nouveau') {
        // OK c'est un nouvel inscrit qui confirme :
        // on le loge => ca va confirmer son statut et c'est plus sympa
        include_spip('inc/auth');
        auth_loger($auteur);
        // et on efface son jeton
        auteur_effacer_jeton($auteur['id_auteur']);
        // si pas de redirection demandee, rediriger vers public ou prive selon le statut de l'auteur
        // TODO: ne semble pas marcher si inscrit non visiteur, a debug
        if (!_request('redirect')) {
            // on passe id_auteur explicite pour forcer une lecture en base de toutes les infos
            if (autoriser('ecrire', '', '', $auteur['id_auteur'])) {
                // poser un cookie admin aussi
                $cookie = charger_fonction('cookie', 'action');
                $cookie("@" . $GLOBALS['visiteur_session']['login']);
                $GLOBALS['redirect'] = _DIR_RESTREINT_ABS;
            } else {
                $GLOBALS['redirect'] = $GLOBALS['meta']['adresse_site'];
            }
        }
    } else {
        // lien perime :
        if ($GLOBALS['visiteur_session']['id_auteur']) {
            // on passe id_auteur explicite pour forcer une lecture en base de toutes les infos
            if (autoriser('ecrire', '', '', $GLOBALS['visiteur_session']['id_auteur'])) {
                $GLOBALS['redirect'] = _DIR_RESTREINT_ABS;
            } else {
                $GLOBALS['redirect'] = $GLOBALS['meta']['adresse_site'];
            }
        } else {
            // rediriger vers la page de login si pas encore loge
            $GLOBALS['redirect'] = parametre_url(generer_url_public('login', '', false), 'url', _request('redirect'));
        }
    }
}
Exemplo n.º 2
0
/**
 * Modification du mot de passe d'un auteur.
 * Utilise le cookie d'oubli fourni en url ou l'argument du formulaire pour identifier l'auteur
 *
 * @param int $id_auteur
 */
function formulaires_mot_de_passe_traiter_dist($id_auteur = null, $jeton = null)
{
    $message = '';
    // compatibilite anciens appels du formulaire
    if (is_null($jeton)) {
        $jeton = _request('p');
    }
    $row = retrouve_auteur($id_auteur, $jeton);
    if ($row && ($id_auteur = $row['id_auteur']) && ($oubli = _request('oubli'))) {
        include_spip('action/editer_auteur');
        include_spip('action/inscrire_auteur');
        auteurs_set($id_auteur, array('pass' => $oubli));
        auteur_effacer_jeton($id_auteur);
        $login = $row['login'];
        $message = "<b>" . _T('pass_nouveau_enregistre') . "</b>" . "<br />" . _T('pass_rappel_login', array('login' => $login));
    }
    return array('message_ok' => $message);
}
Exemplo n.º 3
0
/**
 * Modification du mot de passe d'un auteur.
 * Utilise le cookie d'oubli fourni en url ou l'argument du formulaire pour identifier l'auteur
 *
 * @param int $id_auteur
 */
function formulaires_mot_de_passe_traiter_dist($id_auteur = null, $jeton = null)
{
    $res = array('message_ok' => '');
    refuser_traiter_formulaire_ajax();
    // puisqu'on va loger l'auteur a la volee (c'est bonus)
    // compatibilite anciens appels du formulaire
    if (is_null($jeton)) {
        $jeton = _request('p');
    }
    $row = retrouve_auteur($id_auteur, $jeton);
    if ($row && ($id_auteur = $row['id_auteur']) && ($oubli = _request('oubli'))) {
        include_spip('action/editer_auteur');
        include_spip('action/inscrire_auteur');
        if ($err = auteur_modifier($id_auteur, array('pass' => $oubli))) {
            $res = array('message_erreur' => $err);
        } else {
            auteur_effacer_jeton($id_auteur);
            $login = $row['login'];
            $res['message_ok'] = "<b>" . _T('pass_nouveau_enregistre') . "</b>" . "<br />" . _T('pass_rappel_login', array('login' => $login));
            include_spip('inc/auth');
            $row = sql_fetsel("*", "spip_auteurs", "id_auteur=" . intval($id_auteur));
            auth_loger($row);
        }
    }
    return $res;
}