source: spip-zone/_plugins_/acces_restreint/trunk/accesrestreint_pipelines.php @ 53627

Last change on this file since 53627 was 53627, checked in by cedric@…, 10 years ago

Reparer la boite de liste des zones en colonne navigation des rubriques
corriger l'erreur sur la boite d'affectation de zone qui doit etre inseree sur les auteurs et non les rubriques
une icone cadenasouvert
declarer les urls exec des zones et pas d'url publique pour les zones

File size: 2.6 KB
Line 
1<?php
2/**
3 * Plugin Acces Restreint 3.0 pour Spip 2.0
4 * Licence GPL (c) 2006-2008 Cedric Morin
5 *
6 */
7
8if (!defined("_ECRIRE_INC_VERSION")) return;
9
10
11/**
12 * Ajouter la boite des zones sur la fiche auteur
13 *
14 * @param string $flux
15 * @return string
16 */
17function accesrestreint_affiche_milieu($flux){
18        if ($e = trouver_objet_exec($flux['args']['exec'])
19          AND $e['type'] == 'auteur'
20          AND $e['edition'] == false) {
21               
22                $id_auteur = $flux['args']['id_auteur'];
23
24                $ins = recuperer_fond('prive/editer/affecter_zones',array('id_auteur'=>$id_auteur));
25                if (($p = strpos($flux['data'],"<!--affiche_milieu-->")) !== false)
26                        $flux['data'] = substr_replace($flux['data'],$ins,$p,0);
27                else
28                        $flux['data'] .= $ins;
29               
30        }
31        return $flux;
32}
33
34/**
35 * Ajouter la boite des zones sur la fiche de rubrique
36 *
37 * @param string $flux
38 * @return string
39 */
40function accesrestreint_affiche_gauche($flux) {
41        if ($e = trouver_objet_exec($flux['args']['exec'])
42          AND $e['type'] == 'rubrique'
43          AND $e['edition'] == false
44          AND $id_rubrique = $flux['args']['id_rubrique']){
45                if (autoriser('administrer', 'zone', 0)) {
46                        $flux['data'] .= recuperer_fond('prive/inclure/acces_rubrique', array('id_rubrique'=>$id_rubrique));
47                }
48        }
49        return $flux;
50}
51
52/**
53 * Detecter les demande d'acces aux pages restreintes
54 * et re-orienter vers une 401 si necessaire
55 *
56 * @param array $contexte
57 * @return array
58 */
59function accesrestreint_page_indisponible($contexte){
60        if ($contexte['status']=='404' AND isset($contexte['type'])){
61                $objet = $contexte['type'];
62                $table_sql = table_objet_sql($objet);
63                $id_table_objet = id_table_objet($objet);
64                if ($id = intval($contexte[$id_table_objet])){
65
66                        $publie = true;
67                        $restreint = false;
68
69                        $trouver_table = charger_fonction('trouver_table','base');
70                        $desc = $trouver_table($table_sql);
71                        if (isset($desc['field']['statut'])){
72                                $statut = sql_getfetsel('statut', $table_sql, "$id_table_objet=".intval($id));
73                                if ($statut!='publie')
74                                        $publie = false;
75                        }
76                       
77                        include_spip('inc/autoriser');
78                        if ($publie AND !autoriser('voir',$objet,$id)){
79                                // c'est un contenu restreint
80                                $contexte['status'] = '401';
81                                $contexte['code'] = '401 Unauthorized';
82                                $contexte['fond'] = '401';
83                                $contexte['erreur'] = _T('accesrestreint:info_acces_restreint');
84                                $contexte['cible'] = self();
85                        }
86                }
87        }
88        return $contexte;
89}
90
91/**
92 * Permettre l'ajout de champs extras via le plugin Champs Extras 2
93 *
94 * @param array $objets
95 * @return array
96 */
97function accesrestreint_objets_extensibles($objets){
98                return array_merge($objets, array('zone' => _T('accesrestreint:titre_zones_acces')));
99}
100
101?>
Note: See TracBrowser for help on using the repository browser.