diff --git a/ecrire/action/editer_breve.php b/ecrire/action/editer_breve.php
index e6690b961df5f1976dc78550a1899ee4b8f54126..7784a9dd49e76cbc490f97f59f308bd8b6a57f25 100644
--- a/ecrire/action/editer_breve.php
+++ b/ecrire/action/editer_breve.php
@@ -123,12 +123,8 @@ function revisions_breves ($id_breve, $c=false) {
 		// et que le demandeur n'est pas admin de la rubrique
 		// repasser la breve en statut 'prop'.
 		if ($statut == 'publie') {
-			if ($GLOBALS['auteur_session']['statut'] != '0minirezo')
+			if (!autoriser('publierdans','rubrique',$id_parent))
 				$champs['statut'] = $statut = 'prop';
-			else {
-				if (!acces_rubrique($id_parent))
-					$champs['statut'] = $statut = 'prop';
-			}
 		}
 	}
 
diff --git a/ecrire/action/editer_site.php b/ecrire/action/editer_site.php
index fdb5a092b31c4e3a6278738968e09823daf1ec9e..251fd22ebcb736d10178b60571d8f137fc2656ad 100644
--- a/ecrire/action/editer_site.php
+++ b/ecrire/action/editer_site.php
@@ -150,7 +150,7 @@ function revisions_sites ($id_syndic, $c=false) {
 
 	if (_request('statut', $c)
 	AND _request('statut', $c) != $statut
-	AND acces_rubrique($id_rubrique)) {
+	AND autoriser('publierdans','rubrique',$id_rubrique)) {
 		$statut = $champs['statut'] = _request('statut', $c);
 	}
 
@@ -166,12 +166,8 @@ function revisions_sites ($id_syndic, $c=false) {
 		// et que le demandeur n'est pas admin de la rubrique
 		// repasser le site en statut 'prop'.
 		if ($statut == 'publie') {
-			if ($GLOBALS['auteur_session']['statut'] != '0minirezo')
+			if (!autoriser('publierdans','rubrique',$id_parent))
 				$champs['statut'] = $statut = 'prop';
-			else {
-				if (!acces_rubrique($id_parent))
-					$champs['statut'] = $statut = 'prop';
-			}
 		}
 	}
 
diff --git a/ecrire/exec/articles.php b/ecrire/exec/articles.php
index 7a7c23c7c97a0e1b43ff03dd2b9f3f1b92998000..94efc1f4ccebdbb3808d5f65c060ed7d2878676a 100644
--- a/ecrire/exec/articles.php
+++ b/ecrire/exec/articles.php
@@ -15,7 +15,6 @@ if (!defined("_ECRIRE_INC_VERSION")) return;
 include_spip('inc/presentation');
 include_spip('inc/texte');
 include_spip('inc/actions');
-include_spip('inc/autoriser');
 
 // http://doc.spip.org/@exec_articles_dist
 function exec_articles_dist()
diff --git a/ecrire/exec/articles_forum.php b/ecrire/exec/articles_forum.php
index f14497402907ef04939d98e3f0fc519ca16e22cf..a85a8e8375ef84b6c2e749f9a6c61a7b4f704205 100644
--- a/ecrire/exec/articles_forum.php
+++ b/ecrire/exec/articles_forum.php
@@ -13,7 +13,6 @@
 if (!defined("_ECRIRE_INC_VERSION")) return;
 include_spip('inc/presentation');
 include_spip('inc/forum'); // pour boutons_controle_forum 
-include_spip('inc/autoriser');
 
 // http://doc.spip.org/@exec_articles_forum_dist
 function exec_articles_forum_dist()
diff --git a/ecrire/exec/articles_ortho.php b/ecrire/exec/articles_ortho.php
index 9986d17f30c5337d773d9589ac598887088b388c..5db8cbbcd5c0f947d10c4981a922b73eae96ae53 100644
--- a/ecrire/exec/articles_ortho.php
+++ b/ecrire/exec/articles_ortho.php
@@ -15,7 +15,6 @@ if (!defined("_ECRIRE_INC_VERSION")) return;
 include_spip('inc/presentation');
 include_spip('inc/distant');
 include_spip('inc/ortho');
-include_spip('inc/autoriser');
 
 // http://doc.spip.org/@exec_articles_ortho_dist
 function exec_articles_ortho_dist()
diff --git a/ecrire/exec/articles_versions.php b/ecrire/exec/articles_versions.php
index 51230b289108c88cef6cd4d8683c7e59cd6f7b20..b3f4c804074b2f72a3fb09e1ced9a2e87dfae1d8 100644
--- a/ecrire/exec/articles_versions.php
+++ b/ecrire/exec/articles_versions.php
@@ -15,7 +15,6 @@ if (!defined("_ECRIRE_INC_VERSION")) return;
 
 include_spip('inc/presentation');
 include_spip('inc/revisions');
-include_spip('inc/autoriser');
 
 // http://doc.spip.org/@exec_articles_versions_dist
 function exec_articles_versions_dist()
diff --git a/ecrire/exec/breves.php b/ecrire/exec/breves.php
index 08147a8639eb789cee5823ef8f0c232076a8e529..514c77af28b549dc91321ffcd12fafbf90969e20 100644
--- a/ecrire/exec/breves.php
+++ b/ecrire/exec/breves.php
@@ -38,8 +38,7 @@ function exec_breves_dist()
 		$titre=typo($row['titre']);
 		$descriptif=$row['descriptif'];
 		$texte=$row['texte'];
-		$editable = ($GLOBALS['connect_statut'] == "0minirezo")
-		  && acces_rubrique($id_rubrique);
+		$editable = autoriser('publierdans','rubrique',$id_rubrique);
 
 		$statuts = "'prop', 'publie'" . ($editable ? ", 'refuse'": "");
 
diff --git a/ecrire/exec/breves_edit.php b/ecrire/exec/breves_edit.php
index 24223f1154f6d19a687846379378c2d9a073feed..f80848afce73733cb15008edcfd21909a0ef43ab 100644
--- a/ecrire/exec/breves_edit.php
+++ b/ecrire/exec/breves_edit.php
@@ -164,7 +164,7 @@ if ($connect_statut=="0minirezo" OR $statut=="prop" OR $new == "oui") {
 		$form .= extra_saisie($extra, 'breves', $id_rubrique);
 	}
 
-	if ($connect_statut=="0minirezo" AND acces_rubrique($id_rubrique)) {
+	if (autoriser('publierdans','rubrique',$id_rubrique)) {
 		$form .= debut_cadre_relief('', true)
 		. "<b>"._T('entree_breve_publiee')."</b>\n"
 		. "<select name='statut' size='1' class='fondl'>\n"
diff --git a/ecrire/exec/breves_voir.php b/ecrire/exec/breves_voir.php
index a4f442e79148665738d6a4caa9144f694c9fbb1e..fde965659e7834d09f14bce1718d48239bde0acf 100644
--- a/ecrire/exec/breves_voir.php
+++ b/ecrire/exec/breves_voir.php
@@ -40,7 +40,7 @@ function afficher_breves_voir($id_breve, $cherche_mot, $select_groupe)
 		exit;
 	      }
 
-	$flag_editable = (($connect_statut == '0minirezo' AND acces_rubrique($id_rubrique)) OR $statut == 'prop');
+	$flag_editable = (autoriser('publierdans','rubrique',$id_rubrique) OR $statut == 'prop');
 
 	// Est-ce que quelqu'un a deja ouvert la breve en edition ?
 	if ($flag_editable
@@ -87,7 +87,7 @@ function afficher_breves_voir($id_breve, $cherche_mot, $select_groupe)
 	// Logos de la breve
 	//
 
-	if (($spip_display != 4) AND $id_breve>0 AND ($connect_statut == '0minirezo' AND acces_rubrique($id_rubrique))) {
+	if (($spip_display != 4) AND $id_breve>0 AND autoriser('publierdans','rubrique',$id_rubrique)) {
 		$iconifier = charger_fonction('iconifier', 'inc');
 		echo $iconifier('id_breve', $id_breve, 'breves_voir'); 
 	}
@@ -208,7 +208,7 @@ function afficher_breves_voir($id_breve, $cherche_mot, $select_groupe)
 		echo extra_affichage($extra, "breves");
 	}
 
-	if ($connect_statut=="0minirezo" AND acces_rubrique($id_rubrique) AND ($statut=="prop" OR $statut=="prepa")){
+	if (autoriser('publierdans','rubrique',$id_rubrique) AND ($statut=="prop" OR $statut=="prepa")){
 		echo "<div align='right'>";
 		
 		echo "<table><tr>";
diff --git a/ecrire/exec/controle_forum.php b/ecrire/exec/controle_forum.php
index 27ee2be3a2bad00ec39c7421badc09ccdf8895eb..9dee4089fcc958ef4245c603b1944df122ebd492 100644
--- a/ecrire/exec/controle_forum.php
+++ b/ecrire/exec/controle_forum.php
@@ -228,7 +228,7 @@ function exec_controle_forum_dist()
 	# TODO autoriser
 	$droit = (($connect_statut != "0minirezo") OR 
 		  (!$connect_toutes_rubriques AND
-		   (!$id_rubrique OR !acces_rubrique($id_rubrique))));
+		   (!$id_rubrique OR !autoriser('publierdans','rubrique',$id_rubrique))));
 
 	if (_request('var_ajaxcharset') AND !$droit) {
 		ajax_retour($mess);
diff --git a/ecrire/exec/controle_petition.php b/ecrire/exec/controle_petition.php
index d422ad6cce1bb8ffe32b52711088377f88808b03..60190bd456f00a3c5656d697fe8392ed2349cbe5 100644
--- a/ecrire/exec/controle_petition.php
+++ b/ecrire/exec/controle_petition.php
@@ -18,7 +18,6 @@ function exec_controle_petition_dist()
 {
 	include_spip('inc/presentation');
 	include_spip('inc/signatures');
-	include_spip('inc/autoriser');
 
 	$id_article = intval(_request('id_article'));
 
diff --git a/ecrire/exec/dater.php b/ecrire/exec/dater.php
index 968cdcfbbd0b6b0a99e2fcd851ab2f0c727fcb97..61eca1e826966eca56e1e3def53a56bfb1918977 100644
--- a/ecrire/exec/dater.php
+++ b/ecrire/exec/dater.php
@@ -19,7 +19,7 @@ function exec_dater_dist()
 	$id = intval(_request('id'));
 
 	if (($GLOBALS['auteur_session']['statut'] != '0minirezo')
-	OR ($type == 'article' AND    !acces_article($id))
+	OR ($type == 'article' AND    !autoriser('modifier','article',$id))
 	OR (!preg_match('/^\w+$/',$type))) { // securite 
 		include_spip('inc/minipres');
 		echo minipres();
diff --git a/ecrire/exec/documents_colonne.php b/ecrire/exec/documents_colonne.php
index 48054f98a853d0a4a151af50a3d54811bbf08ca0..71a4dfd1e74c74f4440fdce4a83711f47e3f5c32 100644
--- a/ecrire/exec/documents_colonne.php
+++ b/ecrire/exec/documents_colonne.php
@@ -19,8 +19,8 @@ function exec_documents_colonne_dist()
 	$id = intval($id);
 
 	if (!($type == 'article' 
-		? acces_article($id)
-		: acces_rubrique($id))) {
+		? autoriser('modifier','article',$id)
+		: autoriser('publierdans','rubrique',$id))) {
 		include_spip('inc/minipres');
 		echo minipres();
 		exit;
diff --git a/ecrire/exec/editer_auteurs.php b/ecrire/exec/editer_auteurs.php
index c42422102003c9da2b2c131a9ece5f2de897d363..1fe709643e7247db2a51b45c3691df118af48fe4 100644
--- a/ecrire/exec/editer_auteurs.php
+++ b/ecrire/exec/editer_auteurs.php
@@ -21,7 +21,7 @@ function exec_editer_auteurs_dist()
 
 	$id = intval(_request("id_$type"));
 
-	if (! acces_article($id_article)) {
+	if (! autoriser('modifier','article',$id_article)) {
 		include_spip('inc/minipres');
 		echo minipres();
 		exit;
diff --git a/ecrire/exec/editer_mot.php b/ecrire/exec/editer_mot.php
index ef579cd6e37dd64494e8c251391f956ca2b36ef4..d8cc6a782e058321e54a2624e2156c2ba130fd8b 100644
--- a/ecrire/exec/editer_mot.php
+++ b/ecrire/exec/editer_mot.php
@@ -22,14 +22,14 @@ function exec_editer_mot_dist()
 	if ($GLOBALS['connect_toutes_rubriques']) // pour eviter SQL
 		$droit = true;
 	elseif ($objet == 'article')
-		$droit = acces_article($id_objet);
+		$droit = autoriser('modifier','article',$id_objet);
 	elseif ($objet == 'rubrique')
-		$droit = acces_rubrique($id_objet);
+		$droit = autoriser('publierdans','rubrique',$id_objet);
 	else {
 		if ($objet == 'breve')
 			$droit = spip_query("SELECT id_rubrique FROM spip_breves WHERE id_breve='$id_objet'");
 		else $droit = spip_query("SELECT id_rubrique FROM spip_syndic WHERE id_syndic=$id_objet");
-		$droit = acces_rubrique($droit['id_rubrique']);
+		$droit = autoriser('publierdans','rubrique',$droit['id_rubrique']);
 	}
 
 	if (!$droit) {
diff --git a/ecrire/exec/iconifier.php b/ecrire/exec/iconifier.php
index fda9fedb2521823600548a6c2c316730024e2c9b..ec3bc6f199925b8036272cde275bc6714dc41799 100644
--- a/ecrire/exec/iconifier.php
+++ b/ecrire/exec/iconifier.php
@@ -31,7 +31,7 @@ function exec_iconifier_dist()
 	      }
 
 	if ($type == 'id_rubrique')
-	  $droit = acces_rubrique($id);
+	  $droit = autoriser('publierdans','rubrique',$id);
 	elseif ($type == 'id_auteur')
 	  $droit = (($id == $connect_id_auteur) OR $connect_toutes_rubriques);
 	elseif ($type == 'id_mot')
@@ -39,7 +39,7 @@ function exec_iconifier_dist()
 	else {
 		$table=substr($type, 3) . (($type == 'id_syndic') ? '' : 's');
 		$row = spip_fetch_array(spip_query("SELECT id_rubrique, statut FROM spip_$table WHERE $type=$id"));
-		$droit = acces_rubrique($row['id_rubrique']);
+		$droit = autoriser('publierdans','rubrique',$row['id_rubrique']);
 		if (!$droit AND  ($row['statut'] == 'prepa' OR $row['statut'] == 'prop' OR $row['statut'] == 'poubelle'))
 			$droit = spip_num_rows(determiner_auteurs_objet('article',$id, "id_auteur=$connect_id_auteur"));
 	}
diff --git a/ecrire/exec/legender.php b/ecrire/exec/legender.php
index 49b3b431ffd5fd44444a57d736c514567719078e..bb934bd92690895d018527fe183c9c46f604ffeb 100644
--- a/ecrire/exec/legender.php
+++ b/ecrire/exec/legender.php
@@ -20,8 +20,8 @@ function exec_legender_dist()
 	$id_document = intval($id_document);
 
 	if (!($type == 'article' 
-		? acces_article($id)
-		: acces_rubrique($id))) {
+		? autoriser('modifier','article',$id)
+		: autoriser('publierdans','rubrique',$id))) {
 		include_spip('inc/minipres');
 		echo minipres();
 		exit;
diff --git a/ecrire/exec/meme_rubrique.php b/ecrire/exec/meme_rubrique.php
index f04935ea04be088f472b03bc215e901630bca947..eba2ac27c37091cf75445655be274f7c17de9ce3 100644
--- a/ecrire/exec/meme_rubrique.php
+++ b/ecrire/exec/meme_rubrique.php
@@ -22,7 +22,7 @@ function exec_meme_rubrique_dist()
 	$order = _request('order');
 
         if (($GLOBALS['auteur_session']['statut'] != '0minirezo')
-        OR (!acces_rubrique($id))
+        OR (!autoriser('publierdans','rubrique',$id))
 	OR (!preg_match('/^[\w_-]+$/',$order))
 	OR (!preg_match('/^[\w_-]+$/',$type))) {
                 include_spip('inc/minipres');
diff --git a/ecrire/exec/mots_edit.php b/ecrire/exec/mots_edit.php
index f13c0e62c0bf308bbc6b17ac4c21e90209cdc4c7..7063fbd96f867ebc7c16f47c4f933db85917ae7a 100644
--- a/ecrire/exec/mots_edit.php
+++ b/ecrire/exec/mots_edit.php
@@ -56,7 +56,7 @@ global
 		$id_groupe = $row['id_groupe'];
 		$onfocus ='';
 	 } else {
-		if (!$new OR !acces_mots()) {
+		if (!$new OR !autoriser('modifier','groupemots',$id_groupe)) {
 			echo minipres(_T('info_mot_sans_groupe'));
 			exit;
 		}
@@ -105,7 +105,7 @@ global
 
 		// Logos du mot-clef
 
-		if (acces_mots() AND ($spip_display != 4)) {
+		if (autoriser('modifier','groupemots',$id_groupe) AND ($spip_display != 4)) {
 			$iconifier = charger_fonction('iconifier', 'inc');
 			$out .= $iconifier('id_mot', $id_mot, 'mots_edit','iconifier');
 		}
@@ -117,7 +117,7 @@ global
 
 	$res ='';
 
-	if (acces_mots() AND $id_groupe) {
+	if ($id_groupe AND autoriser('modifier','groupemots',$id_groupe)) {
 		$res = icone_horizontale(_T('icone_modif_groupe_mots'), generer_url_ecrire("mots_type","id_groupe=$id_groupe"), "groupe-mot-24.gif", "edit.gif", false)
 		  . icone_horizontale(_T('icone_creation_mots_cles'), generer_url_ecrire("mots_edit", "new=oui&id_groupe=$id_groupe&redirect=" . generer_url_retour('mots_tous')),  "mot-cle-24.gif",  "creer.gif", false);
 	}
@@ -188,7 +188,7 @@ global
 	$out .= fin_cadre_relief(true);
 
 
-	if (acces_mots()){
+	if (autoriser('modifier','groupemots',$id_groupe)){
 
 		$out .= debut_cadre_formulaire('',true);
 
diff --git a/ecrire/exec/mots_tous.php b/ecrire/exec/mots_tous.php
index e0f9399a5af14e75e4d42bf187e37024de838ad3..a3417e1e7c9b3ea8cab30ea4468cd025f8cad834 100644
--- a/ecrire/exec/mots_tous.php
+++ b/ecrire/exec/mots_tous.php
@@ -30,7 +30,7 @@ function exec_mots_tous_dist()
 
 	echo pipeline('affiche_gauche',array('args'=>array('exec'=>'mots_tous'),'data'=>''));
 
-	if (acces_mots()  AND !$conf_mot){
+	if (autoriser('modifier','groupemots',$id_groupe)  AND !$conf_mot){
 		$res = icone_horizontale(_T('icone_creation_groupe_mots'), generer_url_ecrire("mots_type","new=oui"), "groupe-mot-24.gif", "creer.gif",false);
 
 		echo bloc_des_raccourcis($res);
@@ -42,7 +42,7 @@ function exec_mots_tous_dist()
 	debut_droite();
 
 	gros_titre(_T('titre_mots_tous'));
-	if (acces_mots()) {
+	if (autoriser('modifier','groupemots',$id_groupe)) {
 	  echo typo(_T('info_creation_mots_cles')) . aide ("mots") ;
 	}
 	echo "<br /><br />";
@@ -119,7 +119,7 @@ function exec_mots_tous_dist()
 
 		echo "</div>";
 
-		if (acces_mots()){
+		if (autoriser('modifier','groupemots',$id_groupe)){
 			echo "\n<table cellpadding='0' cellspacing='0' border='0' width='100%'>";
 			echo "<tr>";
 			echo "<td>";
diff --git a/ecrire/exec/naviguer.php b/ecrire/exec/naviguer.php
index e3113583260d2bf0744aa4b4708fbd725b9de837..4802cf49f4e4a3d3b86ab266c88fcab6923d365b 100644
--- a/ecrire/exec/naviguer.php
+++ b/ecrire/exec/naviguer.php
@@ -42,7 +42,7 @@ function exec_naviguer_dist()
 	else if ($id_parent == 0) $ze_logo = "secteur-24.gif";
 	else $ze_logo = "rubrique-24.gif";
 
-	$flag_editable = acces_rubrique($id_rubrique);
+	$flag_editable = autoriser('publierdans','rubrique',$id_rubrique);
 
 	pipeline('exec_init',array('args'=>array('exec'=>'naviguer','id_rubrique'=>$id_rubrique),'data'=>''));
 
@@ -62,6 +62,12 @@ function exec_naviguer_dist()
 	  fin_grand_cadre();
 
 	  changer_typo('', 'rubrique'.$id_rubrique);
+	  
+	  if (!autoriser('voir','rubrique',$id_rubrique)){
+			echo "<strong>"._T('avis_acces_interdit')."</strong>";
+			fin_page();
+			exit;
+	  }
 
 	  debut_gauche();
 
@@ -151,7 +157,7 @@ function infos_naviguer($id_rubrique, $statut, $ze_logo)
 		echo $res;
 		voir_en_ligne ('rubrique', $id_rubrique, $statut);
 	
-		if (acces_rubrique($id_rubrique)) {
+		if (autoriser('publierdans','rubrique',$id_rubrique)) {
 			$id_parent = spip_fetch_array(spip_query("SELECT id_parent FROM spip_rubriques WHERE id_rubrique=$id_rubrique"));
 			if (!$id_parent['id_parent']) {
 			  list($from, $where) = critere_statut_controle_forum('prop', $id_rubrique);
@@ -358,7 +364,7 @@ function contenu_naviguer($id_rubrique, $id_parent) {
 		$res .= '<br />' . afficher_sites('<b>' . _T('titre_sites_references_rubrique') . '</b>', array("FROM" => 'spip_syndic', 'WHERE' => "id_rubrique='$id_rubrique' AND statut!='refuse' AND statut != 'prop' AND syndication NOT IN ('off','sus')", 'ORDER BY' => 'nom_site'));
 
 		if ($id_rubrique > 0
-		AND ($GLOBALS['meta']["proposer_sites"]> 0 OR acces_rubrique($id_rubrique))) {
+		AND ($GLOBALS['meta']["proposer_sites"]> 0 OR autoriser('publierdans','rubrique',$id_rubrique))) {
 	
 		$res .= "<br /><div align='$spip_lang_right'>"
 		. icone(_T('info_sites_referencer'), generer_url_ecrire('sites_edit', "id_rubrique=$id_rubrique&redirect=" . generer_url_retour('naviguer', "id_rubrique=$id_rubrique")), "site-24.gif", "creer.gif",'', 'non')
diff --git a/ecrire/exec/petitionner.php b/ecrire/exec/petitionner.php
index dae8938e828c14c1e44d0d3af15442ef46ab3769..b13ac5ca2166a7dfe006057976cf98a8f675ad3c 100644
--- a/ecrire/exec/petitionner.php
+++ b/ecrire/exec/petitionner.php
@@ -18,7 +18,7 @@ function exec_petitionner_dist()
 	global $id_article, $script;
 	$id_article = intval($id_article);
 
-	if (!acces_article($id_article)) {
+	if (!autoriser('modifier','article',$id_article)) {
 		include_spip('inc/minipres');
 		echo minipres();
 		exit;
diff --git a/ecrire/exec/puce_statut_article.php b/ecrire/exec/puce_statut_article.php
index cd1fe82718ee541e222b4ae6cb075600b3baa21a..1c9249d85b3532971e45823814e042433b2532a6 100644
--- a/ecrire/exec/puce_statut_article.php
+++ b/ecrire/exec/puce_statut_article.php
@@ -13,7 +13,6 @@
 if (!defined("_ECRIRE_INC_VERSION")) return;
 
 include_spip('inc/presentation');
-include_spip('inc/autoriser');
 
 // http://doc.spip.org/@exec_puce_statut_article_dist
 function exec_puce_statut_article_dist()
diff --git a/ecrire/exec/referencer_traduction.php b/ecrire/exec/referencer_traduction.php
index 89a257ca42f596509a6c11902bc338903bc0563a..a76de88402e9b6e5fe667fe5539228a4e1599fe5 100644
--- a/ecrire/exec/referencer_traduction.php
+++ b/ecrire/exec/referencer_traduction.php
@@ -17,7 +17,7 @@ function exec_referencer_traduction_dist()
 {
 	$id_article = intval(_request('id_article'));
 
-	if (!acces_article($id_article)) {
+	if (!autoriser('modifier','article',$id_article)) {
 		include_spip('inc/minipres');
 		echo minipres();
 		exit;
diff --git a/ecrire/exec/regler_moderation.php b/ecrire/exec/regler_moderation.php
index 7d629eb77c51dc2f4c0213425cf32202c8d25ec6..e4c8182fb78576d870b6627cf63c1ac8487d1de2 100644
--- a/ecrire/exec/regler_moderation.php
+++ b/ecrire/exec/regler_moderation.php
@@ -18,7 +18,7 @@ function exec_regler_moderation_dist()
 	global $id_article, $script;
 	$id_article = intval($id_article);
 
-	if (!acces_article($id_article)) {
+	if (!autoriser('modifier','article',$id_article)) {
 		include_spip('inc/minipres');
 		echo minipres();
 		exit;
diff --git a/ecrire/exec/rubriques_edit.php b/ecrire/exec/rubriques_edit.php
index 31085eab41a8572cc56e5ef91156b1c7c6fb2602..c095e85ebbf7af6f7fdbc36acac9e1f9509bbf91 100644
--- a/ecrire/exec/rubriques_edit.php
+++ b/ecrire/exec/rubriques_edit.php
@@ -39,7 +39,7 @@ function exec_rubriques_edit_dist()
 		$texte = "";
 		$id_parent = intval($id_parent);
 
-		if (!acces_rubrique($id_parent)) {
+		if (!autoriser('publierdans','rubrique',$id_parent)) {
 			$id_parent = $GLOBALS['connect_id_rubrique'][0];
 		}
 	} else {
diff --git a/ecrire/exec/sites.php b/ecrire/exec/sites.php
index 0496b95bdc45537384cce909993c9808dbb55f86..946115b1e70d8530525be425dc69ebed300c70f9 100644
--- a/ecrire/exec/sites.php
+++ b/ecrire/exec/sites.php
@@ -43,7 +43,7 @@ function exec_sites_dist()
 		$mod = $row['moderation'];
 		$extra=$row["extra"];
 
-		$flag_administrable = acces_rubrique($id_rubrique);
+		$flag_administrable = autoriser('publierdans','rubrique',$id_rubrique);
 
 		$flag_editable = ($flag_administrable OR ($GLOBALS['meta']["proposer_sites"] > 0 AND ($statut == 'prop')));
 	
diff --git a/ecrire/exec/statistiques_visites.php b/ecrire/exec/statistiques_visites.php
index b8354c0265e86decc3060819f47269062e27c187..81320768c0eac2db51ea25f0356b67f12f683b5d 100644
--- a/ecrire/exec/statistiques_visites.php
+++ b/ecrire/exec/statistiques_visites.php
@@ -45,7 +45,6 @@ function statistiques_csv($id_article) {
 	else
 		$q = "SELECT date, visites FROM spip_visites ORDER BY date";
 
-	include_spip('inc/autoriser');
 	if (!autoriser('voirstats', $id ? 'article':'', $id)) exit;
 
 
diff --git a/ecrire/exec/tourner.php b/ecrire/exec/tourner.php
index 4ffcac67071a703aa6cf060afed355628a7f09e6..da6edd7cbf80b5c5590e07c735cffa95e7cc3cbe 100644
--- a/ecrire/exec/tourner.php
+++ b/ecrire/exec/tourner.php
@@ -20,8 +20,8 @@ function exec_tourner_dist()
 	$id_document = intval($id_document);
 
 	if (!($type == 'article' 
-		? acces_article($id)
-		: acces_rubrique($id))) {
+		? autoriser('modifier','article',$id)
+		: autoriser('publierdans','rubrique',$id))) {
 		include_spip('inc/minipres');
 		echo minipres();
 		exit;
diff --git a/ecrire/exec/virtualiser.php b/ecrire/exec/virtualiser.php
index dbe45a5c07c50d0b4a520d4e7f8768df8c5c7e2f..81d79b470fc80bb6c4c4bba60f09edc81a050b42 100644
--- a/ecrire/exec/virtualiser.php
+++ b/ecrire/exec/virtualiser.php
@@ -18,7 +18,7 @@ function exec_virtualiser_dist()
 	global $id_article, $script;
 	$id_article = intval($id_article);
 
-	if (!acces_article($id_article)) {
+	if (!autoriser('modifier','article',$id_article)) {
 		include_spip('inc/minipres');
 		echo minipres();
 		exit;
diff --git a/ecrire/inc/admin.php b/ecrire/inc/admin.php
index 42a7d4a6830aff0227668d7a411fcdef85c26767..06346b59af5eea7ff4a656f6c4b8d92ae4accbe0 100644
--- a/ecrire/inc/admin.php
+++ b/ecrire/inc/admin.php
@@ -44,7 +44,6 @@ function debut_admin($script, $action, $commentaire='') {
 	}
 
 	include_spip('inc/minipres');
-	include_spip('inc/autoriser');
 
 
 	// Si on est un super-admin, un bouton de validation suffit
diff --git a/ecrire/inc/article_select.php b/ecrire/inc/article_select.php
index 0038c5b40458bb21efe1dd9bf963c444205d2c34..436b0a052f29447c0a25af7e469abc8e5c282d84 100644
--- a/ecrire/inc/article_select.php
+++ b/ecrire/inc/article_select.php
@@ -23,7 +23,6 @@ function article_select($id_article, $id_rubrique=0, $lier_trad=0, $id_version=0
 	global $connect_id_auteur, $connect_id_rubrique, $spip_lang; 
 
 	include_spip('inc/auth'); // pour auteurs_article si espace public
-	include_spip('inc/autoriser');
 
 	if (is_numeric($id_article)) {
 
diff --git a/ecrire/inc/auth.php b/ecrire/inc/auth.php
index a3644cc00f11f3a20ffae6de1259bed4f40d7686..a4d59705673f3308a5fb263d4e3463506dd9b989 100644
--- a/ecrire/inc/auth.php
+++ b/ecrire/inc/auth.php
@@ -17,14 +17,6 @@ if (!defined("_ECRIRE_INC_VERSION")) return;
 // Fonctions de gestion de l'acces restreint aux rubriques
 //
 
-// http://doc.spip.org/@acces_rubrique
-function acces_rubrique($id_rubrique) {
-	global $connect_toutes_rubriques;
-	global $connect_id_rubrique;
-
-	return ($connect_toutes_rubriques OR isset($connect_id_rubrique[$id_rubrique]));
-}
-
 // http://doc.spip.org/@acces_restreint_rubrique
 function acces_restreint_rubrique($id_rubrique) {
 	global $connect_id_rubrique;
@@ -33,32 +25,6 @@ function acces_restreint_rubrique($id_rubrique) {
 	return (isset($connect_id_rubrique[$id_rubrique]));
 }
 
-// http://doc.spip.org/@acces_mots
-function acces_mots() {
-	global $connect_toutes_rubriques;
-	return $connect_toutes_rubriques;
-}
-
-// http://doc.spip.org/@acces_article
-function acces_article($id_article)
-{
-	global $auteur_session, $connect_toutes_rubriques;
-
-	if ($connect_toutes_rubriques) return true;
-
-	$s = spip_query("SELECT id_rubrique, statut FROM spip_articles WHERE id_article=$id_article");
-	$row = spip_fetch_array($s);
-
-	if (acces_rubrique($row['id_rubrique'])) return true;
-
-	$s = auteurs_article($id_article, " id_auteur=" . $auteur_session['id_auteur']);
-	if (!spip_num_rows($s)) return false;
-
-	$s = $row['statut'];
-
-	return ($s == 'prepa' OR $s == 'prop' OR $s == 'poubelle');
-}
-
 // http://doc.spip.org/@auteurs_article
 function auteurs_article($id_article, $cond='')
 {
diff --git a/ecrire/inc/autoriser.php b/ecrire/inc/autoriser.php
index c8f7907e6e65b23672bc2417c8a632cf5b83d161..3b1a43f5353fbc1c8b7417d56d030ed3a3f52442 100644
--- a/ecrire/inc/autoriser.php
+++ b/ecrire/inc/autoriser.php
@@ -161,6 +161,14 @@ function autoriser_article_modifier_dist($faire, $type, $id, $qui, $opt) {
 		);
 }
 
+// Autoriser a modifier un groupe de mots $id
+// http://doc.spip.org/@autoriser_rubrique_modifier_dist
+function autoriser_groupemots_modifier_dist($faire, $type, $id, $qui, $opt) {
+	return
+		$qui['statut'] == '0minirezo'
+		AND !$qui['restreint'];
+}
+
 // Lire les stats ?
 // = tous les admins
 // http://doc.spip.org/@autoriser_voirstats_dist
diff --git a/ecrire/inc/chercher_rubrique.php b/ecrire/inc/chercher_rubrique.php
index 53bad9dc39e6b63265c10d5abb63db7551692dfa..687d4c671992ebbaac0b18c9c1b9b6976f8de16f 100644
--- a/ecrire/inc/chercher_rubrique.php
+++ b/ecrire/inc/chercher_rubrique.php
@@ -129,7 +129,7 @@ function sous_menu_rubriques($id_rubrique, $root, $niv, &$data, &$enfants, $excl
 				$niv+1, $data, $enfants, $exclus, $restreint, $type);
 
 	// si l'objet a deplacer est publie, verifier qu'on a acces aux rubriques
-	if ($restreint AND !acces_rubrique($root))
+	if ($restreint AND !autoriser('publierdans','rubrique',$root))
 		return $sous;
 
 	// sauter un cran pour les secteurs (sauf premier)
diff --git a/ecrire/inc/editer_mot.php b/ecrire/inc/editer_mot.php
index d469ec17021d05cb9b122ed114983702f59f3d37..19da7cc23eaf17d29e3206588ad5ccfb9a1ab9a9 100644
--- a/ecrire/inc/editer_mot.php
+++ b/ecrire/inc/editer_mot.php
@@ -146,7 +146,7 @@ function recherche_mot_cle($cherche_mots, $id_groupe, $objet, $id_objet, $table,
 		}
 		else $res .= affiche_mots_ressemblant($cherche_mot, $objet, $id_objet, $resultat, $table, $table_id, $url_base);
 
-/*		if (acces_mots()) {
+/*		if (autoriser('modifier','groupemots',$id_groupe)) {
 			$titre = rawurlencode($cherche_mot);
 			$res .= "<div style='width: 200px;'>";
 			$res .= icone_horizontale(_T('icone_creer_mot_cle'), generer_url_ecrire("mots_edit","new=oui&id_groupe=$id_groupe&ajouter_id_article=$id_objet&table=$table&table_id=$table_id&titre=$titre&redirect=" . generer_url_retour($url_base, "$table_id=$id_objet")), "mot-cle-24.gif", "creer.gif", false);
@@ -324,7 +324,7 @@ function formulaire_mots_cles($id_groupes_vus, $id_objet, $les_mots, $table, $ta
 			."</div>\n" ;
 	}
 
-	if (acces_mots()) {
+	if (autoriser('modifier','groupemots')) {
 		$titre = _request('cherche_mot')
 			? "&titre=".rawurlencode(_request('cherche_mot')) : '';
 		$bouton_ajouter = icone_horizontale(_T('icone_creer_mot_cle'), generer_url_ecrire("mots_edit","new=oui&ajouter_id_article=$id_objet&table=$table&table_id=$table_id$titre&redirect=" . generer_url_retour($url_base, "$table_id=$id_objet")), "mot-cle-24.gif", "creer.gif", false)
diff --git a/ecrire/inc/export.php b/ecrire/inc/export.php
index 70d534ff005da1ad51694c2fbb2b337e7aadd33a..e2a185c7a2fad0341a62a2bafc7a9de7acd9a5ea 100644
--- a/ecrire/inc/export.php
+++ b/ecrire/inc/export.php
@@ -132,7 +132,7 @@ function build_while($file,$gz, $nfields, &$pos_in_table, $result, &$status_dump
 				$k = $fields[$i];
 				$item .= "<$k>" . text_to_xml($row[$k]) . "</$k>\n";
 			}
-			if ($all OR acces_rubrique($row['id_rubrique']))
+			if ($all OR autoriser('publierdans','rubrique',$row['id_rubrique']))
 				$string .= "$begin$item$end";
 		}
 		$status_dump[3] = $pos_in_table = $pos_in_table +1;
diff --git a/ecrire/inc/grouper_mots.php b/ecrire/inc/grouper_mots.php
index 7497068790de29b8d75113ac0cb550d632a12b7f..2409c242db4e05043acd28078a526c8e1cc6c69b 100644
--- a/ecrire/inc/grouper_mots.php
+++ b/ecrire/inc/grouper_mots.php
@@ -112,7 +112,7 @@ function afficher_groupe_mots_boucle($row, $occurrences, $total)
 				
 	$vals[] = $texte_lie;
 
-	if (acces_mots()) {
+	if (autoriser('modifier','groupemots',$id_groupe)) {
 		$clic =  _T('info_supprimer_mot')
 		. "&nbsp;<img src='"
 		. _DIR_IMG_PACK
diff --git a/ecrire/inc/notifications.php b/ecrire/inc/notifications.php
index 2aca9bf9ab7fa4daf91d33027c4f365c85ed4a6e..2add885868e5236b5e86975e57d7faf2a74d2060 100644
--- a/ecrire/inc/notifications.php
+++ b/ecrire/inc/notifications.php
@@ -217,7 +217,6 @@ function notifications_forumvalide_dist($quoi, $id_forum) {
 	include_spip('inc/texte');
 	include_spip('inc/filtres');
 	include_spip('inc/mail');
-	include_spip('inc/autoriser');
 
 
 	// Qui va-t-on prevenir ?
@@ -294,7 +293,6 @@ function notifications_forumposte_dist($quoi, $id_forum) {
 	include_spip('inc/texte');
 	include_spip('inc/filtres');
 	include_spip('inc/mail');
-	include_spip('inc/autoriser');
 
 
 	// Qui va-t-on prevenir ?
diff --git a/ecrire/inc/presentation.php b/ecrire/inc/presentation.php
index cd4e9a88c1ea19d9294564e2a629246d7571a15f..79e6bc1e966a13288a1d5a6a368a551ccd5c993e 100644
--- a/ecrire/inc/presentation.php
+++ b/ecrire/inc/presentation.php
@@ -537,7 +537,6 @@ function puce_statut_article($id, $statut, $id_rubrique, $type='article', $ajax
 
 	$inser_puce = http_img_pack($puce, $title, " style='margin: 1px;'$ajax_node");
 
-	include_spip('inc/autoriser');
 	if (!autoriser('publierdans', 'rubrique', $id_rubrique))
 		return $inser_puce;
 
@@ -615,7 +614,6 @@ function puce_statut_breve($id, $statut, $type, $droit='AUTO') {
 	if (!$droit || $droit=='AUTO') return $inser_puce;
 	
 	/*	if ($droit == 'AUTO') { # id_rubrique indefinie. a revoir.
-		include_spip('inc/autoriser');
 		$droit = autoriser('publierdans', 'rubrique', $id_rubrique);
 		} */
 
@@ -908,7 +906,7 @@ function afficher_breves_boucle($row, &$tous_id,  $voir_logo, $own)
 	else $lang = $langue_defaut;
 	$id_rubrique = $row['id_rubrique'];
 			
-	$vals[] = puce_statut_breve($id_breve, $statut, 'breve', ($droit && acces_rubrique($id_rubrique)));
+	$vals[] = puce_statut_breve($id_breve, $statut, 'breve', ($droit && autoriser('publierdans','rubrique',$id_rubrique)));
 
 	$s = "\n<div>";
 	$s .= "<a href='" . generer_url_ecrire("breves_voir","id_breve=$id_breve") . "' style=\"display:block;\">";
@@ -1863,7 +1861,6 @@ function afficher_numero_edit($id, $key, $type)
 		$numero = _T('info_numero_abbreviation');
 	}
 
-	include_spip("inc/autoriser");
 	if (!autoriser('modifier',$type,$id)) {
 		$bal ='span';
 		$href = '';
@@ -1945,43 +1942,46 @@ function enfant_rub($collection){
 		$id_rubrique=$row['id_rubrique'];
 		$id_parent=$row['id_parent'];
 		$titre=$row['titre'];
-
-		$les_sous_enfants = sous_enfant_rub($id_rubrique);
-
-		changer_typo($row['lang']);
-
-		$descriptif=propre($row['descriptif']);
-
-		if ($voir_logo) {
-			if ($logo = $chercher_logo($id_rubrique, 'id_rubrique', 'on')) {
-				list($fid, $dir, $nom, $format) = $logo;
-				include_spip('inc/filtres_images');
-				$logo = image_reduire("<img src='$fid' alt='' />", 48, 36);
-				if ($logo)
-					$logo =  "\n<div style='$voir_logo'>$logo</div>";
+		
+		if (autoriser('voir','rubrique',$id_rubrique)){
+	
+			$les_sous_enfants = sous_enfant_rub($id_rubrique);
+	
+			changer_typo($row['lang']);
+	
+			$descriptif=propre($row['descriptif']);
+	
+			if ($voir_logo) {
+				if ($logo = $chercher_logo($id_rubrique, 'id_rubrique', 'on')) {
+					list($fid, $dir, $nom, $format) = $logo;
+					include_spip('inc/filtres_images');
+					$logo = image_reduire("<img src='$fid' alt='' />", 48, 36);
+					if ($logo)
+						$logo =  "\n<div style='$voir_logo'>$logo</div>";
+				}
 			}
+	
+			$les_enfants = "\n<div class='enfants'>" .
+			  debut_cadre_sous_rub(($id_parent ? "rubrique-24.gif" : "secteur-24.gif"), true) .
+			  (is_string($logo) ? $logo : '') .
+			  (!$les_sous_enfants ? "" : bouton_block_invisible("enfants$id_rubrique")) .
+			  (!acces_restreint_rubrique($id_rubrique) ? "" :
+			   http_img_pack("admin-12.gif", '', " width='12' height='12'", _T('image_administrer_rubrique'))) .
+			  " <span dir='$lang_dir'><b><a href='" . 
+			  generer_url_ecrire("naviguer","id_rubrique=$id_rubrique") .
+			  "'>".
+			  typo($titre) .
+			  "</a></b></span>" .
+			  (!$descriptif ? '' : "\n<div class='verdana1'>$descriptif</div>") .
+			  (($spip_display == 4) ? '' : $les_sous_enfants) .
+			  "\n<div style='clear:both;'></div>"  .
+			  fin_cadre_sous_rub(true) .
+			  "</div>";
+	
+			$res .= ($spip_display != 4)
+			? $les_enfants
+			: "\n<li>$les_enfants</li>";
 		}
-
-		$les_enfants = "\n<div class='enfants'>" .
-		  debut_cadre_sous_rub(($id_parent ? "rubrique-24.gif" : "secteur-24.gif"), true) .
-		  (is_string($logo) ? $logo : '') .
-		  (!$les_sous_enfants ? "" : bouton_block_invisible("enfants$id_rubrique")) .
-		  (!acces_restreint_rubrique($id_rubrique) ? "" :
-		   http_img_pack("admin-12.gif", '', " width='12' height='12'", _T('image_administrer_rubrique'))) .
-		  " <span dir='$lang_dir'><b><a href='" . 
-		  generer_url_ecrire("naviguer","id_rubrique=$id_rubrique") .
-		  "'>".
-		  typo($titre) .
-		  "</a></b></span>" .
-		  (!$descriptif ? '' : "\n<div class='verdana1'>$descriptif</div>") .
-		  (($spip_display == 4) ? '' : $les_sous_enfants) .
-		  "\n<div style='clear:both;'></div>"  .
-		  fin_cadre_sous_rub(true) .
-		  "</div>";
-
-		$res .= ($spip_display != 4)
-		? $les_enfants
-		: "\n<li>$les_enfants</li>";
 	}
 
 	changer_typo($spip_lang); # remettre la typo de l'interface pour la suite
@@ -2003,6 +2003,7 @@ function sous_enfant_rub($collection2){
 			$titre2=$row['titre'];
 			changer_typo($row['lang']);
 
+		if (autoriser('voir','rubrique',$id_rubrique2))
 			$retour.="\n<li><div class='arial11' " .
 			  http_style_background('rubrique-12.gif', "left center no-repeat; padding: 2px; padding-$spip_lang_left: 18px; margin-$spip_lang_left: 3px") . "><a href='" . generer_url_ecrire("naviguer","id_rubrique=$id_rubrique2") . "'><span dir='$lang_dir'>".typo($titre2)."</span></a></div></li>\n";
 	}
diff --git a/ecrire/inc_version.php b/ecrire/inc_version.php
index a8cb42b1954e50a1807dde23cad882f0e41c34db..40f8a70d6b0dc6540b6189cd85f4887b2e28ef18 100644
--- a/ecrire/inc_version.php
+++ b/ecrire/inc_version.php
@@ -346,7 +346,9 @@ if (@is_readable(_DIR_TMP."charger_plugins_options.php")){
 		spip_log("generation de charger_plugins_options.php impossible; pipeline desactives");
 }
 
-
+// charger systematiquement inc/autoriser dans l'espace restreint
+if (!_DIR_RESTREINT)
+	include_spip('inc/autoriser');
 //
 // Installer Spip si pas installe... sauf si justement on est en train
 //