From 2aa2a3491a414a1a35c02df4830f53da5dcb850e Mon Sep 17 00:00:00 2001 From: Fil <fil@rezo.net> Date: Fri, 1 Oct 2004 07:20:35 +0000 Subject: [PATCH] =?UTF-8?q?Correction=20de=20deux=20probl=C3=A8mes=20de=20?= =?UTF-8?q?droits=20:=20-=20les=20admins=20restreints=20pouvaient=20modifi?= =?UTF-8?q?er=20l'email=20des=20admins=20-=20un=20r=C3=A9dacteur=20pouvait?= =?UTF-8?q?,=20en=20bidouillant=20l'URL,=20=C3=A9crire=20un=20message=20g?= =?UTF-8?q?=C3=A9n=C3=A9ral=20('affich')?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit et passage à 1.8 beta 2 --- BUGS.txt | 3 +++ ecrire/auteur_infos.php3 | 12 +++++++++--- ecrire/inc_logos.php3 | 2 +- ecrire/inc_version.php3 | 2 +- ecrire/message_edit.php3 | 25 +++++++++++++++++++++++++ 5 files changed, 39 insertions(+), 5 deletions(-) diff --git a/BUGS.txt b/BUGS.txt index ff9c1ab0f4..29a0784c00 100644 --- a/BUGS.txt +++ b/BUGS.txt @@ -45,6 +45,9 @@ Espace prive - bug page mots : affiche des breves liées au mot, mais sans lister (1|10|11....) +* interface : quand on modifie le statut d'un auteur, on n'a pas ensuite la + page permettant de le passer admin restreint (il faut recliquer sur + "editer") Installation diff --git a/ecrire/auteur_infos.php3 b/ecrire/auteur_infos.php3 index db1e93dd3c..1d2bcd622d 100644 --- a/ecrire/auteur_infos.php3 +++ b/ecrire/auteur_infos.php3 @@ -86,7 +86,7 @@ if ($id_auteur) { // // Modification (et creation si besoin) // -if ($statut) { // si on poste un nom, c'est qu'on modifie une fiche auteur +if ($statut) { // si on poste un statut, c'est qu'on modifie une fiche auteur if ($connect_statut == '0minirezo' AND ereg("^(0minirezo|1comite|5poubelle|6forum)$",$statut)) // changer le statut $auteur['statut'] = $statut; @@ -134,7 +134,11 @@ if ($statut) { // si on poste un nom, c'est qu'on modifie une fiche auteur } // email - if ($connect_statut == '0minirezo') { // seuls les admins peuvent modifier l'email + // seuls les admins peuvent modifier l'email + // les admins restreints peuvent modifier l'email des redacteurs + // mais pas des autres admins + if ($connect_statut == '0minirezo' + AND ($connect_toutes_rubriques OR $statut<>'0minirezo')) { if ($email !='' AND !email_valide($email)) { $echec .= "<p>"._T('info_email_invalide'); $auteur['email'] = $email; @@ -280,7 +284,9 @@ echo "("._T('entree_nom_pseudo').")<BR>"; echo "<INPUT TYPE='text' NAME='nom' CLASS='formo' VALUE=\"".entites_html($auteur['nom'])."\" SIZE='40' $onfocus><P>"; echo "<B>"._T('entree_adresse_email')."</B>"; -if ($connect_statut == "0minirezo") { + +if ($connect_statut == "0minirezo" +AND ($connect_toutes_rubriques OR $auteur['statut']<>'0minirezo')) { echo "<br><INPUT TYPE='text' NAME='email' CLASS='formo' VALUE=\"".entites_html($auteur['email'])."\" SIZE='40'><P>\n"; } else { diff --git a/ecrire/inc_logos.php3 b/ecrire/inc_logos.php3 index 1f2fb63cb4..c15641e176 100644 --- a/ecrire/inc_logos.php3 +++ b/ecrire/inc_logos.php3 @@ -382,7 +382,7 @@ function reduire_image_logo($img, $taille = 120, $taille_y=0) { else { $img = $logo; $logo = _DIR_IMG . $logo;} if (@file_exists($logo) AND - eregi("^(.*)\.(jpg|gif|png)$", $img, $regs)) { + eregi("^(.*)\.(jpg|gif|png)$", $img, $regs)) { include_local('inc-public-global.php3'); $nom = $regs[1]; $format = $regs[2]; diff --git a/ecrire/inc_version.php3 b/ecrire/inc_version.php3 index 642e76f7ad..1095c026c0 100644 --- a/ecrire/inc_version.php3 +++ b/ecrire/inc_version.php3 @@ -222,7 +222,7 @@ if ($flag_ecrire) { $spip_version = 1.808; // version de spip -$spip_version_affichee = "1.8 beta 1 CVS"; +$spip_version_affichee = "1.8 beta 2 CVS"; // version de spip / tag cvs if (ereg('Name: v(.*) ','$Name$', $regs)) $spip_version_affichee = $regs[1]; diff --git a/ecrire/message_edit.php3 b/ecrire/message_edit.php3 index d0a947d7d5..4dd0d6580d 100644 --- a/ecrire/message_edit.php3 +++ b/ecrire/message_edit.php3 @@ -3,6 +3,31 @@ include ("inc.php3"); +// Droits +if ($new=='oui') { + switch ($type) { + case 'affich': + $ok = ($connect_statut == '0minirezo'); + break; + case 'pb': + case 'rv': + $ok = true; + break; + default: + $ok = false; + } +} + +if (!$ok) { + debut_page(_T('info_acces_refuse')); + debut_gauche(); + debut_droite(); + echo "<b>"._T('avis_non_acces_message')."</b><p>"; + fin_page(); + exit; +} + + function my_sel($num, $tex, $comp) { if ($num == $comp) { echo "<OPTION VALUE='$num' SELECTED>$tex\n"; -- GitLab