From 1fdcf9b1565403138f034574e6af18c1d27dcf7a Mon Sep 17 00:00:00 2001
From: "Committo,Ergo:sum" <esj@rezo.net>
Date: Fri, 27 Jul 2007 06:48:00 +0000
Subject: [PATCH] =?UTF-8?q?Evacuation=20de=20statuts=20d'auteur=20=C3=A9cr?=
 =?UTF-8?q?its=20en=20dur.?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 ecrire/balise/formulaire_admin.php       |  8 +++-----
 ecrire/balise/formulaire_inscription.php |  6 ++----
 ecrire/exec/articles_page.php            |  2 +-
 ecrire/exec/auteurs.php                  | 12 +++++++-----
 ecrire/exec/brouteur_frame.php           |  5 +++--
 ecrire/inc/acces.php                     |  9 +++++----
 6 files changed, 21 insertions(+), 21 deletions(-)

diff --git a/ecrire/balise/formulaire_admin.php b/ecrire/balise/formulaire_admin.php
index da782bcb3b..c72b5d79b3 100644
--- a/ecrire/balise/formulaire_admin.php
+++ b/ecrire/balise/formulaire_admin.php
@@ -12,6 +12,7 @@
 
 if (!defined("_ECRIRE_INC_VERSION")) return;	#securite
 
+include_spip('inc/autoriser');
 
 // http://doc.spip.org/@balise_FORMULAIRE_ADMIN
 function balise_FORMULAIRE_ADMIN ($p) {
@@ -72,15 +73,12 @@ function balise_FORMULAIRE_ADMIN_dyn($float='', $debug='') {
 		}
 	}
 
-	$statut = isset($GLOBALS['auteur_session']['statut']) ?
-		$GLOBALS['auteur_session']['statut'] : '';
-
 	// Bouton statistiques
 	$visites = $popularite = $statistiques = '';
 	if ($GLOBALS['meta']["activer_statistiques"] != "non" 
 	AND $id_article
 	AND !$var_preview
-	AND $statut == '0minirezo'
+	AND autoriser('voirstats')
 	) {
 		$result = spip_query("SELECT visites, popularite FROM spip_articles WHERE id_article=$id_article AND statut='publie'");
 
@@ -101,7 +99,7 @@ function balise_FORMULAIRE_ADMIN_dyn($float='', $debug='') {
 				AND $_COOKIE['spip_debug']
 			)
 		) AND (
-			$statut == '0minirezo'
+		       autoriser('debug')
 		) AND (
 			!$var_preview
 		)
