source: spip-zone/_plugins_/lim/branches/V2/lim_autorisations.php @ 113694

Last change on this file since 113694 was 113694, checked in by peetdu@…, 20 months ago

Report dernières modifs du trunk

File size: 5.3 KB
Line 
1<?php
2/**
3 * Définit les autorisations du plugin Lim
4 *
5 * @plugin     Lim
6 * @copyright  2015
7 * @author     Pierre Miquel
8 * @licence    GNU/GPL
9 * @package    SPIP\Lim\Autorisations
10 */
11
12if (!defined('_ECRIRE_INC_VERSION')) {
13        return;
14}
15
16/**
17 * Fonction d'appel pour le pipeline
18 * @pipeline autoriser */
19function lim_autoriser() {}
20
21/**************************************************************/
22/************* DESACTIVER DES LOGOS PAR CONTENUS *************/
23
24/* Exceptions historiques */
25function autoriser_auteur_iconifier($faire,$type,$id,$qui,$opt) {
26        if (in_array(table_objet_sql($type),explode(',',lire_config('lim_logos'))))
27                return false;
28        else return (($id == $qui['id_auteur']) OR
29                        (($qui['statut'] == '0minirezo') AND !$qui['restreint']));
30}
31
32function autoriser_mot_iconifier($faire,$type,$id,$qui,$opt) {
33        if (in_array(table_objet_sql($type),explode(',',lire_config('lim_logos'))))
34                return false;
35        return (($qui['statut'] == '0minirezo') AND !$qui['restreint']);
36}
37
38function autoriser_groupemots_iconifier($faire,$type,$id,$qui,$opt) {
39        if (in_array(table_objet_sql($type),explode(',',lire_config('lim_logos'))))
40                return false;
41        else return (($qui['statut'] == '0minirezo') AND !$qui['restreint']);
42}
43
44function autoriser_rubrique_iconifier($faire,$type,$id,$qui,$opt) {
45        if (in_array(table_objet_sql($type),explode(',',lire_config('lim_logos'))))
46                return false;
47        return autoriser('publierdans', 'rubrique', $id, $qui, $opt);
48}
49
50
51// iconifier ou non les objets
52function autoriser_iconifier($faire, $type, $id, $qui, $opt) {
53        // on gère d'abord une exception sur l'objet Sites référencés
54    // on a toujours le droit d'ajouter un logo au site lui même.
55    if (_request('exec') == 'configurer_identite' AND  $type =='site') {
56        return true;
57    }
58        if (in_array(table_objet_sql($type),explode(',',lire_config('lim_logos'))))
59                return false;
60        // par defaut, on a le droit d'iconifier si on a le droit de modifier
61        else return autoriser('modifier', $type, $id, $qui, $opt);
62}
63
64/**********************************************************/
65/************* RESTRICTION DANS LES RUBRIQUES *************/
66/**
67 * gérer création et modification (en fait creerobjetrdans)
68 * @pipeline autoriser
69 */
70
71if (!function_exists('autoriser_rubrique_creerrubriquedans')) {
72        function autoriser_rubrique_creerrubriquedans($faire, $type, $id, $qui, $opt) {
73                $quelles_rubriques = lire_config('lim_rubriques/rubrique');
74                is_null($quelles_rubriques) ? $lim_rub = true : $lim_rub = !in_array($id,$quelles_rubriques);
75                return
76                        $lim_rub
77                        AND autoriser_rubrique_creerrubriquedans_dist($faire, $type, $id, $qui, $opt);
78        }
79}
80
81if (!function_exists('autoriser_rubrique_creerarticledans')) {
82        function autoriser_rubrique_creerarticledans($faire, $type, $id, $qui, $opt) {
83                $quelles_rubriques = lire_config('lim_rubriques/article');
84                is_null($quelles_rubriques) ? $lim_rub = true : $lim_rub = !in_array($id,$quelles_rubriques);
85               
86                return
87                        $lim_rub
88                        AND autoriser_rubrique_creerarticledans_dist($faire, $type, $id, $qui, $opt);
89        }
90}
91
92if (!function_exists('autoriser_joindredocument')) {
93        function autoriser_joindredocument($faire, $type, $id, $qui, $opt) {
94                $quelles_rubriques = lire_config('lim_rubriques/document');
95                is_null($quelles_rubriques) ? $lim_rub = true : $lim_rub = !in_array($id,$quelles_rubriques);
96               
97                return
98                        $lim_rub
99                        AND autoriser_joindredocument_dist($faire, $type, $id, $qui, $opt);
100        }
101}
102
103if (!function_exists('autoriser_rubrique_creerbrevedans')) {
104        function autoriser_rubrique_creerbrevedans($faire, $type, $id, $qui, $opt) {
105                $r = sql_fetsel("id_parent", "spip_rubriques", "id_rubrique=".intval($id));
106                $quelles_rubriques = lire_config('lim_rubriques/breve');
107                is_null($quelles_rubriques) ? $lim_rub = true : $lim_rub = !in_array($id,$quelles_rubriques);
108
109                return
110                        $lim_rub
111                        AND autoriser_rubrique_creerbrevedans_dist($faire, $type, $id, $qui, $opt);
112        }
113}
114
115if (!function_exists('autoriser_rubrique_creersitedans')) {
116        function autoriser_rubrique_creersitedans($faire, $type, $id, $qui, $opt) {
117                $quelles_rubriques = lire_config('lim_rubriques/site');
118                is_null($quelles_rubriques) ? $lim_rub = true : $lim_rub = !in_array($id,$quelles_rubriques);
119
120                // exception : la page exec=sites accessible depuis le menu "Edition -> Sites référencés"
121                if (_request('exec') == 'sites') $lim_rub = true;
122               
123                return
124                        $lim_rub
125                        AND autoriser_rubrique_creersitedans_dist($faire, $type, $id, $qui, $opt);
126        }
127}
128
129// if (!function_exists('autoriser_rubrique_publierdans')) {
130//      function autoriser_rubrique_publierdans($faire, $type, $id, $qui, $opt) {
131
132//              // Dans LIM l'appel à cette autorisation signifie que forcément $opt est renseigné
133//              if (is_array($opt) AND array_key_exists('lim_except_rub',$opt) AND array_key_exists('type',$opt)) {
134//                      $type = $opt['type'];
135//                      $quelles_rubriques = lire_config("lim_rubriques/$type");
136//                      if (!is_null($quelles_rubriques)) {
137//                              $rubrique_except = array(0 => $opt['lim_except_rub']);
138//                              $quelles_rubriques = array_diff($quelles_rubriques, $opt);
139//                              $lim_rub = !in_array($id,$quelles_rubriques);
140//                      }
141//                      // cas possible : un objet peut avoir été sélectionné dans ?exec=configurer_lim_rubriques, mais aucune restriction activée
142//                      else $lim_rub = true;
143//              }
144//              // ici gestion hors CVT
145//              else $lim_rub = true;
146
147//              return
148//                      $lim_rub
149//                      AND autoriser_rubrique_publierdans_dist($faire, $type, $id, $qui, $opt);
150//      }
151// }
Note: See TracBrowser for help on using the repository browser.