Changeset 22655 in spip-zone


Ignore:
Timestamp:
Sep 19, 2008, 10:31:18 AM (13 years ago)
Author:
cedric@…
Message:

encore du nettoyage, et de l'interface en squelette, ca fait tellement moins de code a maintenir

Location:
_plugins_/_stable_/acces_restreint
Files:
1 added
1 deleted
7 edited
1 moved

Legend:

Unmodified
Added
Removed
  • _plugins_/_stable_/acces_restreint/acces_restreint_options.php

    r22644 r22655  
    2929        .$GLOBALS['AccesRestreint_zones_autorisees'];
    3030
    31 //
    32 // Autorisations
    33 //
    34 /**
    35  * Autorisation a affecter les zones a un auteur
    36  * si un id_zone passe dans opts, cela concerne plus particulierement le droit d'affecter cette zone
    37  *
    38  * @param unknown_type $faire
    39  * @param unknown_type $qui
    40  * @param unknown_type $id
    41  * @param unknown_type $qui
    42  * @param unknown_type $opts
    43  * @return unknown
    44  */
    45 function autoriser_auteur_affecterzones_dist($faire,$quoi,$id,$qui,$opts){
    46         if (!autoriser('modifier','auteur',$id)) return false;
    47         if ($qui['statut']=='0minirezo' AND !$qui['restreint'])
    48                 return true;
    49         # les non admin ne peuvent pas s'administrer eux meme pour eviter les erreurs
    50         if ($id == $qui['id_auteur']) return false;
    51         # les non admin ne peuvent affecter que les zones dont ils font partie
    52         if ($opts['id_zone']
    53           AND !AccesRestreint_test_appartenance_zone_auteur($opts['id_zone'], $qui['id_auteur']))
    54           return false;
    55  return true;
    56 }
    57 
    58 if(!function_exists('autoriser_rubrique_voir')) {
    59 function autoriser_rubrique_voir($faire, $type, $id, $qui, $opt) {
    60         include_spip('inc/acces_restreint_autorisations');
    61         static $rub_exclues;
    62         if (isset($opt['publique']))
    63                 $publique = $opt['publique'];
    64         else
    65                 $publique = !test_espace_prive();
    66         if (!isset($rub_exclues[$publique]) || !is_array($rub_exclues[$publique])) {
    67                 // Si autoriser est appelee pour un autre auteur que l'auteur connecte  ou si pas d'auteur connecte , on passe $id_auteur en parametre
    68                 if(isset($GLOBALS['auteur_session']['id_auteur']) && isset($qui['id_auteur']) && $qui['id_auteur']!=$GLOBALS['auteur_session']['id_auteur'])
    69                         $rub_exclues[$publique] = AccesRestreint_liste_rubriques_exclues($publique,$qui['id_auteur']);
    70                 elseif (!isset($GLOBALS['auteur_session']['id_auteur']) && isset($qui['id_auteur']))
    71                         $rub_exclues[$publique] = AccesRestreint_liste_rubriques_exclues($publique,$qui['id_auteur']);
    72                 else
    73                         $rub_exclues[$publique] = AccesRestreint_liste_rubriques_exclues($publique);
    74                 $rub_exclues[$publique] = array_flip($rub_exclues[$publique]);
    75         }
    76         return !isset($rub_exclues[$publique][$id]);
    77 }
    78 }
    79 if(!function_exists('autoriser_article_voir')) {
    80 function autoriser_article_voir($faire, $type, $id, $qui, $opt) {
    81         include_spip('inc/acces_restreint_autorisations');
    82         static $art_exclus;
    83         if (isset($opt['publique']))
    84                 $publique = $opt['publique'];
    85         else
    86                 $publique = !test_espace_prive();
    87         if (!isset($art_exclus[$publique]) || !is_array($art_exclus[$publique])) {
    88                 // Si autoriser est appelee pour un autre auteur que l'auteur connecte  ou si pas d'auteur connecte , on passe $id_auteur en parametre
    89                 if(isset($GLOBALS['auteur_session']['id_auteur']) && isset($qui['id_auteur']) && $qui['id_auteur']!=$GLOBALS['auteur_session']['id_auteur'])
    90                         $art_exclus[$publique] = AccesRestreint_liste_articles_exclus($publique,$qui['id_auteur']);
    91                 elseif (!isset($GLOBALS['auteur_session']['id_auteur']) && isset($qui['id_auteur']))
    92                         $art_exclus[$publique] = AccesRestreint_liste_articles_exclus($publique,$qui['id_auteur']);
    93                 else
    94                         $art_exclus[$publique] = AccesRestreint_liste_articles_exclus($publique);
    95                 $art_exclus[$publique] = array_flip($art_exclus[$publique]);
    96         }
    97         return !isset($art_exclus[$publique][$id]);
    98 }
    99 }
    100 if(!function_exists('autoriser_breve_voir')) {
    101 function autoriser_breve_voir($faire, $type, $id, $qui, $opt) {
    102         include_spip('inc/acces_restreint_autorisations');
    103         static $breves_exclues;
    104         if (isset($opt['publique']))
    105                 $publique = $opt['publique'];
    106         else
    107                 $publique = !test_espace_prive();
    108         if (!isset($breves_exclues[$publique]) || !is_array($breves_exclues[$publique])) {
    109                 // Si autoriser est appelee pour un autre auteur que l'auteur connecte  ou si pas d'auteur connecte , on passe $id_auteur en parametre
    110                 if(isset($GLOBALS['auteur_session']['id_auteur']) && isset($qui['id_auteur']) && $qui['id_auteur']!=$GLOBALS['auteur_session']['id_auteur'])
    111                         $breves_exclues[$publique] = AccesRestreint_liste_breves_exclues($publique,$qui['id_auteur']);
    112                 elseif (!isset($GLOBALS['auteur_session']['id_auteur']) && isset($qui['id_auteur']))
    113                         $breves_exclues[$publique] = AccesRestreint_liste_breves_exclues($publique,$qui['id_auteur']);
    114                 else
    115                         $breves_exclues[$publique] = AccesRestreint_liste_breves_exclues($publique);
    116                 $breves_exclues[$publique] = array_flip($breves_exclues[$publique]);
    117         }
    118         return !isset($breves_exclues[$publique][$id]);
    119 }
    120 }
    121 if(!function_exists('autoriser_site_voir')) {
    122 function autoriser_site_voir($faire, $type, $id, $qui, $opt) {
    123         include_spip('inc/acces_restreint_autorisations');
    124         static $sites_exclus;
    125         if (isset($opt['publique']))
    126                 $publique = $opt['publique'];
    127         else
    128                 $publique = !test_espace_prive();
    129         if (!isset($sites_exclus[$publique]) || !is_array($sites_exclus[$publique])) {
    130                 // Si autoriser est appelee pour un autre auteur que l'auteur connecte  ou si pas d'auteur connecte , on passe $id_auteur en parametre
    131                 if(isset($GLOBALS['auteur_session']['id_auteur']) && isset($qui['id_auteur']) && $qui['id_auteur']!=$GLOBALS['auteur_session']['id_auteur'])
    132                         $sites_exclus[$publique] = AccesRestreint_liste_syndic_exclus($publique,$qui['id_auteur']);
    133                 elseif (!isset($GLOBALS['auteur_session']['id_auteur']) && isset($qui['id_auteur']))
    134                         $sites_exclus[$publique] = AccesRestreint_liste_syndic_exclus($publique,$qui['id_auteur']);
    135                 else
    136                         $sites_exclus[$publique] = AccesRestreint_liste_syndic_exclus($publique);
    137                 $sites_exclus[$publique] = array_flip($sites_exclus[$publique]);
    138         }
    139         return !isset($sites_exclus[$publique][$id]);
    140 }
    141 }
    142 if(!function_exists('autoriser_evenement_voir')) {
    143 function autoriser_evenement_voir($faire, $type, $id, $qui, $opt) {
    144         include_spip('inc/acces_restreint_autorisations');
    145         static $evenements_exclus;
    146         if (isset($opt['publique']))
    147                 $publique = $opt['publique'];
    148         else
    149                 $publique = !test_espace_prive();
    150         if (!isset($evenements_exclus[$publique]) || !is_array($evenements_exclus[$publique])) {
    151                 // Si autoriser est appelee pour un autre auteur que l'auteur connecte  ou si pas d'auteur connecte , on passe $id_auteur en parametre
    152                 if(isset($GLOBALS['auteur_session']['id_auteur']) && isset($qui['id_auteur']) && $qui['id_auteur']!=$GLOBALS['auteur_session']['id_auteur'])
    153                         $evenements_exclus[$publique] = AccesRestreint_liste_evenements_exclus($publique,$qui['id_auteur']);
    154                 elseif (!isset($GLOBALS['auteur_session']['id_auteur']) && isset($qui['id_auteur']))
    155                         $evenements_exclus[$publique] = AccesRestreint_liste_evenements_exclus($publique,$qui['id_auteur']);
    156                 else
    157                         $evenements_exclus[$publique] = AccesRestreint_liste_evenements_exclus($publique);
    158                 $evenements_exclus[$publique] = array_flip($evenements_exclus[$publique]);
    159         }
    160         return !isset($evenements_exclus[$publique][$id]);
    161 }
    162 }
    163 if(!function_exists('autoriser_document_voir')) {
    164 function autoriser_document_voir($faire, $type, $id, $qui, $opt) {
    165         include_spip('inc/acces_restreint_autorisations');
    166         static $documents_exclus;
    167         if (isset($opt['publique']))
    168                 $publique = $opt['publique'];
    169         else
    170                 $publique = !test_espace_prive();
    171         if (!isset($documents_exclus[$publique]) || !is_array($documents_exclus[$publique])) {
    172                 $documents_exclus[$publique] = AccesRestreint_liste_documents_exclus($publique,$qui['id_auteur']);
    173                 $documents_exclus[$publique] = array_flip($documents_exclus[$publique]);
    174         }
    175         return !isset($documents_exclus[$publique][$id]);
    176 }
    177 }
    178 
    17931?>
  • _plugins_/_stable_/acces_restreint/acces_restreint_pipelines.php

    r22648 r22655  
    11<?php
    2 
    3 // * Acces restreint, plugin pour SPIP * //
     2/**
     3 * Plugin Acces Restreint 3.0 pour Spip 2.0
     4 * Licence GPL
     5 *
     6 *
     7 */
    48
    59if (!defined("_ECRIRE_INC_VERSION")) return;
    610
    711
    8 if (!defined('_DIR_PLUGIN_ACCESRESTREINT')){ // definie automatiquement en 1.9.2
    9         $p=explode(basename(_DIR_PLUGINS)."/",str_replace('\\','/',realpath(dirname(__FILE__))));
    10         define('_DIR_PLUGIN_ACCESRESTREINT',(_DIR_PLUGINS.end($p)));
     12/**
     13 * Ajouter le bouton de menu config si on a le droit
     14 *
     15 * @param unknown_type $boutons_admin
     16 * @return unknown
     17 */
     18function AccesRestreint_ajouter_boutons($boutons_admin) {
     19        // si on est admin
     20        if (autoriser('administrer','zone')) {
     21          // on voit le bouton dans la barre "naviguer"
     22                $boutons_admin['configuration']->sousmenu['acces_restreint']= new Bouton(
     23                _DIR_PLUGIN_ACCESRESTREINT."/img_pack/zones-acces-24.gif",  // icone
     24                _T('accesrestreint:icone_menu_config')  // titre
     25                );
     26        }
     27        return $boutons_admin;
    1128}
    1229
    13         /* public static */
    14         function AccesRestreint_ajouterBoutons($boutons_admin) {
    15                 // si on est admin
    16                 if (autoriser('modifier','zone')) {
    17                   // on voit le bouton dans la barre "naviguer"
    18                         $boutons_admin['configuration']->sousmenu['acces_restreint']= new Bouton(
    19                         "../"._DIR_PLUGIN_ACCESRESTREINT."/img_pack/zones-acces-24.gif",  // icone
    20                         _T('accesrestreint:icone_menu_config')  // titre
    21                         );
    22                 }
    23                 return $boutons_admin;
     30/**
     31 * Ajouter la boite des zones sur la fiche auteur
     32 *
     33 * @param string $flux
     34 * @return string
     35 */
     36function AccesRestreint_affiche_milieu($flux){
     37        switch($flux['args']['exec']) {
     38                case 'auteur_infos':
     39                        $id_auteur = $flux['args']['id_auteur'];
     40                       
     41                        $flux['data'] .=
     42                        recuperer_fond('prive/editer/affecter_zones',array('id_auteur'=>$id_auteur));
     43                        break;
    2444        }
    25 
    26         /* public static */
    27         function AccesRestreint_ajouterOnglets($flux) {
    28                 $rubrique = $flux['args'];
    29                 return $flux;
    30         }
    31 
    32         function AccesRestreint_affiche_milieu($flux){
    33                 switch($flux['args']['exec']) {
    34                         case 'auteur_infos':
    35                                 $id_auteur = $flux['args']['id_auteur'];
    36                                
    37                                 $flux['data'] .=
    38                                 recuperer_fond('prive/editer/affecter_zones',array('id_auteur'=>$id_auteur));
    39                                 break;
    40                 }
    41                 return $flux;
    42         }
     45        return $flux;
     46}
    4347
    4448?>
  • _plugins_/_stable_/acces_restreint/exec/acces_restreint.php

    r21608 r22655  
    1111
    1212function exec_acces_restreint(){
    13         global $couleur_claire;
    14         global $spip_lang_right;
    15         if ($GLOBALS['spip_version_code']<1.9204){
    16                 include_spip('base/create');
    17                 creer_base(); // au cas ou
     13        if (!autoriser('administrer','zone',0)) {
     14                include_spip('inc/minipres');
     15                echo minipres();
     16                exit;
    1817        }
    19          
     18
    2019        echo debut_page(_T('accesrestreint:page_zones_acces'));
    2120       
    22         echo "<br /><br /><br />";
    2321        gros_titre(_T('accesrestreint:titre_zones_acces'));
    24         echo debut_gauche();
     22        echo debut_gauche("acces_restreint",true);
    2523       
    26         echo debut_boite_info();
     24        echo debut_boite_info(true);
    2725        echo propre(_T('accesrestreint:info_page'));   
    28         echo fin_boite_info();
     26        echo fin_boite_info(true);
    2927       
    30         if (autoriser('modifier','zone')) {
    31                 $res = icone_horizontale(_T('accesrestreint:creer_zone'), generer_url_ecrire("acces_restreint_edit","new=oui"), "../"._DIR_PLUGIN_ACCESRESTREINT."/img_pack/zones-acces-24.gif", "creer.gif",false);
    32 
    33         if (autoriser('webmestre'))
    34                 $res .= icone_horizontale(_L('Configuration des acc&#232;s .htaccess'), generer_url_ecrire("acces_restreint_config"), "../"._DIR_PLUGIN_ACCESRESTREINT."/img_pack/zones-acces-24.gif", "cadenas-24.gif",false);
    35 
     28        if (autoriser('webmestre')) {
     29                $res = icone_horizontale(_L('Configuration des acc&#232;s .htaccess'), generer_url_ecrire("acces_restreint_config"), "../"._DIR_PLUGIN_ACCESRESTREINT."/img_pack/zones-acces-24.gif", "cadenas-24.gif",false);
    3630                echo bloc_des_raccourcis($res);
    3731        }
    3832       
    39         echo debut_droite();
    40         if (!autoriser('modifier','zone')) {
    41                 echo _T('avis_non_acces_page');
    42                 echo fin_page();
    43                 exit;
    44         }
    45        
    46 /*      if (_request('creer')!=NULL)
    47                 AccesRestreint_cree_zone(); */
    48         if (_request('supp_zone')!=NULL)
    49                 AccesRestreint_supprimer_zone();
     33        echo debut_droite("acces_restreint",true);
     34        echo recuperer_fond('prive/acces_restreint',$_GET);
     35        if (autoriser('modifier','zone'))
     36                echo "<div>".icone_inline(_T('accesrestreint:creer_zone'),
     37                  generer_url_ecrire("zones_edit","new=oui"),
     38                  _DIR_PLUGIN_ACCESRESTREINT."/img_pack/zones-acces-24.gif",
     39                  "creer.gif",'right')."</div>";
    5040
    51         $requete = array("SELECT"=>"zones.*","FROM"=>"spip_zones AS zones","ORDER BY"=>"zones.titre");
    52         $select = $requete['SELECT'] ? $requete['SELECT'] : '*';
    53         $from = $requete['FROM'] ? $requete['FROM'] : 'spip_articles AS articles';
    54         $join = $requete['JOIN'] ? (' LEFT JOIN ' . $requete['JOIN']) : '';
    55         $where = $requete['WHERE'] ? (' WHERE ' . $requete['WHERE']) : '';
    56         $order = $requete['ORDER BY'] ? (' ORDER BY ' . $requete['ORDER BY']) : 'zones.titre';
    57         $group = $requete['GROUP BY'] ? (' GROUP BY ' . $requete['GROUP BY']) : '';
    58         $limit = $requete['LIMIT'] ? (' LIMIT ' . $requete['LIMIT']) : '';
    59 
    60         $cpt = "$from$join$where$group";
    61         $tmp_var = "debut";
    62 
    63         if (!$group){
    64                 $cpt = spip_fetch_array(spip_query("SELECT COUNT(*) AS n FROM $cpt"));
    65                 $cpt = $cpt['n'];
    66         }
    67         else
    68                 $cpt = spip_num_rows(spip_query("SELECT $select FROM $cpt"));
    69 
    70         if ($requete['LIMIT']) $cpt = min($requete['LIMIT'], $cpt);
    71 
    72         $nb_aff = 1.5 * _TRANCHES;
    73 
    74         if ($cpt > $nb_aff) {
    75                 if ($GLOBALS['spip_version_code']>=12008) {
    76                         include_spip('inc/presenter_liste');
    77                 }
    78                 $nb_aff = (_TRANCHES);
    79                 $tranches = afficher_tranches_requete($cpt, 3, $tmp_var, '', $nb_aff);
    80         }
    81 
    82         $deb_aff = _request($tmp_var);
    83         $deb_aff = ($deb_aff !== NULL ? intval($deb_aff) : 0);
    84 
    85   if ($cpt) {
    86                 $result = spip_query("SELECT $select FROM $from$join$where$group$order" . (($deb_aff < 0) ? '' : " LIMIT $deb_aff, $nb_aff"));
    87 
    88                 $vals = '';
    89                 $vals[] = _T('accesrestreint:colonne_id');
    90                 $vals[] = _T('accesrestreint:titre');
    91                 $vals[] = _T('accesrestreint:descriptif');
    92                 $vals[] = _T('accesrestreint:publique');
    93                 $vals[] = _T('accesrestreint:privee');
    94                 $vals[] = '';
    95                 $vals[] = '';
    96                 $table[] = $vals;
    97                
    98                 while ($row = spip_fetch_array($result)){
    99                         $vals = array();
    100                         $id_zone = $row['id_zone'];
    101                         $nb_rub = count(AccesRestreint_liste_contenu_zone_rub($id_zone));
    102                         $nb_aut = count(AccesRestreint_liste_contenu_zone_auteur($id_zone));
    103                        
    104                         $s = $row['id_zone'];
    105                         $vals[] = $s;
    106 
    107                         $s = "";
    108                         $s .= "<a href='".generer_url_ecrire("acces_restreint_edit","id_zone=$id_zone")."'>";
    109                         $s .= $row['titre'];
    110                         $s .= "</a>";
    111                         $vals[] = $s;
    112 
    113                         $s = propre($row['descriptif']);
    114                         $vals[] = $s;
    115                        
    116                         $s = ($row['publique']=='oui')?"<img src='"._DIR_PLUGIN_ACCESRESTREINT."/img_pack/restreint-16.png' width='16' height='16' alt='' />":'';
    117                         $vals[] = $s;
    118                        
    119                         $s = ($row['privee']=='oui')?"<img src='"._DIR_PLUGIN_ACCESRESTREINT."/img_pack/restreint-16.png' width='16' height='16' alt='' />":'';
    120                         $vals[] = $s;
    121                        
    122                         $s = "";
    123                         if ($nb_rub>0){
    124                                 $s .= "$nb_rub "._T('accesrestreint:rubriques');
    125                                 if ($nb_aut>0) $s.=", ";
    126                         }
    127                         if ($nb_aut>0)
    128                                 $s .= "$nb_aut "._T('accesrestreint:auteurs');
    129                         $vals[] = $s;
    130                        
    131                         $s="";
    132                         $s = icone_horizontale (_T('accesrestreint:icone_supprimer_zone'), generer_url_ecrire('acces_restreint', "supp_zone=$id_zone"), "../"._DIR_PLUGIN_ACCESRESTREINT."/img_pack/zones-acces-24.gif", "supprimer.gif", false);
    133                         $vals[] = $s;
    134 
    135                         $table[] = $vals;
    136                 }
    137         }
    138 
    139         // on affiche la table
    140                 $titre_table = _T('accesrestreint:titre_table');
    141                 $icone = "../"._DIR_PLUGIN_ACCESRESTREINT."/img_pack/zones-acces-24.gif";
    142                 //if ($titre_table) echo "<div style='height: 12px;'></div>";
    143                 echo "<div class='liste'>";
    144         bandeau_titre_boite2($titre_table, $icone, $couleur_claire, "black");
    145                 echo "<table width='100%' cellpadding='5' cellspacing='0' border='0'>";
    146                 echo $tranches;
    147         $largeurs = array('','','','','','','');
    148         $styles = array('arial11', 'arial1', 'arial1','arial1','arial1','arial1','arial1');
    149                 echo afficher_liste($largeurs, $table, $styles);
    150                 echo "</table>";
    151                 echo "</div></div>";
    152 
    153         echo "</div>";
    154 
    155 /*      debut_cadre_relief();
    156         echo generer_url_post_ecrire("acces_restreint");
    157         AccesRestreint_formulaire_zone($id_zone , _T('accesrestreint:titre'), _T('accesrestreint:descriptif'), 'oui', 'non');
    158 
    159         if (autoriser('modifier','zone')){
    160                 echo "<div class='verdana2'>";
    161                 echo "<input type='checkbox' name='auto_attribue_droits' value='oui' checked='checked' id='droits_admin'> <label for='droits_admin'>"._T("accesrestreint:ajouter_droits_auteur")."</label><br>";
    162                 echo "</div>";
    163         }
    164 
    165         echo "<div style='text-align:$spip_lang_right'><input type='submit' name='creer' value='"._T('accesrestreint:bouton_creer_la_zone')."' class='fondo'></div>";
    166         echo "</div>";
    167         echo "</form>";
    168         fin_cadre_relief();*/
    169 
    170         echo fin_page();
     41        echo fin_gauche(),fin_page();
    17142}
    17243
  • _plugins_/_stable_/acces_restreint/exec/acces_restreint_config.php

    r20357 r22655  
    11<?php
    2 
    3 // * Acces restreint, plugin pour SPIP * //
     2/**
     3 * Plugin Acces Restreint 3.0 pour Spip 2.0
     4 * Licence GPL
     5 *
     6 *
     7 */
    48
    59if (!defined("_ECRIRE_INC_VERSION")) return;
     
    4650        if (!autoriser('webmestre')) {
    4751                include_spip('inc/minipres');
    48                 minipres();
     52                echo minipres();
    4953                exit;
    5054        }
     
    5862        echo $commencer_page(_T('titre_page_config'), "configuration", "configuration");
    5963
    60         echo "<br /><br /><br />";
    61         gros_titre(_T('titre_config_fonctions'));
     64        echo gros_titre(_T('titre_config_fonctions'),'',false);
    6265
    63         echo debut_gauche();
     66        echo debut_gauche('',true);
    6467        echo pipeline('affiche_gauche',array('args'=>array('exec'=>'acces_restreint_config'),'data'=>''));
    65         creer_colonne_droite();
     68        echo creer_colonne_droite('',true);
    6669        echo pipeline('affiche_droite',array('args'=>array('exec'=>'acces_restreint_config'),'data'=>''));
    6770
     
    7275
    7376
    74         echo debut_droite();
     77        echo debut_droite('',true);
    7578        lire_metas();
    7679
    7780        $action = generer_url_ecrire('acces_restreint_config');
    7881
    79         echo "<form action='$action' method='post'><div>", form_hidden($action);
     82        echo "<form action='$action' method='post'><div>", form_hidden($action);
    8083        echo "<input type='hidden' name='changer_config' value='oui' />";
    8184
     
    98101        global $spip_lang_right;
    99102
    100         echo debut_cadre_trait_couleur("cadenas-24.gif", false, "",
     103        echo debut_cadre_trait_couleur("cadenas-24.gif", true, "",
    101104                          _L("Acc&egrave;s aux document joints par leur URL"));
    102105        include_spip('inc/acces');
     
    115118        echo "<div style='text-align:$spip_lang_right'><input type='submit'  value='"._T('bouton_valider')."' class='fondo' /></div>";
    116119       
    117         echo fin_cadre_trait_couleur();
     120        echo fin_cadre_trait_couleur(true);
    118121
    119122        echo "<br />";
     
    126129        ecrire_acces();
    127130
    128         echo debut_cadre_trait_couleur("cadenas-24.gif", false, "",
     131        echo debut_cadre_trait_couleur("cadenas-24.gif", true, "",
    129132                _T('info_fichiers_authent'));
    130133
     
    141144        echo "<div style='text-align:$spip_lang_right'><input type='submit' value='"._T('bouton_valider')."' class='fondo' /></div>";
    142145       
    143         echo fin_cadre_trait_couleur();
     146        echo fin_cadre_trait_couleur(true);
    144147}
    145148
  • _plugins_/_stable_/acces_restreint/inc/acces_restreint_autoriser.php

    r22632 r22655  
    77 */
    88
    9         // fonctions de filtrage article
    10         // plus performant a priori : liste des rubriques exclues uniquement
    11         // -> condition NOT IN
    12         function AccesRestreint_liste_articles_exclus($publique=true, $id_auteur=NULL){
    13                 include_spip('base/abstract_sql');
    14                 static $liste_art_exclus=array();
    15                 if (!isset($liste_art_exclus[$publique]) || !is_array($liste_art_exclus[$publique])){
    16                         $liste_art_exclus[$publique] = array();
    17                         $liste_rub = AccesRestreint_liste_rubriques_exclues($publique, $id_auteur);
    18                         $where = calcul_mysql_in('id_rubrique', join(",",$liste_rub));
    19                         $s = spip_query("SELECT id_article FROM spip_articles WHERE $where");
    20                         while ($row = spip_fetch_array($s)){
    21                                 $liste_art_exclus[$publique][] = $row['id_article'];
    22                         }
    23                 }
    24                 return $liste_art_exclus[$publique];
    25         }
    26        
    27         // fonctions de filtrage breves
    28         // plus performant a priori : liste des rubriques exclues uniquement
    29         // -> condition NOT IN
    30         function AccesRestreint_liste_breves_exclues($publique=true, $id_auteur=NULL){
    31                 include_spip('base/abstract_sql');
    32                 static $liste_breves_exclues=array();
    33                 if (!isset($liste_breves_exclues[$publique]) || !is_array($liste_breves_exclues[$publique])){
    34                         $liste_breves_exclues[$publique] = array();
    35                         $liste_rub = AccesRestreint_liste_rubriques_exclues($publique, $id_auteur);
    36                         $where = calcul_mysql_in('id_rubrique', join(",",$liste_rub));
    37                         $s = spip_query("SELECT id_breve FROM spip_breves WHERE $where");
    38                         while ($row = spip_fetch_array($s)){
    39                                 $liste_breves_exclues[$publique][] = $row['id_breve'];
    40                         }
    41                 }
    42                 return $liste_breves_exclues[$publique];
    43         }
    44 
    45         // fonctions de filtrage forums
    46         // plus performant a priori : liste des rubriques exclues uniquement
    47         // -> condition NOT IN
    48         function AccesRestreint_liste_forum_exclus($publique=true, $id_auteur=NULL){
    49                 include_spip('base/abstract_sql');
    50                 static $liste_forum_exclus=array();
    51                 if (!isset($liste_forum_exclus[$publique]) || !is_array($liste_forum_exclus[$publique])){
    52                         $liste_forum_exclus[$publique] = array();
    53                         // rattaches aux rubriques
    54                         $liste_rub = AccesRestreint_liste_rubriques_exclues($publique, $id_auteur);
    55                         $where = calcul_mysql_in('id_rubrique', join(",",$liste_rub));
    56                         // rattaches aux articles
    57                         $liste_art = AccesRestreint_liste_articles_exclus($publique, $id_auteur);
    58                         $where .= " OR " . calcul_mysql_in('id_article', join(",",$liste_art));
    59                         // rattaches aux breves
    60                         $liste_breves = AccesRestreint_liste_breves_exclues($publique, $id_auteur);
    61                         $where .= " OR " . calcul_mysql_in('id_breve', join(",",$liste_art));
    62 
    63                         $s = spip_query("SELECT id_forum FROM spip_forum WHERE $where");
    64                         while ($row = spip_fetch_array($s)){
    65                                 $liste_forum_exclus[$publique][] = $row['id_forum'];
    66                         }
    67                 }
    68                 return $liste_forum_exclus[$publique];
    69         }
    70 
    71         // fonctions de filtrage signatures
    72         // plus performant a priori : liste des rubriques exclues uniquement
    73         // -> condition NOT IN
    74         function AccesRestreint_liste_signatures_exclues($publique=true, $id_auteur=NULL){
    75                 include_spip('base/abstract_sql');
    76                 static $liste_signatures_exclues=array();
    77                 if (!isset($liste_signatures_exclues[$publique]) || !is_array($liste_signatures_exclues[$publique])){
    78                         $liste_signatures_exclues[$publique] = array();
    79                         // rattaches aux articles
    80                         $liste_art = AccesRestreint_liste_articles_exclus($publique, $id_auteur);
    81                         $where = calcul_mysql_in('id_article', join(",",$liste_art));
    82                         $s = spip_query("SELECT id_signature FROM spip_signatures WHERE $where");
    83                         while ($row = spip_fetch_array($s)){
    84                                 $liste_signatures_exclues[$publique][] = $row['id_signature'];
    85                         }
    86                 }
    87                 return $liste_signatures_exclues[$publique];
    88         }
    89 
    90         // fonctions de filtrage documents
    91         // plus performant a priori : liste des rubriques exclues uniquement
    92         // -> condition NOT IN
    93         function AccesRestreint_liste_documents_exclus($publique=true, $id_auteur=NULL){
    94                 include_spip('base/abstract_sql');
    95                 static $liste_documents_exclus=array();
    96                 if (!isset($liste_documents_exclus[$publique]) || !is_array($liste_documents_exclus[$publique])){
    97                         $liste_documents_exclus[$publique] = array();
    98                         // rattaches aux articles
    99                         $liste_art = AccesRestreint_liste_articles_exclus($publique, $id_auteur);
    100                         $where = calcul_mysql_in('id_article', join(",",$liste_art));
    101                         $s = spip_query("SELECT id_document FROM spip_documents_articles WHERE $where");
    102                         while ($row = spip_fetch_array($s)){
    103                                 $liste_documents_exclus[$publique][$row['id_document']]=1;
    104                         }
    105                         // rattaches aux rubriques
    106                         $liste_rub = AccesRestreint_liste_rubriques_exclues($publique, $id_auteur);
    107                         $where = calcul_mysql_in('id_rubrique', join(",",$liste_rub));
    108                         $s = spip_query("SELECT id_document FROM spip_documents_rubriques WHERE $where");
    109                         while ($row = spip_fetch_array($s)){
    110                                 $liste_documents_exclus[$publique][$row['id_document']]=1;
    111                         }
    112                         // rattaches aux breves
    113                         $liste_breves = AccesRestreint_liste_breves_exclues($publique, $id_auteur);
    114                         $where = calcul_mysql_in('id_breve', join(",",$liste_breves));
    115                         $s = spip_query("SELECT id_document FROM spip_documents_breves WHERE $where");
    116                         while ($row = spip_fetch_array($s)){
    117                                 $liste_documents_exclus[$publique][$row['id_document']]=1;
    118                         }
    119                         // rattaches aux syndic
    120                         /*$liste_syn = AccesRestreint_liste_syndic_exclus($publique);
    121                         $where = calcul_mysql_in('id_syndic', join(",",$liste_syn));
    122                         $s = spip_query("SELECT id_document FROM spip_documents_syndic WHERE $where");
    123                         while ($row = spip_fetch_array($s)){
    124                                 $liste_documents_exclus[$publique][$row['id_document']]=1;
    125                         }*/
    126                         $liste_documents_exclus[$publique] = array_keys($liste_documents_exclus[$publique]);
    127                 }
    128                 return $liste_documents_exclus[$publique];
    129         }
    130 
    131         // fonctions de filtrage syndic
    132         // plus performant a priori : liste des rubriques exclues uniquement
    133         // -> condition NOT IN
    134         function AccesRestreint_liste_syndic_exclus($publique=true, $id_auteur=NULL){
    135                 include_spip('base/abstract_sql');
    136                 static $liste_syndic_exclus=array();
    137                 if (!isset($liste_syndic_exclus[$publique]) || !is_array($liste_syndic_exclus[$publique])){
    138                         $liste_syndic_exclus[$publique] = array();
    139                         $liste_rub = AccesRestreint_liste_rubriques_exclues($publique, $id_auteur);
    140                         $where = calcul_mysql_in('id_rubrique', join(",",$liste_rub));
    141                         $s = spip_query("SELECT id_syndic FROM spip_syndic WHERE $where");
    142                         while ($row = spip_fetch_array($s)){
    143                                 $liste_syndic_exclus[$publique][] = $row['id_syndic'];
    144                         }
    145                 }
    146                 return $liste_syndic_exclus[$publique];
    147         }
    148 
    149         // fonctions de filtrage syndic_articles
    150         // plus performant a priori : liste des rubriques exclues uniquement
    151         // -> condition NOT IN
    152         function AccesRestreint_liste_syndic_articles_exclus($publique=true, $id_auteur=NULL){
    153                 include_spip('base/abstract_sql');
    154                 static $liste_syndic_articles_exclus=array();
    155                 if (!isset($liste_syndic_articles_exclus[$publique]) || !is_array($liste_syndic_articles_exclus[$publique])){
    156                         $liste_syndic_articles_exclus[$publique] = array();
    157                         $liste_syn = AccesRestreint_liste_syndic_exclus($publique, $id_auteur);
    158                         $where = calcul_mysql_in('id_syndic', join(",",$liste_syn));
    159                         $s = spip_query("SELECT id_syndic_article FROM spip_syndic_articles WHERE $where");
    160                         while ($row = spip_fetch_array($s)){
    161                                 $liste_syndic_articles_exclus[$publique][] = $row['id_syndic_article'];
    162                         }
    163                 }
    164                 return $liste_syndic_articles_exclus[$publique];
    165         }
    166 
    167         // fonctions de filtrage evenements
    168         // plus performant a priori : liste des rubriques exclues uniquement
    169         // -> condition NOT IN
    170         function AccesRestreint_liste_evenements_exclus($publique=true, $id_auteur=NULL){
    171                 include_spip('base/abstract_sql');
    172                 static $liste_evenements_exclus=array();
    173                 if (!isset($liste_evenements_exclus[$publique]) || !is_array($liste_evenements_exclus[$publique])){
    174                         $liste_evenements_exclus[$publique] = array();
    175                         // rattaches aux articles
    176                         $liste_art = AccesRestreint_liste_articles_exclus($publique, $id_auteur);
    177                         $where = calcul_mysql_in('id_article', join(",",$liste_art));
    178                        
    179                         $s = spip_query("SELECT id_evenement FROM spip_evenements WHERE $where");
    180                         while ($row = spip_fetch_array($s)){
    181                                 $liste_evenements_exclus[$publique][] = $row['id_evenement'];
    182                         }
    183                 }
    184                 return $liste_evenements_exclus[$publique];
    185         }
     9/**
     10 * Autorisation a administrer les zones
     11 *
     12 * @param unknown_type $faire
     13 * @param unknown_type $quoi
     14 * @param unknown_type $id
     15 * @param unknown_type $qui
     16 * @param unknown_type $opts
     17 * @return unknown
     18 */
     19function autoriser_zone_administrer($faire,$quoi,$id,$qui,$opts){
     20        if ($qui['statut']=='0minirezo' AND !$qui['restreint'])
     21                return true;
     22        return false;
     23}
     24
     25/**
     26 * Autorisation a affecter les zones a un auteur
     27 * si un id_zone passe dans opts, cela concerne plus particulierement le droit d'affecter cette zone
     28 *
     29 * @param unknown_type $faire
     30 * @param unknown_type $qui
     31 * @param unknown_type $id
     32 * @param unknown_type $qui
     33 * @param unknown_type $opts
     34 * @return unknown
     35 */
     36function autoriser_auteur_affecterzones_dist($faire,$quoi,$id,$qui,$opts){
     37        if (!autoriser('modifier','auteur',$id)) return false;
     38        if ($qui['statut']=='0minirezo' AND !$qui['restreint'])
     39                return true;
     40        # les non admin ne peuvent pas s'administrer eux meme pour eviter les erreurs
     41        if ($id == $qui['id_auteur']) return false;
     42        # les non admin ne peuvent affecter que les zones dont ils font partie
     43        if ($opts['id_zone']
     44          AND !AccesRestreint_test_appartenance_zone_auteur($opts['id_zone'], $qui['id_auteur']))
     45          return false;
     46 return true;
     47}
     48
     49
     50if(!function_exists('autoriser_rubrique_voir')) {
     51function autoriser_rubrique_voir($faire, $type, $id, $qui, $opt) {
     52        include_spip('inc/acces_restreint_autorisations');
     53        static $rub_exclues;
     54        if (isset($opt['publique']))
     55                $publique = $opt['publique'];
     56        else
     57                $publique = !test_espace_prive();
     58        if (!isset($rub_exclues[$publique]) || !is_array($rub_exclues[$publique])) {
     59                // Si autoriser est appelee pour un autre auteur que l'auteur connecte  ou si pas d'auteur connecte , on passe $id_auteur en parametre
     60                if(isset($GLOBALS['auteur_session']['id_auteur']) && isset($qui['id_auteur']) && $qui['id_auteur']!=$GLOBALS['auteur_session']['id_auteur'])
     61                        $rub_exclues[$publique] = AccesRestreint_liste_rubriques_exclues($publique,$qui['id_auteur']);
     62                elseif (!isset($GLOBALS['auteur_session']['id_auteur']) && isset($qui['id_auteur']))
     63                        $rub_exclues[$publique] = AccesRestreint_liste_rubriques_exclues($publique,$qui['id_auteur']);
     64                else
     65                        $rub_exclues[$publique] = AccesRestreint_liste_rubriques_exclues($publique);
     66                $rub_exclues[$publique] = array_flip($rub_exclues[$publique]);
     67        }
     68        return !isset($rub_exclues[$publique][$id]);
     69}
     70}
     71if(!function_exists('autoriser_article_voir')) {
     72function autoriser_article_voir($faire, $type, $id, $qui, $opt) {
     73        include_spip('inc/acces_restreint_autorisations');
     74        static $art_exclus;
     75        if (isset($opt['publique']))
     76                $publique = $opt['publique'];
     77        else
     78                $publique = !test_espace_prive();
     79        if (!isset($art_exclus[$publique]) || !is_array($art_exclus[$publique])) {
     80                // Si autoriser est appelee pour un autre auteur que l'auteur connecte  ou si pas d'auteur connecte , on passe $id_auteur en parametre
     81                if(isset($GLOBALS['auteur_session']['id_auteur']) && isset($qui['id_auteur']) && $qui['id_auteur']!=$GLOBALS['auteur_session']['id_auteur'])
     82                        $art_exclus[$publique] = AccesRestreint_liste_articles_exclus($publique,$qui['id_auteur']);
     83                elseif (!isset($GLOBALS['auteur_session']['id_auteur']) && isset($qui['id_auteur']))
     84                        $art_exclus[$publique] = AccesRestreint_liste_articles_exclus($publique,$qui['id_auteur']);
     85                else
     86                        $art_exclus[$publique] = AccesRestreint_liste_articles_exclus($publique);
     87                $art_exclus[$publique] = array_flip($art_exclus[$publique]);
     88        }
     89        return !isset($art_exclus[$publique][$id]);
     90}
     91}
     92if(!function_exists('autoriser_breve_voir')) {
     93function autoriser_breve_voir($faire, $type, $id, $qui, $opt) {
     94        include_spip('inc/acces_restreint_autorisations');
     95        static $breves_exclues;
     96        if (isset($opt['publique']))
     97                $publique = $opt['publique'];
     98        else
     99                $publique = !test_espace_prive();
     100        if (!isset($breves_exclues[$publique]) || !is_array($breves_exclues[$publique])) {
     101                // Si autoriser est appelee pour un autre auteur que l'auteur connecte  ou si pas d'auteur connecte , on passe $id_auteur en parametre
     102                if(isset($GLOBALS['auteur_session']['id_auteur']) && isset($qui['id_auteur']) && $qui['id_auteur']!=$GLOBALS['auteur_session']['id_auteur'])
     103                        $breves_exclues[$publique] = AccesRestreint_liste_breves_exclues($publique,$qui['id_auteur']);
     104                elseif (!isset($GLOBALS['auteur_session']['id_auteur']) && isset($qui['id_auteur']))
     105                        $breves_exclues[$publique] = AccesRestreint_liste_breves_exclues($publique,$qui['id_auteur']);
     106                else
     107                        $breves_exclues[$publique] = AccesRestreint_liste_breves_exclues($publique);
     108                $breves_exclues[$publique] = array_flip($breves_exclues[$publique]);
     109        }
     110        return !isset($breves_exclues[$publique][$id]);
     111}
     112}
     113if(!function_exists('autoriser_site_voir')) {
     114function autoriser_site_voir($faire, $type, $id, $qui, $opt) {
     115        include_spip('inc/acces_restreint_autorisations');
     116        static $sites_exclus;
     117        if (isset($opt['publique']))
     118                $publique = $opt['publique'];
     119        else
     120                $publique = !test_espace_prive();
     121        if (!isset($sites_exclus[$publique]) || !is_array($sites_exclus[$publique])) {
     122                // Si autoriser est appelee pour un autre auteur que l'auteur connecte  ou si pas d'auteur connecte , on passe $id_auteur en parametre
     123                if(isset($GLOBALS['auteur_session']['id_auteur']) && isset($qui['id_auteur']) && $qui['id_auteur']!=$GLOBALS['auteur_session']['id_auteur'])
     124                        $sites_exclus[$publique] = AccesRestreint_liste_syndic_exclus($publique,$qui['id_auteur']);
     125                elseif (!isset($GLOBALS['auteur_session']['id_auteur']) && isset($qui['id_auteur']))
     126                        $sites_exclus[$publique] = AccesRestreint_liste_syndic_exclus($publique,$qui['id_auteur']);
     127                else
     128                        $sites_exclus[$publique] = AccesRestreint_liste_syndic_exclus($publique);
     129                $sites_exclus[$publique] = array_flip($sites_exclus[$publique]);
     130        }
     131        return !isset($sites_exclus[$publique][$id]);
     132}
     133}
     134if(!function_exists('autoriser_evenement_voir')) {
     135function autoriser_evenement_voir($faire, $type, $id, $qui, $opt) {
     136        include_spip('inc/acces_restreint_autorisations');
     137        static $evenements_exclus;
     138        if (isset($opt['publique']))
     139                $publique = $opt['publique'];
     140        else
     141                $publique = !test_espace_prive();
     142        if (!isset($evenements_exclus[$publique]) || !is_array($evenements_exclus[$publique])) {
     143                // Si autoriser est appelee pour un autre auteur que l'auteur connecte  ou si pas d'auteur connecte , on passe $id_auteur en parametre
     144                if(isset($GLOBALS['auteur_session']['id_auteur']) && isset($qui['id_auteur']) && $qui['id_auteur']!=$GLOBALS['auteur_session']['id_auteur'])
     145                        $evenements_exclus[$publique] = AccesRestreint_liste_evenements_exclus($publique,$qui['id_auteur']);
     146                elseif (!isset($GLOBALS['auteur_session']['id_auteur']) && isset($qui['id_auteur']))
     147                        $evenements_exclus[$publique] = AccesRestreint_liste_evenements_exclus($publique,$qui['id_auteur']);
     148                else
     149                        $evenements_exclus[$publique] = AccesRestreint_liste_evenements_exclus($publique);
     150                $evenements_exclus[$publique] = array_flip($evenements_exclus[$publique]);
     151        }
     152        return !isset($evenements_exclus[$publique][$id]);
     153}
     154}
     155if(!function_exists('autoriser_document_voir')) {
     156function autoriser_document_voir($faire, $type, $id, $qui, $opt) {
     157        include_spip('inc/acces_restreint_autorisations');
     158        static $documents_exclus;
     159        if (isset($opt['publique']))
     160                $publique = $opt['publique'];
     161        else
     162                $publique = !test_espace_prive();
     163        if (!isset($documents_exclus[$publique]) || !is_array($documents_exclus[$publique])) {
     164                $documents_exclus[$publique] = AccesRestreint_liste_documents_exclus($publique,$qui['id_auteur']);
     165                $documents_exclus[$publique] = array_flip($documents_exclus[$publique]);
     166        }
     167        return !isset($documents_exclus[$publique][$id]);
     168}
     169}
     170
     171// fonctions de filtrage article
     172// plus performant a priori : liste des rubriques exclues uniquement
     173// -> condition NOT IN
     174function AccesRestreint_liste_articles_exclus($publique=true, $id_auteur=NULL){
     175        include_spip('base/abstract_sql');
     176        static $liste_art_exclus=array();
     177        if (!isset($liste_art_exclus[$publique]) || !is_array($liste_art_exclus[$publique])){
     178                $liste_art_exclus[$publique] = array();
     179                $liste_rub = AccesRestreint_liste_rubriques_exclues($publique, $id_auteur);
     180                $where = calcul_mysql_in('id_rubrique', join(",",$liste_rub));
     181                $s = spip_query("SELECT id_article FROM spip_articles WHERE $where");
     182                while ($row = spip_fetch_array($s)){
     183                        $liste_art_exclus[$publique][] = $row['id_article'];
     184                }
     185        }
     186        return $liste_art_exclus[$publique];
     187}
     188
     189// fonctions de filtrage breves
     190// plus performant a priori : liste des rubriques exclues uniquement
     191// -> condition NOT IN
     192function AccesRestreint_liste_breves_exclues($publique=true, $id_auteur=NULL){
     193        include_spip('base/abstract_sql');
     194        static $liste_breves_exclues=array();
     195        if (!isset($liste_breves_exclues[$publique]) || !is_array($liste_breves_exclues[$publique])){
     196                $liste_breves_exclues[$publique] = array();
     197                $liste_rub = AccesRestreint_liste_rubriques_exclues($publique, $id_auteur);
     198                $where = calcul_mysql_in('id_rubrique', join(",",$liste_rub));
     199                $s = spip_query("SELECT id_breve FROM spip_breves WHERE $where");
     200                while ($row = spip_fetch_array($s)){
     201                        $liste_breves_exclues[$publique][] = $row['id_breve'];
     202                }
     203        }
     204        return $liste_breves_exclues[$publique];
     205}
     206
     207// fonctions de filtrage forums
     208// plus performant a priori : liste des rubriques exclues uniquement
     209// -> condition NOT IN
     210function AccesRestreint_liste_forum_exclus($publique=true, $id_auteur=NULL){
     211        include_spip('base/abstract_sql');
     212        static $liste_forum_exclus=array();
     213        if (!isset($liste_forum_exclus[$publique]) || !is_array($liste_forum_exclus[$publique])){
     214                $liste_forum_exclus[$publique] = array();
     215                // rattaches aux rubriques
     216                $liste_rub = AccesRestreint_liste_rubriques_exclues($publique, $id_auteur);
     217                $where = calcul_mysql_in('id_rubrique', join(",",$liste_rub));
     218                // rattaches aux articles
     219                $liste_art = AccesRestreint_liste_articles_exclus($publique, $id_auteur);
     220                $where .= " OR " . calcul_mysql_in('id_article', join(",",$liste_art));
     221                // rattaches aux breves
     222                $liste_breves = AccesRestreint_liste_breves_exclues($publique, $id_auteur);
     223                $where .= " OR " . calcul_mysql_in('id_breve', join(",",$liste_art));
     224
     225                $s = spip_query("SELECT id_forum FROM spip_forum WHERE $where");
     226                while ($row = spip_fetch_array($s)){
     227                        $liste_forum_exclus[$publique][] = $row['id_forum'];
     228                }
     229        }
     230        return $liste_forum_exclus[$publique];
     231}
     232
     233// fonctions de filtrage signatures
     234// plus performant a priori : liste des rubriques exclues uniquement
     235// -> condition NOT IN
     236function AccesRestreint_liste_signatures_exclues($publique=true, $id_auteur=NULL){
     237        include_spip('base/abstract_sql');
     238        static $liste_signatures_exclues=array();
     239        if (!isset($liste_signatures_exclues[$publique]) || !is_array($liste_signatures_exclues[$publique])){
     240                $liste_signatures_exclues[$publique] = array();
     241                // rattaches aux articles
     242                $liste_art = AccesRestreint_liste_articles_exclus($publique, $id_auteur);
     243                $where = calcul_mysql_in('id_article', join(",",$liste_art));
     244                $s = spip_query("SELECT id_signature FROM spip_signatures WHERE $where");
     245                while ($row = spip_fetch_array($s)){
     246                        $liste_signatures_exclues[$publique][] = $row['id_signature'];
     247                }
     248        }
     249        return $liste_signatures_exclues[$publique];
     250}
     251
     252// fonctions de filtrage documents
     253// plus performant a priori : liste des rubriques exclues uniquement
     254// -> condition NOT IN
     255function AccesRestreint_liste_documents_exclus($publique=true, $id_auteur=NULL){
     256        include_spip('base/abstract_sql');
     257        static $liste_documents_exclus=array();
     258        if (!isset($liste_documents_exclus[$publique]) || !is_array($liste_documents_exclus[$publique])){
     259                $liste_documents_exclus[$publique] = array();
     260                // rattaches aux articles
     261                $liste_art = AccesRestreint_liste_articles_exclus($publique, $id_auteur);
     262                $where = calcul_mysql_in('id_article', join(",",$liste_art));
     263                $s = spip_query("SELECT id_document FROM spip_documents_articles WHERE $where");
     264                while ($row = spip_fetch_array($s)){
     265                        $liste_documents_exclus[$publique][$row['id_document']]=1;
     266                }
     267                // rattaches aux rubriques
     268                $liste_rub = AccesRestreint_liste_rubriques_exclues($publique, $id_auteur);
     269                $where = calcul_mysql_in('id_rubrique', join(",",$liste_rub));
     270                $s = spip_query("SELECT id_document FROM spip_documents_rubriques WHERE $where");
     271                while ($row = spip_fetch_array($s)){
     272                        $liste_documents_exclus[$publique][$row['id_document']]=1;
     273                }
     274                // rattaches aux breves
     275                $liste_breves = AccesRestreint_liste_breves_exclues($publique, $id_auteur);
     276                $where = calcul_mysql_in('id_breve', join(",",$liste_breves));
     277                $s = spip_query("SELECT id_document FROM spip_documents_breves WHERE $where");
     278                while ($row = spip_fetch_array($s)){
     279                        $liste_documents_exclus[$publique][$row['id_document']]=1;
     280                }
     281                // rattaches aux syndic
     282                /*$liste_syn = AccesRestreint_liste_syndic_exclus($publique);
     283                $where = calcul_mysql_in('id_syndic', join(",",$liste_syn));
     284                $s = spip_query("SELECT id_document FROM spip_documents_syndic WHERE $where");
     285                while ($row = spip_fetch_array($s)){
     286                        $liste_documents_exclus[$publique][$row['id_document']]=1;
     287                }*/
     288                $liste_documents_exclus[$publique] = array_keys($liste_documents_exclus[$publique]);
     289        }
     290        return $liste_documents_exclus[$publique];
     291}
     292
     293// fonctions de filtrage syndic
     294// plus performant a priori : liste des rubriques exclues uniquement
     295// -> condition NOT IN
     296function AccesRestreint_liste_syndic_exclus($publique=true, $id_auteur=NULL){
     297        include_spip('base/abstract_sql');
     298        static $liste_syndic_exclus=array();
     299        if (!isset($liste_syndic_exclus[$publique]) || !is_array($liste_syndic_exclus[$publique])){
     300                $liste_syndic_exclus[$publique] = array();
     301                $liste_rub = AccesRestreint_liste_rubriques_exclues($publique, $id_auteur);
     302                $where = calcul_mysql_in('id_rubrique', join(",",$liste_rub));
     303                $s = spip_query("SELECT id_syndic FROM spip_syndic WHERE $where");
     304                while ($row = spip_fetch_array($s)){
     305                        $liste_syndic_exclus[$publique][] = $row['id_syndic'];
     306                }
     307        }
     308        return $liste_syndic_exclus[$publique];
     309}
     310
     311// fonctions de filtrage syndic_articles
     312// plus performant a priori : liste des rubriques exclues uniquement
     313// -> condition NOT IN
     314function AccesRestreint_liste_syndic_articles_exclus($publique=true, $id_auteur=NULL){
     315        include_spip('base/abstract_sql');
     316        static $liste_syndic_articles_exclus=array();
     317        if (!isset($liste_syndic_articles_exclus[$publique]) || !is_array($liste_syndic_articles_exclus[$publique])){
     318                $liste_syndic_articles_exclus[$publique] = array();
     319                $liste_syn = AccesRestreint_liste_syndic_exclus($publique, $id_auteur);
     320                $where = calcul_mysql_in('id_syndic', join(",",$liste_syn));
     321                $s = spip_query("SELECT id_syndic_article FROM spip_syndic_articles WHERE $where");
     322                while ($row = spip_fetch_array($s)){
     323                        $liste_syndic_articles_exclus[$publique][] = $row['id_syndic_article'];
     324                }
     325        }
     326        return $liste_syndic_articles_exclus[$publique];
     327}
     328
     329// fonctions de filtrage evenements
     330// plus performant a priori : liste des rubriques exclues uniquement
     331// -> condition NOT IN
     332function AccesRestreint_liste_evenements_exclus($publique=true, $id_auteur=NULL){
     333        include_spip('base/abstract_sql');
     334        static $liste_evenements_exclus=array();
     335        if (!isset($liste_evenements_exclus[$publique]) || !is_array($liste_evenements_exclus[$publique])){
     336                $liste_evenements_exclus[$publique] = array();
     337                // rattaches aux articles
     338                $liste_art = AccesRestreint_liste_articles_exclus($publique, $id_auteur);
     339                $where = calcul_mysql_in('id_article', join(",",$liste_art));
     340               
     341                $s = spip_query("SELECT id_evenement FROM spip_evenements WHERE $where");
     342                while ($row = spip_fetch_array($s)){
     343                        $liste_evenements_exclus[$publique][] = $row['id_evenement'];
     344                }
     345        }
     346        return $liste_evenements_exclus[$publique];
     347}
    186348
    187349       
  • _plugins_/_stable_/acces_restreint/lang/accesrestreint_fr.php

    r22642 r22655  
    3030        'info_retirer_zones' => 'Enlever de toutes les zones',
    3131        'info_aucun_acces' => 'Aucun acc&egrave;s autoris&eacute;',
     32        'info_aucune_zone' => 'Aucune zone',
    3233
    3334        // P
  • _plugins_/_stable_/acces_restreint/plugin.xml

    r22632 r22655  
    6262                <inclure>inc/acces_restreint.php</inclure>
    6363        </pipeline>
    64        
     64
    6565        <pipeline>
    6666                <nom>ajouter_boutons</nom>
    67                 <action>ajouterBoutons</action>
    6867                <inclure>acces_restreint_pipelines.php</inclure>
    6968        </pipeline>
     
    7372        </pipeline>
    7473       
     74        <pipeline>
     75                <nom>autoriser</nom>
     76                <inclure>inc/acces_restreint_autoriser.php</inclure>
     77        </pipeline>
    7578        <necessite id="SPIP" version='[2.0.0 dev;]' />
    7679</plugin>
  • _plugins_/_stable_/acces_restreint/prive/style_prive_plugin_accesrestreint.html

    r22642 r22655  
    2222
    2323li.item .actions {display:block;float:#GET{right};}
     24li.item p.actions {float:none;text-align:#GET{right};margin:0;}
     25
     26li.item.zone .quoi {display:block;padding-left:20px;background:url(#EVAL{_DIR_PLUGIN_ACCESRESTREINT}img_pack/restreint-16.png) center left no-repeat;}
Note: See TracChangeset for help on using the changeset viewer.