diff --git a/ecrire/action/editer_message.php b/ecrire/action/editer_message.php index cf8aaf65f109db8f44705f5a97028949d6aad65d..976483c0fbd89199740b65d54475a1b8831775f1 100644 --- a/ecrire/action/editer_message.php +++ b/ecrire/action/editer_message.php @@ -27,6 +27,8 @@ function action_editer_message_dist() { action_editer_message_post_supprimer($r[1]); elseif (preg_match(',^(\d+)\W@(\d+)$,', $arg, $r)) action_editer_message_post_ajouter($r[1], $r[2]); + elseif (preg_match(',^(\d+)\W:(\d+)$,', $arg, $r)) + action_editer_message_post_vu($r[1], $r[2]); elseif (preg_match(',^(\d+)\W-(\d+)$,', $arg, $r)) action_editer_message_post_retirer($r[1], $r[2]); elseif (preg_match(',^(\d+)\W(\w+)$,', $arg, $r)) @@ -40,19 +42,22 @@ function action_editer_message_dist() { else spip_log("action_editer_message_dist $arg pas compris"); } -// http://doc.spip.org/@action_editer_message_post_supprimer function action_editer_message_post_supprimer($id_message) { spip_query("DELETE FROM spip_messages WHERE id_message=$id_message"); spip_query("DELETE FROM spip_auteurs_messages WHERE id_message=$id_message"); spip_query("DELETE FROM spip_forum WHERE id_message=id_message"); } -// http://doc.spip.org/@action_editer_message_post_retirer +function action_editer_message_post_vu($id_message, $id_auteur) { + spip_log("efface $id_message $id_auteur"); + spip_query("UPDATE spip_auteurs_messages SET vu='oui' WHERE id_message='$id_message' AND id_auteur='$id_auteur'"); + +} + function action_editer_message_post_retirer($id_message, $id_auteur) { spip_query("DELETE FROM spip_auteurs_messages WHERE id_message='$id_message' AND id_auteur='$id_auteur'"); } -// http://doc.spip.org/@action_editer_message_post_ajouter function action_editer_message_post_ajouter($id_message, $id_auteur) { spip_query("DELETE FROM spip_auteurs_messages WHERE id_auteur='$id_auteur' AND id_message='$id_message'"); spip_abstract_insert('spip_auteurs_messages', @@ -60,7 +65,6 @@ function action_editer_message_post_ajouter($id_message, $id_auteur) { "('$id_auteur','$id_message','non')"); } -// http://doc.spip.org/@action_editer_message_post_envoyer function action_editer_message_post_envoyer($id_message, $statut) { spip_query("UPDATE spip_messages SET statut=" . _q($statut) . " WHERE id_message='$id_message'"); @@ -100,7 +104,6 @@ function action_editer_message_post_nouveau($type, $dest='', $rv='') redirige_par_entete(generer_url_ecrire('message_edit', "id_message=$id_message&new=oui&dest=$dest",true)); } -// http://doc.spip.org/@action_editer_message_post_vieux function action_editer_message_post_vieux($id_message) { spip_query("UPDATE spip_messages SET titre=" . _q(_request('titre')) . ", texte=" . _q(_request('texte')) . " WHERE id_message='$id_message'"); diff --git a/ecrire/action/legender_auteur.php b/ecrire/action/legender_auteur.php index 88eaee2cc00779b0ad5c7d2ee676590733448b74..8e80bacaa3468d727169627874cc9e7cc9553826 100644 --- a/ecrire/action/legender_auteur.php +++ b/ecrire/action/legender_auteur.php @@ -75,7 +75,8 @@ function action_legender_auteur_post($r) $modif_login = false; $old_login = $auteur['login']; - if (($new_login<>$old_login) AND $auteur['source'] == 'spip') { + if (($new_login<>$old_login) + AND ($auteur['source'] == 'spip' OR !$GLOBALS['ldap_present'])) { if (admin_general($auteur_session['id_auteur'])) { $acces = true; if ($new_login) { diff --git a/ecrire/exec/message.php b/ecrire/exec/message.php index 70fbcd74e4916a67d8b4e1dd4f6cef6522d82359..cacf597880fce0cb6b5bd02a22d84ce7af854a74 100644 --- a/ecrire/exec/message.php +++ b/ecrire/exec/message.php @@ -19,13 +19,7 @@ include_spip('inc/mots'); // http://doc.spip.org/@exec_message_dist function exec_message_dist() { -global - $ajout_forum, -$cherche_auteur, -$connect_id_auteur, -$forcer_dest, -$id_message, -$nouv_auteur; + global $cherche_auteur, $connect_id_auteur,$forcer_dest,$id_message, $nouv_auteur; $id_message = intval($id_message); $nouv_auteur = intval($nouv_auteur); @@ -34,8 +28,8 @@ $nouv_auteur; $row = spip_fetch_array(spip_query("SELECT type FROM spip_messages WHERE id_message=$id_message")); if ($row['type'] != "affich"){ - $n = spip_fetch_array(spip_query("SELECT COUNT(*) AS n FROM spip_auteurs_messages WHERE id_auteur=$connect_id_auteur AND id_message=$id_message")); - if (!$n['n']) { + $res = spip_fetch_array(spip_query("SELECT vu FROM spip_auteurs_messages WHERE id_auteur=$connect_id_auteur AND id_message=$id_message")); + if (!$res) { $commencer_page = charger_fonction('commencer_page', 'inc'); echo $commencer_page(_T('info_acces_refuse')); debut_gauche(); @@ -44,13 +38,16 @@ $nouv_auteur; echo fin_gauche(), fin_page(); exit; } + // Marquer le message vu pour le visiteur + if ($res['vu'] != 'oui') { + include_spip('inc/headers'); + redirige_par_entete(redirige_action_auteur("editer_message","$id_message/:$connect_id_auteur", 'message', "id_message=$id_message", true)); + } } exec_affiche_message_dist($id_message, $cherche_auteur, $nouv_auteur, $forcer_dest); } - - // http://doc.spip.org/@http_afficher_rendez_vous function http_afficher_rendez_vous($date_heure, $date_fin) { @@ -413,9 +410,6 @@ function exec_affiche_message_dist($id_message, $cherche_auteur, $nouv_auteur, $ $lannee = annee($row['date_heure']); - // Marquer le message vu pour le visiteur - if ($type != "affich") - spip_query("UPDATE spip_auteurs_messages SET vu='oui' WHERE id_message='$id_message' AND id_auteur='$connect_id_auteur'"); $commencer_page = charger_fonction('commencer_page', 'inc'); echo $commencer_page($titre, "accueil", "messagerie");