/** * 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')); } } }
/** * 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); }
/** * 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; }