Changeset 86184 in spip-zone


Ignore:
Timestamp:
Nov 20, 2014, 2:08:02 PM (5 years ago)
Author:
kent1@…
Message:

Éviter une comparaison foireuse sur $publique qui du coup bloquait la boucle hiérarchie même quand les zones n'étaient que privées

Éviter de dupliquer les id_rubrique à exclure sur la boucle hiérarchie

Indentation et typo au passage

Merci marcimat

Version 3.10.4 (on est en 2014)

Location:
_plugins_/acces_restreint/trunk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/acces_restreint/trunk/inc/accesrestreint.php

    r83477 r86184  
    7474        $liste_rubriques = array_map('reset', $liste_rubriques);
    7575        $liste_rubriques = array_unique($liste_rubriques);
    76        
     76
    7777        return $liste_rubriques;
    7878}
     
    240240        $final_liste_rub_exclues = $liste_rub_exclues[$id_auteur][$publique];
    241241       
    242         // AR_TYPE_RESTRICTION définit le type de réstriction pour traiter les élements communs à plusieurs zone
     242        // AR_TYPE_RESTRICTION définit le type de restriction pour traiter les élements communs à plusieurs zones
    243243        //
    244244        // - Une restriction exclusive (ou forte) donne l'acces aux rubriques restreintes par
    245         //   plusieurs zones aux seuls membres de *toutes* les zones concernees.
     245        //   plusieurs zones aux seuls membres de *toutes* les zones concernées.
    246246        // - Une restriction faible donne acces à une rubrique, même restreinte par
    247247        //   plusieurs zones, aux membres de chaque zone concernée.
     
    295295
    296296                // Ne pas exclure les elements qui sont autorises
    297     if (isset($GLOBALS['visiteur_session']['id_auteur']))
    298                 $final_liste_rub_exclues = array_diff(
    299                         $final_liste_rub_exclues,
    300                         array_intersect($final_liste_rub_exclues, $liste_rub_inclues[$id_auteur][$publique])
    301                 );
     297        if (isset($GLOBALS['visiteur_session']['id_auteur']))
     298                $final_liste_rub_exclues = array_diff(
     299                        $final_liste_rub_exclues,
     300                        array_intersect($final_liste_rub_exclues, $liste_rub_inclues[$id_auteur][$publique])
     301                );
    302302        }
    303303
     
    366366        // Si c'est pour les rubriques, on redirige pour l'instant directement vers l'ancienne fonction
    367367        if ($objets == 'rubriques') {
    368                 return accesrestreint_liste_rubriques_exclues($publique, $id_auteur, ($publique == 'tout' ? true : false));
     368                return accesrestreint_liste_rubriques_exclues($publique, $id_auteur, ($publique === 'tout' ? true : false));
    369369        }
    370370       
     
    456456                );
    457457        }
    458 
    459458        return $final_liste_objets_exclus;
    460459}
  • _plugins_/acces_restreint/trunk/paquet.xml

    r85883 r86184  
    22        prefix="accesrestreint"
    33        categorie="auteur"
    4         version="3.10.3"
     4        version="3.10.4"
    55        etat="dev"
    66        compatibilite="[3.0.0;3.1.*]"
     
    1515        <auteur lien="http://www.yterium.net" mail="cedric.morin@yterium.com">Cedric Morin</auteur>
    1616
    17         <copyright>2007-2008</copyright>
     17        <copyright>2007-2014</copyright>
    1818
    1919        <licence lien="http://www.gnu.org/licenses/gpl-3.0.html">GPL</licence>
  • _plugins_/acces_restreint/trunk/public/accesrestreint.php

    r81505 r86184  
    3434                switch ($boucle->type_requete) {
    3535                        case 'hierarchie':
     36                                $primary = $boucle->id_table.'.'.$boucle->primary;
     37                                $t = $boucle->id_table . '.id_rubrique';
     38                                $boucle->select = array_merge($boucle->select, array($t, $primary)); // pour postgres
     39                                // Test sur l'objet lui-même
     40                                $boucle->where[] = accesrestreint_objets_accessibles_where($boucle->id_table, $primary);
     41                                $securise = true;
     42                                break;
    3643                        case 'articles':
    3744                        case 'breves':
     
    4148                                $boucle->select = array_merge($boucle->select, array($t, $primary)); // pour postgres
    4249                                // Test sur l'objet lui-même
    43                                 $boucle->where[] = accesrestreint_objets_accessibles_where($boucle->id_table, $primary);
     50                                if($boucle->id_table != 'rubrique')
     51                                        $boucle->where[] = accesrestreint_objets_accessibles_where($boucle->id_table, $primary);
    4452                                // Test sur la hiérarchie
    4553                                $boucle->where[] = accesrestreint_rubriques_accessibles_where($t);
Note: See TracChangeset for help on using the changeset viewer.