source: spip-zone/_plugins_/lim/branches/V1/lim_autorisations.php @ 100491

Last change on this file since 100491 was 100491, checked in by peetdu@…, 4 years ago

déplacer Truck vers branches/V1

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