diff --git a/ecrire/exec/auteur_infos.php b/ecrire/exec/auteur_infos.php index 63ed4ad045c896bd40ab7d214a64de295d234c6f..e7e6631e02a44579f0ad6d4c3c914921abb262b4 100644 --- a/ecrire/exec/auteur_infos.php +++ b/ecrire/exec/auteur_infos.php @@ -38,8 +38,8 @@ global $ajouter_id_article, $statut, $url_site; - $id_auteur = intval($id_auteur); - $ajouter_id_article = intval($ajouter_id_article); + $id_auteur = intval($id_auteur); + $ajouter_id_article = intval($ajouter_id_article); pipeline('exec_init', array('args' => array( 'exec'=>'auteur_infos', @@ -60,11 +60,15 @@ global $ajouter_id_article, $auteur['source'] = 'spip'; } - // formulaire de changement de statut - // (faux chargement pour disposer de la fonction ci-dessous. a revoir) - $f = charger_fonction('instituer_auteur', 'inc'); - if (!statut_modifiable_auteur($id_auteur, $auteur)) { +// on peut se changer soi-meme + if (!(($connect_id_auteur == $id_auteur) || + // sinon on doit etre admin + // et pas admin restreint pour changer un autre admin ou creer qq + (($connect_statut == "0minirezo") && + ($connect_toutes_rubriques OR + ($id_auteur AND ($auteur['statut'] != "0minirezo")))))) { + gros_titre(_T('info_acces_interdit')); exit; } @@ -80,7 +84,7 @@ if (strval($nom)!='') { // login et mot de passe $modif_login = false; $old_login = $auteur['login']; - if (($new_login<>$old_login) AND $connect_statut == '0minirezo' AND $connect_toutes_rubriques AND $auteur['source'] == 'spip') { + if (($new_login<>$old_login) AND $connect_toutes_rubriques AND $auteur['source'] == 'spip') { if ($new_login) { if (strlen($new_login) < 4) $echec .= "\n<p>"._T('info_login_trop_court'); @@ -200,18 +204,20 @@ exec_affiche_auteur_info_dist($id_auteur, $auteur, $echec, $redirect, $ajouter_ // http://doc.spip.org/@exec_affiche_auteur_info_dist function exec_affiche_auteur_info_dist($id_auteur, $auteur, $echec, $redirect, $ajouter_id_article, $onfocus) { - global $connect_id_auteur; + global $connect_id_auteur; - if ($connect_id_auteur == $id_auteur) - debut_page($auteur['nom'], "auteurs", "perso"); - else - debut_page($auteur['nom'],"auteurs","redacteurs"); + if ($connect_id_auteur == $id_auteur) + debut_page($auteur['nom'], "auteurs", "perso"); + else + debut_page($auteur['nom'],"auteurs","redacteurs"); - echo "<br><br><br>"; + echo "<br><br><br>"; - debut_gauche(); + debut_gauche(); - cadre_auteur_infos($id_auteur, $auteur); + // charger ça tout de suite pour diposer de la fonction ci-dessous + $instituer_auteur = charger_fonction('instituer_auteur', 'inc'); + cadre_auteur_infos($id_auteur, $auteur); echo pipeline('affiche_gauche', array('args' => array( @@ -229,34 +235,37 @@ function exec_affiche_auteur_info_dist($id_auteur, $auteur, $echec, $redirect, ); debut_droite(); -// -// Formulaire d'edition de l'auteur -// + if ($echec){ + debut_cadre_relief(); + echo http_img_pack("warning.gif", _T('info_avertissement'), "width='48' height='48' align='left'"); + echo "<font color='red'>$echec \n<p>"._T('info_recommencer')."</font>"; + fin_cadre_relief(); + echo "\n<p>"; + } - if ($echec){ - debut_cadre_relief(); - echo http_img_pack("warning.gif", _T('info_avertissement'), "width='48' height='48' align='left'"); - echo "<font color='red'>$echec \n<p>"._T('info_recommencer')."</font>"; - fin_cadre_relief(); - echo "\n<p>"; - } + debut_cadre_formulaire(); + echo generer_url_post_ecrire('auteur_infos', (!$id_auteur ? "" : "id_auteur=$id_auteur")); + if ($ajouter_id_article) + echo "<input name='ajouter_id_article' value='$ajouter_id_article' type='hidden'>\n" + . "\n<input name='redirect' value='$redirect' type='hidden' />" + . "\n<input name='redirect_ok' value='oui' type='hidden' />"; - debut_cadre_formulaire(); - formulaire_auteur_infos($id_auteur, $auteur, $onfocus, $redirect, $ajouter_id_article); - fin_cadre_formulaire(); - echo " <p />"; + formulaire_auteur_infos($id_auteur, $auteur, $onfocus); + echo "</form>"; + echo $instituer_auteur($id_auteur, $auteur['statut'], "auteurs_edit"); - echo fin_page(); -} + fin_cadre_formulaire(); + echo " <p />"; + echo fin_page(); +} // http://doc.spip.org/@formulaire_auteur_infos -function formulaire_auteur_infos($id_auteur, $auteur, $onfocus, $redirect, $ajouter_id_article) +function formulaire_auteur_infos($id_auteur, $auteur, $onfocus) { global $connect_statut, $connect_toutes_rubriques,$connect_id_auteur, $options, $champs_extra ; - echo generer_url_post_ecrire('auteur_infos', (!$id_auteur ? "" : "id_auteur=$id_auteur")); // // Infos personnelles @@ -315,7 +324,6 @@ echo "\n<p>"; extra_saisie($auteur['extra'], 'auteurs', $auteur['statut']); } - // // Login et mot de passe : // accessibles seulement aux admins non restreints et l'auteur lui-meme @@ -338,66 +346,57 @@ else { $edit_pass = false; } -debut_cadre_relief("base-24.gif"); + debut_cadre_relief("base-24.gif"); // Avertissement en cas de modifs de ses propres donnees -if (($edit_login OR $edit_pass) AND $connect_id_auteur == $id_auteur) { - debut_cadre_enfonce(); - echo http_img_pack("warning.gif", _T('info_avertissement'), "width='48' height='48' align='right'"); - echo "<b>"._T('texte_login_precaution')."</b>\n"; - fin_cadre_enfonce(); - echo "\n<p>"; -} + if (($edit_login OR $edit_pass) AND $connect_id_auteur == $id_auteur) { + debut_cadre_enfonce(); + echo http_img_pack("warning.gif", _T('info_avertissement'), "width='48' height='48' align='right'"); + echo "<b>"._T('texte_login_precaution')."</b>\n"; + fin_cadre_enfonce(); + echo "\n<p>"; + } // Un redacteur n'a pas le droit de modifier son login ! -if ($edit_login) { - echo "<B>"._T('item_login')."</B> "; - echo "<font color='red'>("._T('texte_plus_trois_car').")</font> :<br />\n"; - echo "<INPUT TYPE='text' NAME='new_login' CLASS='formo' VALUE=\"".entites_html($auteur['login'])."\" SIZE='40'><P>\n"; -} -else { - echo "<fieldset style='padding:5'><legend><B>"._T('item_login')."</B><br />\n</legend><br><b>".$auteur['login']."</b> "; - echo "<i> ("._T('info_non_modifiable').")</i>\n<p>"; -} + if ($edit_login) { + echo "<B>"._T('item_login')."</B> "; + echo "<font color='red'>("._T('texte_plus_trois_car').")</font> :<br />\n"; + echo "<INPUT TYPE='text' NAME='new_login' CLASS='formo' VALUE=\"".entites_html($auteur['login'])."\" SIZE='40'><P>\n"; + } else { + echo "<fieldset style='padding:5'><legend><B>"._T('item_login')."</B><br />\n</legend><br><b>".$auteur['login']."</b> "; + echo "<i> ("._T('info_non_modifiable').")</i>\n<p>"; + } // On ne peut modifier le mot de passe en cas de source externe (par exemple LDAP) -if ($edit_pass) { - echo "<B>"._T('entree_nouveau_passe')."</B> "; - echo "<font color='red'>("._T('info_plus_cinq_car').")</font> :<br />\n"; - echo "<INPUT TYPE='password' NAME='new_pass' CLASS='formo' VALUE=\"\" SIZE='40'><br />\n"; - echo _T('info_confirmer_passe')."<br />\n"; - echo "<INPUT TYPE='password' NAME='new_pass2' CLASS='formo' VALUE=\"\" SIZE='40'><P>\n"; -} -fin_cadre_relief(); -echo "<p />"; - - -// -// Apparaitre dans la liste des redacteurs connectes -// - - if ($apparait) apparait_auteur_infos($id_auteur, $auteur); + if ($edit_pass) { + $res = "<B>"._T('entree_nouveau_passe')."</B> " + . "<font color='red'>("._T('info_plus_cinq_car').")</font> :<br />\n" + . "<input type='password' NAME='new_pass' CLASS='formo' VALUE=\"\" SIZE='40'><br />\n" + . _T('info_confirmer_passe')."<br />\n" + . "<INPUT TYPE='password' NAME='new_pass2' CLASS='formo' VALUE=\"\" SIZE='40'><P>\n"; + echo $res; + } + fin_cadre_relief(); -echo "<INPUT NAME='ajouter_id_article' VALUE='$ajouter_id_article' TYPE='hidden'>\n"; -echo "<INPUT NAME='redirect' VALUE='$redirect' TYPE='hidden'>\n"; -echo "<INPUT NAME='redirect_ok' VALUE='oui' TYPE='hidden'>\n"; + $res = "<p />"; -echo "\n<div align='right'><INPUT TYPE='submit' CLASS='fondo' NAME='Valider' VALUE='"._T('bouton_enregistrer')."'></DIV>"; + if ($GLOBALS['connect_id_auteur'] == $id_auteur) + $res .= apparait_auteur_infos($id_auteur, $auteur); -echo pipeline('affiche_milieu', - array('args' => array( - 'exec'=>'auteur_infos', - 'id_auteur'=>$id_auteur), - 'data'=>'') -); + $res .= "\n<div align='right'>" + . "\n<input type='submit' class='fondo' value='" + . _T('bouton_enregistrer') + . "'></div>" -echo "</div>"; -fin_cadre_relief(); -echo "</form>"; + . pipeline('affiche_milieu', + array('args' => array( + 'exec'=>'auteur_infos', + 'id_auteur'=>$id_auteur), + 'data'=>'')); -// Afficher le formulaire de changement de statut (cf. inc_acces) - $f = charger_fonction('instituer_auteur', 'inc'); - echo $f($id_auteur, $auteur['statut'], "auteurs_edit"); + echo $res; + echo "</div>"; + fin_cadre_relief(); } // @@ -407,28 +406,29 @@ echo "</form>"; // http://doc.spip.org/@apparait_auteur_infos function apparait_auteur_infos($id_auteur, $auteur) { - global $connect_id_auteur ; - if ($connect_id_auteur == $id_auteur) { - debut_cadre_relief("messagerie-24.gif", false, "", _T('info_liste_redacteurs_connectes')); - - echo "\n<div>"._T('texte_auteur_messagerie')."</div>"; - - if ($auteur['imessage']=="non"){ - echo "<INPUT TYPE='radio' NAME='perso_activer_imessage' VALUE='oui' id='perso_activer_imessage_on'>"; - echo " <label for='perso_activer_imessage_on'>"._T('bouton_radio_apparaitre_liste_redacteurs_connectes')."</label> "; - echo "<br />\n<INPUT TYPE='radio' NAME='perso_activer_imessage' VALUE='non' CHECKED id='perso_activer_imessage_off'>"; - echo " <B><label for='perso_activer_imessage_off'>"._T('bouton_radio_non_apparaitre_liste_redacteurs_connectes')."</label></B> "; - } else { - echo "<INPUT TYPE='radio' NAME='perso_activer_imessage' VALUE='oui' id='perso_activer_imessage_on' CHECKED>"; - echo " <B><label for='perso_activer_imessage_on'>"._T('bouton_radio_apparaitre_liste_redacteurs_connectes')."</label></B> "; - - echo "<br />\n<INPUT TYPE='radio' NAME='perso_activer_imessage' VALUE='non' id='perso_activer_imessage_off'>"; - echo " <label for='perso_activer_imessage_off'>"._T('bouton_radio_non_apparaitre_liste_redacteurs_connectes')."</label> "; - } - - fin_cadre_relief(); - echo "<p />"; + if ($auteur['imessage']=="non"){ + $res = "<input type='radio' name='perso_activer_imessage' value='oui' id='perso_activer_imessage_on'>" + . " <label for='perso_activer_imessage_on'>"._T('bouton_radio_apparaitre_liste_redacteurs_connectes')."</label> " + . "<br />\n<INPUT TYPE='radio' NAME='perso_activer_imessage' VALUE='non' CHECKED id='perso_activer_imessage_off'>" + . " <B><label for='perso_activer_imessage_off'>"._T('bouton_radio_non_apparaitre_liste_redacteurs_connectes')."</label></B> "; + } else { + $res = "<input type='radio' name='perso_activer_imessage' value='oui' id='perso_activer_imessage_on' checked>" + . " <b><label for='perso_activer_imessage_on'>" + . _T('bouton_radio_apparaitre_liste_redacteurs_connectes') + . "</label></b> " + . "<br />\n<input type='radio' name='perso_activer_imessage' value='non' id='perso_activer_imessage_off'>" + . " <label for='perso_activer_imessage_off'>" + . _T('bouton_radio_non_apparaitre_liste_redacteurs_connectes') + . "</label> "; } + + return debut_cadre_relief("messagerie-24.gif", true, "", _T('info_liste_redacteurs_connectes')) + . "\n<div>" + . _T('texte_auteur_messagerie') + . "</div>" + . $res + . fin_cadre_relief(true) + . "<p />"; } ?>