Skip to content
Extraits de code Groupes Projets
Valider f7b847c1 rédigé par Fil's avatar Fil
Parcourir les fichiers

#1302 (baptiste): en cas d'echec on perd tout ; pas la peine de tout casser, en fait

parent 885cd393
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
...@@ -144,9 +144,11 @@ function action_legender_auteur_post($statut, $nom, $email, $bio, $nom_site_aute ...@@ -144,9 +144,11 @@ function action_legender_auteur_post($statut, $nom, $email, $bio, $nom_site_aute
// les admins restreints ne peuvent modifier celui des autres admins // les admins restreints ne peuvent modifier celui des autres admins
if (autoriser('modifier', 'auteur', $id_auteur, NULL, array('mail'=>1))) { if (autoriser('modifier', 'auteur', $id_auteur, NULL, array('mail'=>1))) {
$email = trim($email); $email = trim($email);
if ($email !='' AND !email_valide($email)) if ($email !='' AND !email_valide($email)) {
$echec[]= 'info_email_invalide'; $echec[]= 'info_email_invalide';
$c['email'] = $email; } else {
$c['email'] = $email;
}
} }
if ($visiteur_session['id_auteur'] == $id_auteur) if ($visiteur_session['id_auteur'] == $id_auteur)
...@@ -168,49 +170,47 @@ function action_legender_auteur_post($statut, $nom, $email, $bio, $nom_site_aute ...@@ -168,49 +170,47 @@ function action_legender_auteur_post($statut, $nom, $email, $bio, $nom_site_aute
$c['statut'] = $statut; $c['statut'] = $statut;
// l'entrer dans la base // l'entrer dans la base
if (!$echec) {
// Creer l'auteur ?
if (!$id_auteur) {
$id_auteur = sql_insertq("spip_auteurs", array('statut' => $statut));
// recuperer l'eventuel logo charge avant la creation
$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));
}
// Restreindre avant de declarer l'auteur // Creer l'auteur ?
// (section critique sur les droits) if (!$id_auteur) {
if ($id_parent) { $id_auteur = sql_insertq("spip_auteurs", array('statut' => $statut));
if (is_array($restreintes))
$restreintes[] = $id_parent; // recuperer l'eventuel logo charge avant la creation
else $id_hack = 0 - $GLOBALS['visiteur_session']['id_auteur'];
$restreintes = array($id_parent); $chercher_logo = charger_fonction('chercher_logo', 'inc');
} if (list($logo) = $chercher_logo($id_hack, 'id_auteur', 'on'))
if (is_array($restreintes) rename($logo, str_replace($id_hack, $id_auteur, $logo));
AND autoriser('modifier', 'auteur', $id_auteur, NULL, array('restreint'=>$restreintes))) { if (list($logo) = $chercher_logo($id_hack, 'id_auteur', 'off'))
sql_delete("spip_auteurs_rubriques", "id_auteur=".sql_quote($id_auteur)); rename($logo, str_replace($id_hack, $id_auteur, $logo));
foreach (array_unique($restreintes) as $id_rub) }
if ($id_rub = intval($id_rub)) // si '0' on ignore
sql_insertq('spip_auteurs_rubriques', array('id_auteur' => $id_auteur, 'id_rubrique'=>$id_rub));
}
include_spip('inc/modifier'); // Restreindre avant de declarer l'auteur
// (section critique sur les droits)
if ($id_parent) {
if (is_array($restreintes))
$restreintes[] = $id_parent;
else
$restreintes = array($id_parent);
}
if (is_array($restreintes)
AND autoriser('modifier', 'auteur', $id_auteur, NULL, array('restreint'=>$restreintes))) {
sql_delete("spip_auteurs_rubriques", "id_auteur=".sql_quote($id_auteur));
foreach (array_unique($restreintes) as $id_rub)
if ($id_rub = intval($id_rub)) // si '0' on ignore
sql_insertq('spip_auteurs_rubriques', array('id_auteur' => $id_auteur, 'id_rubrique'=>$id_rub));
}
// Lier a un article include_spip('inc/modifier');
if (($id_article = intval($lier_id_article))
AND autoriser('modifier', 'article', $id_article)) {
sql_insertq('spip_auteurs_articles', array('id_article' => $id_article, 'id_auteur' =>$id_auteur));
}
// Modifier en base (declenche les notifications etc.) // Lier a un article
instituer_auteur($id_auteur, $c); if (($id_article = intval($lier_id_article))
AND autoriser('modifier', 'article', $id_article)) {
sql_insertq('spip_auteurs_articles', array('id_article' => $id_article, 'id_auteur' =>$id_auteur));
} }
// Modifier en base (declenche les notifications etc.)
instituer_auteur($id_auteur, $c);
return array($id_auteur, $echec); return array($id_auteur, $echec);
} }
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter