Changeset 81449 in spip-zone


Ignore:
Timestamp:
Mar 18, 2014, 10:10:36 AM (5 years ago)
Author:
rastapopoulos@…
Message:

Indentations, espacements, accolades pour mieux lire.
Et transformation de "opt" en "options" pour mieux lire aussi.

File:
1 edited

Legend:

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

    r73120 r81449  
    1818 * @param unknown_type $id
    1919 * @param unknown_type $qui
    20  * @param unknown_type $opts
     20 * @param unknown_type $options
    2121 * @return unknown
    2222 */
    23 function autoriser_zone_administrer($faire,$quoi,$id,$qui,$opts){
    24         if ($qui['statut']=='0minirezo' AND !$qui['restreint'])
     23function autoriser_zone_administrer($faire, $quoi, $id, $qui, $options){
     24        // Les admins complets uniquement
     25        if ($qui['statut']=='0minirezo' AND !$qui['restreint']) {
    2526                return true;
     27        }
     28       
    2629        return false;
    2730}
     
    2932/**
    3033 * Autorisation a affecter les zones a un auteur
    31  * si un id_zone passe dans opts, cela concerne plus particulierement le droit d'affecter cette zone
     34 * si un id_zone passe dans options, cela concerne plus particulierement le droit d'affecter cette zone
    3235 *
    3336 * @param unknown_type $faire
     
    3538 * @param unknown_type $id
    3639 * @param unknown_type $qui
    37  * @param unknown_type $opts
     40 * @param unknown_type $options
    3841 * @return unknown
    3942 */
    40 function autoriser_auteur_affecterzones_dist($faire,$quoi,$id,$qui,$opts){
    41         if (!autoriser('modifier','auteur',$id)) return false;
    42         if ($qui['statut']=='0minirezo' AND !$qui['restreint'])
     43function autoriser_auteur_affecterzones_dist($faire, $quoi, $id, $qui, $options){
     44        // Si on ne peut pas modifier l'auteur, c'est fichu
     45        if (!autoriser('modifier', 'auteur', $id)) {
     46                return false;
     47        }
     48       
     49        // Les admins complets
     50        if ($qui['statut'] == '0minirezo' AND !$qui['restreint']) {
    4351                return true;
    44         # les non admin ne peuvent pas s'administrer eux meme pour eviter les erreurs
    45         if ($id == $qui['id_auteur']) return false;
    46         # les non admin ne peuvent affecter que les zones dont ils font partie
     52        }
     53       
     54        // Les non-admins complets ne peuvent pas s'administrer eux-meme pour éviter les erreurs
     55        if ($id == $qui['id_auteur']) {
     56                return false;
     57        }
     58       
     59        // Si on parle d'une zone précise,
     60        // les non-admins complets ne peuvent affecter que les zones dont ils font partie
    4761        include_spip('inc/accesrestreint');
    48         if ($opts['id_zone']
    49           AND accesrestreint_test_appartenance_zone_auteur($opts['id_zone'], $qui['id_auteur']))
    50           return true;
    51  return false;
    52 }
    53 
     62        if (
     63                $options['id_zone']
     64                and accesrestreint_test_appartenance_zone_auteur($options['id_zone'], $qui['id_auteur'])
     65        ) {
     66                return true;
     67        }
     68       
     69        return false;
     70}
     71
     72/*
     73 * Surcharge (sans _dist) de la fonction d'autorisation de vue d'une rubrique, si pas déjà définie
     74 */
    5475if(!function_exists('autoriser_rubrique_voir')) {
    55 function autoriser_rubrique_voir($faire, $type, $id, $qui, $opt) {
     76function autoriser_rubrique_voir($faire, $type, $id, $qui, $options) {
    5677        include_spip('inc/accesrestreint');
    5778        static $rub_exclues;
    58         $publique = isset($opt['publique'])?$opt['publique']:!test_espace_prive();
     79       
     80        $publique = isset($options['publique']) ? $options['publique'] : !test_espace_prive();
    5981        $id_auteur = isset($qui['id_auteur']) ? $qui['id_auteur'] : $GLOBALS['visiteur_session']['id_auteur'];
     82       
    6083        if (!isset($rub_exclues[$id_auteur][$publique]) || !is_array($rub_exclues[$id_auteur][$publique])) {
    6184                $rub_exclues[$id_auteur][$publique] = accesrestreint_liste_rubriques_exclues($publique,$id_auteur);
    6285                $rub_exclues[$id_auteur][$publique] = array_flip($rub_exclues[$id_auteur][$publique]);
    6386        }
     87       
    6488        return !isset($rub_exclues[$id_auteur][$publique][$id]);
    6589}
    6690}
     91
     92/*
     93 * Surcharge (sans _dist) de la fonction d'autorisation de vue d'un article, si pas déjà définie
     94 */
    6795if(!function_exists('autoriser_article_voir')) {
    68 function autoriser_article_voir($faire, $type, $id, $qui, $opt) {
    69         if (!$id){
    70                 if ($qui['statut'] == '0minirezo') return true;
    71                 if (isset($opt['statut'])){
    72                         $statut = $opt['statut'];
    73                         if (in_array($statut, array('prop', 'publie')))
     96function autoriser_article_voir($faire, $type, $id, $qui, $options) {
     97        // Si on ne demande pas un article précis
     98        if (!$id) {
     99                // Les admins peuvent par défaut tout voir
     100                if ($qui['statut'] == '0minirezo') {
     101                        return true;
     102                }
     103                // Les autres peuvent voir ce qui est publié ou proposé
     104                if (isset($options['statut'])) {
     105                        $statut = $options['statut'];
     106                        if (in_array($statut, array('prop', 'publie'))) {
    74107                                return true;
     108                        }
    75109                }
    76110                return false;
     
    78112
    79113        include_spip('public/quete');
    80         if (!isset($opt['id_rubrique']) OR !$id_rubrique = $opt['id_rubrique']){
    81                 $article = quete_parent_lang('spip_articles',$id);
     114       
     115        // Si on ne connait pas déjà la rubrique, on la cherche suivant l'article
     116        if (!isset($options['id_rubrique']) or !$id_rubrique = $options['id_rubrique']) {
     117                $article = quete_parent_lang('spip_articles', $id);
    82118                $id_rubrique = $article['id_rubrique'];
    83119        }
    84         if (autoriser_rubrique_voir('voir','rubrique',$id_rubrique,$qui,$opt)){
    85                 if ($qui['statut'] == '0minirezo') return true;
    86                 // un article 'prepa' ou 'poubelle' dont on n'est pas auteur : interdit
    87                 $r = sql_getfetsel("statut", "spip_articles", "id_article=".sql_quote($id));
     120       
     121        // On ne continue que si on peut déjà voir la rubrique parente
     122        if (autoriser_rubrique_voir('voir', 'rubrique', $id_rubrique, $qui, $options)){
     123                // Si c'est bon, les admins peuvent tout voir
     124                if ($qui['statut'] == '0minirezo'){
     125                        return true;
     126                }
     127               
     128                // Pour les autres, on ne peut pas voir un article 'prepa' ou 'poubelle' dont on n'est pas auteur
     129                $r = sql_getfetsel('statut', 'spip_articles', 'id_article='.sql_quote($id));
    88130                include_spip('inc/auth'); // pour auteurs_article si espace public
    89131                return
    90132                        in_array($r, array('prop', 'publie'))
    91                         OR auteurs_article($id, "id_auteur=".$qui['id_auteur']);
    92         }
     133                        or auteurs_article($id, "id_auteur=".$qui['id_auteur']);
     134        }
     135       
    93136        return false;
    94137}
    95138}
     139
     140/*
     141 * Surcharge (sans _dist) de la fonction d'autorisation de vue d'une brève, si pas déjà définie
     142 */
    96143if(!function_exists('autoriser_breve_voir')) {
    97 function autoriser_breve_voir($faire, $type, $id, $qui, $opt) {
     144function autoriser_breve_voir($faire, $type, $id, $qui, $options) {
    98145        include_spip('public/quete');
    99         if (!$id_rubrique = $opt['id_rubrique']){
    100                 $breve = quete_parent_lang('spip_breves',$id);
     146       
     147        if (!$id_rubrique = $options['id_rubrique']){
     148                $breve = quete_parent_lang('spip_breves', $id);
    101149                $id_rubrique = $breve['id_rubrique'];
    102150        }
    103         return autoriser_rubrique_voir('voir','rubrique',$id_rubrique,$qui,$opt);
    104 }
    105 }
     151       
     152        return autoriser_rubrique_voir('voir', 'rubrique', $id_rubrique, $qui, $options);
     153}
     154}
     155
     156/*
     157 * Surcharge (sans _dist) de la fonction d'autorisation de vue d'un site, si pas déjà définie
     158 */
    106159if(!function_exists('autoriser_site_voir')) {
    107 function autoriser_site_voir($faire, $type, $id, $qui, $opt) {
     160function autoriser_site_voir($faire, $type, $id, $qui, $options) {
    108161        include_spip('public/quete');
    109         if (!$id_rubrique = $opt['id_rubrique']){
    110                 $site = quete_parent_lang('spip_syndic',$id);
     162       
     163        if (!$id_rubrique = $options['id_rubrique']){
     164                $site = quete_parent_lang('spip_syndic', $id);
    111165                $id_rubrique = $site['id_rubrique'];
    112166        }
    113         return autoriser_rubrique_voir('voir','rubrique',$id_rubrique,$qui,$opt);
    114 }
    115 }
     167       
     168        return autoriser_rubrique_voir('voir', 'rubrique', $id_rubrique, $qui, $options);
     169}
     170}
     171
     172/*
     173 * Surcharge (sans _dist) de la fonction d'autorisation de vue d'un événement, si pas déjà définie
     174 */
    116175if(!function_exists('autoriser_evenement_voir')) {
    117 function autoriser_evenement_voir($faire, $type, $id, $qui, $opt) {
     176function autoriser_evenement_voir($faire, $type, $id, $qui, $options) {
    118177        static $evenements_statut;
    119         $publique = isset($opt['publique'])?$opt['publique']:!test_espace_prive();
     178       
     179        $publique = isset($options['publique']) ? $options['publique'] : !test_espace_prive();
    120180        $id_auteur = isset($qui['id_auteur']) ? $qui['id_auteur'] : $GLOBALS['visiteur_session']['id_auteur'];
     181       
    121182        if (!isset($evenements_statut[$id_auteur][$publique][$id])){
    122                 $id_article = sql_getfetsel('id_article','spip_evenements','id_evenement='.intval($id));
    123                 $evenements_statut[$id_auteur][$publique][$id] = autoriser_article_voir('voir', 'article', $id_article, $qui, $opt);
    124         }
     183                $id_article = sql_getfetsel('id_article', 'spip_evenements', 'id_evenement='.intval($id));
     184                $evenements_statut[$id_auteur][$publique][$id] = autoriser_article_voir('voir', 'article', $id_article, $qui, $options);
     185        }
     186       
    125187        return $evenements_statut[$id_auteur][$publique][$id];
    126188}
    127189}
    128190
     191/*
     192 * Surcharge (sans _dist) de la fonction d'autorisation de vue d'un document, si pas déjà définie
     193 */
    129194if(!function_exists('autoriser_document_voir')) {
    130 function autoriser_document_voir($faire, $type, $id, $qui, $opt) {
     195function autoriser_document_voir($faire, $type, $id, $qui, $options) {
    131196        include_spip('public/accesrestreint');
    132197        static $documents_statut = array();
    133198        static $where = array();
    134         $publique = isset($opt['publique'])?$opt['publique']:!test_espace_prive();
     199       
     200        $publique = isset($options['publique']) ? $options['publique'] : !test_espace_prive();
    135201        $id_auteur = isset($qui['id_auteur']) ? $qui['id_auteur'] : $GLOBALS['visiteur_session']['id_auteur'];
     202       
    136203        if (!isset($documents_statut[$id_auteur][$publique][$id])){
    137 
    138204                // il faut hacker la meta "creer_htaccess" le temps du calcul de l'autorisation car le core
    139205                $clean_meta = false;
    140                 if (isset($GLOBALS['meta']["accesrestreint_proteger_documents"]) AND $GLOBALS['meta']["accesrestreint_proteger_documents"]=='oui'){
    141                         if (!isset($GLOBALS['meta']["creer_htaccess"]) OR $GLOBALS['meta']["creer_htaccess"] != 'oui'){
     206                if (
     207                        isset($GLOBALS['meta']["accesrestreint_proteger_documents"])
     208                        and $GLOBALS['meta']["accesrestreint_proteger_documents"] == 'oui'
     209                ) {
     210                        if (!isset($GLOBALS['meta']["creer_htaccess"]) or $GLOBALS['meta']["creer_htaccess"] != 'oui') {
    142211                                $GLOBALS['meta']["creer_htaccess"] = 'oui';
    143212                                $clean_meta = true;
     
    145214                }
    146215
    147                 if (!$id)
    148                         $documents_statut[$id_auteur][$publique][$id] = autoriser_document_voir_dist($faire, $type, $id, $qui, $opt);
     216                if (!$id) {
     217                        $documents_statut[$id_auteur][$publique][$id] = autoriser_document_voir_dist($faire, $type, $id, $qui, $options);
     218                }
    149219                else {
    150                         if (!isset($where[$publique])){
     220                        if (!isset($where[$publique])) {
    151221                                $where[$publique] = accesrestreint_documents_accessibles_where('id_document', $publique?"true":"false");
    152222                                // inclure avant le eval, pour que les fonctions soient bien definies
     
    157227                                $where[$publique] = eval("return ".$where[$publique].";");
    158228                        }
     229                       
    159230                        $documents_statut[$id_auteur][$publique][$id] = sql_getfetsel('id_document','spip_documents',array('id_document='.intval($id),$where[$publique]));
    160                         if ($documents_statut[$id_auteur][$publique][$id])
    161                                 $documents_statut[$id_auteur][$publique][$id] = autoriser_document_voir_dist($faire, $type, $id, $qui, $opt);
     231                       
     232                        if ($documents_statut[$id_auteur][$publique][$id]) {
     233                                $documents_statut[$id_auteur][$publique][$id] = autoriser_document_voir_dist($faire, $type, $id, $qui, $options);
     234                        }
    162235                }
    163236
     
    165238                        unset($GLOBALS['meta']["creer_htaccess"]);
    166239                }
    167 
    168         }
     240        }
     241       
    169242        return $documents_statut[$id_auteur][$publique][$id];
    170243}
Note: See TracChangeset for help on using the changeset viewer.