/** * Effacer une rubrique * * http://doc.spip.org/@action_supprimer_dist * * @param null $id_rubrique * @return void */ function action_supprimer_rubrique_dist($id_rubrique = null) { if (is_null($id_rubrique)) { $securiser_action = charger_fonction('securiser_action', 'inc'); $id_rubrique = $securiser_action(); } if (intval($id_rubrique)) { sql_delete("spip_rubriques", "id_rubrique=" . intval($id_rubrique)); // Les admin restreints qui n'administraient que cette rubrique // deviennent redacteurs // (il y a sans doute moyen de faire ca avec un having) $q = sql_select("id_auteur", "spip_auteurs_liens", "objet='rubrique' AND id_objet=" . intval($id_rubrique)); while ($r = sql_fetch($q)) { $id_auteur = $r['id_auteur']; // degrader avant de supprimer la restriction d'admin // section critique sur les droits $n = sql_countsel("spip_auteurs_liens", "objet='rubrique' AND id_objet!=" . intval($id_rubrique) . " AND id_auteur=" . intval($id_auteur)); if (!$n) { include_spip('action/editer_auteur'); auteurs_set($id_auteur, array("statut" => '1comite')); } sql_delete("spip_auteurs_liens", "objet='rubrique' AND id_objet=" . intval($id_rubrique) . " AND id_auteur=" . intval($id_auteur)); } // menu_rubriques devra recalculer effacer_meta("date_calcul_rubriques"); // Une rubrique supprimable n'avait pas le statut "publie" // donc rien de neuf pour la rubrique parente include_spip('inc/rubriques'); calculer_langues_rubriques(); // invalider les caches marques de cette rubrique include_spip('inc/invalideur'); suivre_invalideur("id='rubrique/{$id_rubrique}'"); } }
function action_editer_auteur_dist($arg=null) { if (is_null($arg)){ $securiser_action = charger_fonction('securiser_action', 'inc'); $arg = $securiser_action(); } // si id_auteur n'est pas un nombre, c'est une creation if (!$id_auteur = intval($arg)) { if (($id_auteur = insert_auteur()) > 0){ # cf. GROS HACK # recuperer l'eventuel logo charge avant la creation # ils ont un id = 0-id_auteur de la session $id_hack = 0 - $GLOBALS['visiteur_session']['id_auteur']; $chercher_logo = charger_fonction('chercher_logo', 'inc'); if (list($logo) = $chercher_logo($id_hack, 'id_auteur', 'on')) rename($logo, str_replace($id_hack, $id_auteur, $logo)); if (list($logo) = $chercher_logo($id_hack, 'id_auteur', 'off')) rename($logo, str_replace($id_hack, $id_auteur, $logo)); } } // Enregistre l'envoi dans la BD if ($id_auteur > 0) $err = auteurs_set($id_auteur); if ($redirect = _request('redirect')) { if ($err){ $ret = ('&redirect=' . $redirect); spip_log("echec editeur auteur: " . join(' ',$echec)); $echec = '&echec=' . join('@@@', $echec); $redirect = generer_url_ecrire('auteur_infos',"id_auteur=$id_auteur$echec$ret",'&'); } else $redirect = urldecode($redirect); $redirect = parametre_url($redirect,'id_auteur', $id_auteur, '&'); include_spip('inc/headers'); redirige_par_entete($redirect); } else return array($id_auteur,$err); $redirect = _request('redirect'); }
function action_confirmer_email_dist() { $securiser_action = charger_fonction('securiser_action', 'inc'); $arg = $securiser_action(); include_spip('inc/filtres'); if ($GLOBALS['visiteur_session']['id_auteur'] AND email_valide($arg)){ $editer_auteur = charger_fonction('editer_auteur','action'); auteurs_set($GLOBALS['visiteur_session']['id_auteur'],array('email'=>$arg)); } // verifier avant de rediriger pour invalider le message de confirmation // si ca n'a pas marche if ($redirect = _request('redirect') AND !$arg == sql_getfetsel('email', 'spip_auteurs', 'id_auteur='.intval($GLOBALS['visiteur_session']))) $GLOBALS['redirect'] = parametre_url($redirect, 'email_modif',''); }
/** * 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); }