Changeset 55313 in spip-zone for _plugins_/acces_restreint


Ignore:
Timestamp:
Dec 10, 2011, 8:45:44 AM (9 years ago)
Author:
cedric@…
Message:

La compilation des forums etait erronee (faisant encore mention de id_article, id_rubrique, id_breve...).
On reprend en factorisant/mutualisant le code de pre_boucle pour compiler automatiquement toute table pour laquelle on a une fonction definie accesrestreint_{$table}_accessibles_where

Location:
_plugins_/acces_restreint/trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/acces_restreint/trunk/paquet.xml

    r55275 r55313  
    22        prefix="accesrestreint"
    33        categorie="auteur"
    4         version="3.5.3"
     4        version="3.6.0"
    55        etat="test"
    66        compatibilite="[3.0.0-dev;3.0.*]"
  • _plugins_/acces_restreint/trunk/public/accesrestreint.php

    r54015 r55313  
    2626                switch ($boucle->type_requete){
    2727                        case 'hierarchie':
    28                         case 'rubriques':
    2928                        case 'articles':
    3029                        case 'breves':
     
    3332                                $boucle->select = array_merge($boucle->select, array($t)); // pour postgres
    3433                                $boucle->where[] = accesrestreint_rubriques_accessibles_where($t);
    35                                 $securise = true;
    36                                 break;
    37                         case 'forums':
    38                                 $t = $boucle->id_table . '.id_rubrique';
    39                                 $boucle->select = array_merge($boucle->select, array($t)); // pour postgres
    40                                 $where = accesrestreint_rubriques_accessibles_where($t);
    41                
    42                                 $t = $boucle->id_table . '.id_article';
    43                                 $boucle->select = array_merge($boucle->select, array($t)); // pour postgres
    44                                 $where = "array('OR',$where,".accesrestreint_articles_accessibles_where($t).")";
    45                
    46                                 $t = $boucle->id_table . '.id_breve';
    47                                 $boucle->select = array_merge($boucle->select, array($t)); // pour postgres
    48                                 $boucle->where[] = "array('OR',$where,".accesrestreint_breves_accessibles_where($t).")";
    4934                                $securise = true;
    5035                                break;
     
    5641                                $securise = true;
    5742                                break;
    58                         case 'syndic_articles':
    59                                 $t = $boucle->id_table . '.' . $boucle->primary;
    60                                 $boucle->select = array_merge($boucle->select, array($t));
    61                                 $boucle->where[] = accesrestreint_syndic_articles_accessibles_where($t);
    62                                 $securise = true;
    63                                 break;
    64                         case 'documents':
    65                                 $t = $boucle->id_table . '.' . $boucle->primary;
    66                                 $boucle->select = array_merge($boucle->select, array($t));
    67                                 $boucle->where[] = accesrestreint_documents_accessibles_where($t);
    68                                 $securise = true;
     43                        default :
     44                                if (function_exists($accessible_where = "accesrestreint_".$boucle->type_requete."_accessibles_where")){
     45                                        $t = $boucle->id_table . '.' . $boucle->primary;
     46                                        $boucle->select = array_merge($boucle->select, array($t));
     47                                        $boucle->where[] = $accessible_where($t);
     48                                        $securise = true;
     49                                }
    6950                                break;
    7051                }
Note: See TracChangeset for help on using the changeset viewer.