diff --git a/ecrire/balise/formulaire_inscription.php b/ecrire/balise/formulaire_inscription.php
index e916e7d743..c625f783f1 100644
--- a/ecrire/balise/formulaire_inscription.php
+++ b/ecrire/balise/formulaire_inscription.php
@@ -47,10 +47,8 @@ function balise_FORMULAIRE_INSCRIPTION_dyn($mode, $focus, $id=0) {
 	if (!tester_config($id, $mode)) return _T('pass_rien_a_faire_ici');
 	$nom = _request('nom_inscription');
 	$mail = _request('mail_inscription');
-	$commentaire = ($mode=='1comite') ? _T('pass_espace_prive_bla') : _T('pass_forum_bla');
-
+	
 	if ($mail) {
-		include_spip('inc/filtres'); // pour email_valide
 		$commentaire = message_inscription($mail, $nom, $mode, $id);
 		if (is_array($commentaire)) {
 			if (function_exists('envoyer_inscription'))
@@ -59,7 +57,7 @@ function balise_FORMULAIRE_INSCRIPTION_dyn($mode, $focus, $id=0) {
 				$f = 'envoyer_inscription_dist';
 			$commentaire = $f($commentaire, $nom, $mode, $id);
 		}
-	}
+	} else $commentaire = ($mode=='1comite') ? _T('pass_espace_prive_bla') : _T('pass_forum_bla');
 
 	$message = $commentaire ? '' : _T('form_forum_identifiant_mail');
 
diff --git a/ecrire/exec/articles_page.php b/ecrire/exec/articles_page.php
index dd0e464909..fa3bd161ea 100644
--- a/ecrire/exec/articles_page.php
+++ b/ecrire/exec/articles_page.php
@@ -36,7 +36,7 @@ function exec_articles_page_dist()
 	if (spip_num_rows($result) > 0) {
 		echo bloc_des_raccourcis(icone_horizontale(_T('icone_ecrire_article'), generer_url_ecrire("articles_edit","new=oui"), "article-24.gif", "creer.gif", false));
 	} else {
-		if ($connect_statut == '0minirezo') {
+		  if (autoriser('creerrubriquedans', 'rubrique')) {
 			echo _T('texte_creer_rubrique');
 			echo	bloc_des_raccourcis(icone_horizontale (_T('icone_creer_rubrique'), generer_url_ecrire("rubriques_edit","new=oui&retour=nav"), "rubrique-24.gif", "creer.gif",false));
 	}
diff --git a/ecrire/exec/auteurs.php b/ecrire/exec/auteurs.php
index 036287fa4b..be7d1f78bd 100644
--- a/ecrire/exec/auteurs.php
+++ b/ecrire/exec/auteurs.php
@@ -130,8 +130,8 @@ function lettres_d_auteurs($query, $debut, $max_par_page, $tri)
 	$i = 0;
 	while ($auteur = spip_fetch_array($query)) {
 		if ($i>=$debut AND $i<$debut+$max_par_page) {
-			if ($auteur['statut'] == '0minirezo')
-				$auteur['restreint'] = spip_num_rows(spip_query("SELECT id_auteur FROM spip_auteurs_rubriques WHERE id_auteur=".$auteur['id_auteur']));
+			list($n) = spip_fetch_array(spip_query("SELECT COUNT(*) AS n FROM spip_auteurs_rubriques WHERE id_auteur=".$auteur['id_auteur'] . " LIMIT 0,1"), SPIP_NUM);
+			$auteur['restreint'] = $n;
 			$auteurs[] = $auteur;
 		}
 		$i++;
@@ -275,18 +275,20 @@ function requete_auteurs($tri, $statut, $recherche=NULL)
 	// Construire la requete
 	//
 	
-	// si on n'est pas minirezo, ignorer les auteurs sans article publie
+	// si on n'est pas minirezo, ignorer les auteurs sans article
 	// sauf les admins, toujours visibles.
 	// limiter les statuts affiches
 	if ($connect_statut == '0minirezo') {
 		if (!$statut) {
-			$sql_visible = "aut.statut IN ('0minirezo','1comite','5poubelle')";
+			$sql_visible = "en_ligne <> 0";
+			$visit = false;
 		} else {
 			if ($statut[0]=='!') {
 			  $statut = substr($statut,1); $not = " NOT";
 			} else $not = '';
 			$statut = preg_replace('/\W+/',"','",$statut); 
 			$sql_visible = "aut.statut$not IN ('$statut')";
+			$visit = statut_min_redac($statut);
 		}
 	} else {
 		$sql_visible = "(
@@ -294,6 +296,7 @@ function requete_auteurs($tri, $statut, $recherche=NULL)
 			OR art.statut IN ('prop', 'publie')
 			OR aut.id_auteur=$connect_id_auteur
 		)";
+		$visit = false;
 	}
 	if ($in_auteurs)
 		$sql_visible = "(($sql_visible) AND $in_auteurs)";
@@ -320,7 +323,6 @@ function requete_auteurs($tri, $statut, $recherche=NULL)
 		$sql_order = " multi";
 	}
 	
-	 $visit = ($statut  AND ($statut!='1comite') AND ($statut != '0minirezo'));
 	//
 	// La requete de base est tres sympa
 	// (pour les visiteurs, ca postule que les messages concernent des articles)
diff --git a/ecrire/exec/brouteur_frame.php b/ecrire/exec/brouteur_frame.php
index 25c23c8121..386c37b9a9 100644
--- a/ecrire/exec/brouteur_frame.php
+++ b/ecrire/exec/brouteur_frame.php
@@ -16,12 +16,13 @@ include_spip('inc/presentation');
 
 // http://doc.spip.org/@exec_brouteur_frame_dist
 function exec_brouteur_frame_dist() {
-	global $connect_statut,$connect_id_auteur, $spip_ecran, $spip_lang_left;
+	global $connect_id_auteur, $spip_ecran, $spip_lang_left;
 
 	$id_rubrique = is_numeric(_request('rubrique')) ? intval(_request('rubrique')) : "";
 	$frame = _request('frame');
 	$effacer_suivant = _request('effacer_suivant');
 	$special = _request('special');
+	$peutpub = autoriser('publierdans','rubrique');
 
 	include_spip('inc/headers');
 	http_no_cache();
@@ -167,7 +168,7 @@ jQuery(function(){
 
 	
 		if ($id_rubrique > 0) {
-			if ($connect_statut == "0minirezo")
+			if ($peutpub)
 				$result = spip_query("SELECT id_article, id_rubrique, titre, statut FROM spip_articles WHERE id_rubrique=$id_rubrique ORDER BY date DESC");
 			else 
 				$result = spip_query("SELECT articles.id_article, articles.id_rubrique, articles.titre, articles.statut FROM spip_articles AS articles, spip_auteurs_articles AS lien WHERE articles.id_rubrique=$id_rubrique AND (articles.statut = 'publie' OR articles.statut = 'prop' OR (articles.statut = 'prepa' AND articles.id_article = lien.id_article AND lien.id_auteur = $connect_id_auteur)) GROUP BY id_article ORDER BY articles.date DESC");
diff --git a/ecrire/inc/acces.php b/ecrire/inc/acces.php
index e21934a894..c55c1e8280 100644
--- a/ecrire/inc/acces.php
+++ b/ecrire/inc/acces.php
@@ -148,12 +148,13 @@ function ecrire_acces() {
 	}
 
 	# remarque : ici on laisse passer les "nouveau" de maniere a leur permettre
-	# de devenir "1comite" le cas echeant (auth http)... a nettoyer
+	# de devenir redacteur le cas echeant (auth http)... a nettoyer
 	// attention, il faut au prealable se connecter a la base (necessaire car utilise par install)
 	// on fait spip_query_db() car on est pas forcement encore installe
 	$p1 = ''; // login:htpass pour tous
-	$p2 = ''; // login:htpass pour les admins/0minirezo
-	$s = spip_query_db("SELECT login, htpass, statut FROM spip_auteurs WHERE statut != '5poubelle' AND statut!='6forum'");
+	$p2 = ''; // login:htpass pour les admins
+	$s = spip_query_db("SELECT login, htpass, statut FROM spip_auteurs WHERE statut IN  ('1comite','0minirezo','nouveau')");
+	$n = spip_num_rows($s);
 	while ($t = spip_fetch_array($s)) {
 		$p1 .= $t['login'].':'.$t['htpass']."\n";
 		if ($t['statut'] == '0minirezo')
@@ -162,7 +163,7 @@ function ecrire_acces() {
 
 	ecrire_fichier($htpasswd, $p1);
 	ecrire_fichier($htpasswd.'-admin', $p2);
-	spip_log("Ecriture de $htpasswd et $htpasswd-admin: OK");
+	spip_log("Ecriture de $htpasswd et $htpasswd-admin: $n auteurs");
 }
 
 
-- 
GitLab