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