source: spip-zone/_plugins_/dictionnaires/trunk/dictionnaires_autoriser.php @ 65553

Last change on this file since 65553 was 65553, checked in by marcimat@…, 7 years ago

C'est 'menu' les autorisations des icones du bandeau maintenant

File size: 5.9 KB
Line 
1<?php
2
3/**
4 * Définit les autorisations du plugin dictionnaires
5 *
6 * @package SPIP\Dictionnaires\Autorisations
7**/
8
9// Sécurité
10if (!defined('_ECRIRE_INC_VERSION')) return;
11
12/**
13 * Fonction d'appel pour le pipeline
14 * @pipeline autoriser
15 */
16function dictionnaires_autoriser(){}
17
18/**
19 * Autorisation de voir le bouton de dictionnaires du menu d'édition
20 *
21 * Tout le monde
22 *
23 * @param  string $faire Action demandée
24 * @param  string $type  Type d'objet sur lequel appliquer l'action
25 * @param  int    $id    Identifiant de l'objet
26 * @param  array  $qui   Description de l'auteur demandant l'autorisation
27 * @param  array  $opt   Options de cette autorisation
28 * @return bool          true s'il a le droit, false sinon
29**/
30function autoriser_dictionnaires_menu_dist($faire, $type, $id, $qui, $opt){
31        return true;
32}
33
34/**
35 * Autorisation de voir le bouton d'ajout rapide de définition
36 *
37 * Tous les rédacteurs, lorsqu'il y a un dictionnaire
38 *
39 * @param  string $faire Action demandée
40 * @param  string $type  Type d'objet sur lequel appliquer l'action
41 * @param  int    $id    Identifiant de l'objet
42 * @param  array  $qui   Description de l'auteur demandant l'autorisation
43 * @param  array  $opt   Options de cette autorisation
44 * @return bool          true s'il a le droit, false sinon
45**/
46function autoriser_definition_creer_menu_dist($faire, $type, $id, $qui, $opt) {
47        return autoriser('creer', 'definition', $id, $qui, $opt);
48}
49
50/**
51 * Autorisation de créer un dictionnaire
52 *
53 * Ceux qui peuvent configurer le site
54 *
55 * @param  string $faire Action demandée
56 * @param  string $type  Type d'objet sur lequel appliquer l'action
57 * @param  int    $id    Identifiant de l'objet
58 * @param  array  $qui   Description de l'auteur demandant l'autorisation
59 * @param  array  $opt   Options de cette autorisation
60 * @return bool          true s'il a le droit, false sinon
61**/
62function autoriser_dictionnaire_creer_dist($faire, $type, $id, $qui, $opt){
63        return autoriser('configurer', $type, $id, $qui, $opt);
64}
65
66
67/**
68 * Autorisation de modifier un dictionnaire
69 *
70 * Ceux qui peuvent configurer le site
71 *
72 * @param  string $faire Action demandée
73 * @param  string $type  Type d'objet sur lequel appliquer l'action
74 * @param  int    $id    Identifiant de l'objet
75 * @param  array  $qui   Description de l'auteur demandant l'autorisation
76 * @param  array  $opt   Options de cette autorisation
77 * @return bool          true s'il a le droit, false sinon
78**/
79function autoriser_dictionnaire_modifier_dist($faire, $type, $id, $qui, $opt){
80        return autoriser('configurer', $type, $id, $qui, $opt);
81}
82
83/**
84 * Autorisation de dupprimer un dictionnaire
85 *
86 * Ceux qui peuvent configurer le site,
87 * s'il n'y a plus aucune définition dedans !
88 *
89 * @param  string $faire Action demandée
90 * @param  string $type  Type d'objet sur lequel appliquer l'action
91 * @param  int    $id    Identifiant de l'objet
92 * @param  array  $qui   Description de l'auteur demandant l'autorisation
93 * @param  array  $opt   Options de cette autorisation
94 * @return bool          true s'il a le droit, false sinon
95**/
96function autoriser_dictionnaire_supprimer_dist($faire, $type, $id, $qui, $opt){
97        return ($id > 0)
98                and autoriser('configurer', $type, $id, $qui, $opt)
99                and !sql_fetsel(
100                        'id_definition',
101                        'spip_definitions',
102                        array(
103                                'id_dictionnaire = '.$id,
104                                sql_in('statut', array('publie', 'prop'))
105                        )
106                );
107}
108
109
110/**
111 * Autorisation de créer une définition dans un dictionnaire
112 *
113 * Les rédacteurs
114 *
115 * @param  string $faire Action demandée
116 * @param  string $type  Type d'objet sur lequel appliquer l'action
117 * @param  int    $id    Identifiant de l'objet
118 * @param  array  $qui   Description de l'auteur demandant l'autorisation
119 * @param  array  $opt   Options de cette autorisation
120 * @return bool          true s'il a le droit, false sinon
121**/
122function autoriser_dictionnaire_creerdefinitiondans_dist($faire, $type, $id, $qui, $opt){
123        return $qui['statut'] <= '1comite';
124}
125
126/**
127 * Autorisation de créer une définition
128 *
129 * Les rédacteurs, et au moins un dictionnaire
130 *
131 * @param  string $faire Action demandée
132 * @param  string $type  Type d'objet sur lequel appliquer l'action
133 * @param  int    $id    Identifiant de l'objet
134 * @param  array  $qui   Description de l'auteur demandant l'autorisation
135 * @param  array  $opt   Options de cette autorisation
136 * @return bool          true s'il a le droit, false sinon
137**/
138function autoriser_definition_creer_dist($faire, $type, $id, $qui, $opt){
139        return $qui['statut'] <= '1comite' and sql_countsel('spip_dictionnaires');
140}
141
142
143/**
144 * Autorisation de modifier une définition
145 *
146 * Un rédacteur si pas publié, un admin sinon
147 *
148 * @param  string $faire Action demandée
149 * @param  string $type  Type d'objet sur lequel appliquer l'action
150 * @param  int    $id    Identifiant de l'objet
151 * @param  array  $qui   Description de l'auteur demandant l'autorisation
152 * @param  array  $opt   Options de cette autorisation
153 * @return bool          true s'il a le droit, false sinon
154**/
155function autoriser_definition_modifier_dist($faire, $type, $id, $qui, $opt){
156        if ($id > 0
157                and $statut = sql_getfetsel('statut', 'spip_definitions', 'id_definition = '.$id)
158                and (
159                        ($statut == 'publie' and $qui['statut'] <= '0minirezo')
160                        or
161                        ($statut != 'publie' and $qui['statut'] <= '1comite')
162                )
163        ){
164                return true;
165        }
166       
167        return false;
168}
169
170
171/**
172 * Autorisation de supprimer une définition
173 *
174 * Pareil que pour modifier une définition
175 *
176 * @param  string $faire Action demandée
177 * @param  string $type  Type d'objet sur lequel appliquer l'action
178 * @param  int    $id    Identifiant de l'objet
179 * @param  array  $qui   Description de l'auteur demandant l'autorisation
180 * @param  array  $opt   Options de cette autorisation
181 * @return bool          true s'il a le droit, false sinon
182**/
183function autoriser_definition_supprimer_dist($faire, $type, $id, $qui, $opt){
184        return autoriser('modifier', $type, $id, $qui, $opt);
185}
186
187?>
Note: See TracBrowser for help on using the repository browser.