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

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

Poursuite du passage à SPIP 3 du plugin dictionnaire. On utilise l'api d'objets éditoriaux et on ne met que les squelettes nécessaires dans le plugin. Au passage on PHPDoc toutes les fonctions.

File size: 5.3 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// Qui peut voir la liste des dictionnaires : tout le monde
19
20/**
21 * Autorisation de voir le bouton de dictionnaires
22 *
23 * Tout le monde
24 *
25 * @param  string $faire Action demandée
26 * @param  string $type  Type d'objet sur lequel appliquer l'action
27 * @param  int    $id    Identifiant de l'objet
28 * @param  array  $qui   Description de l'auteur demandant l'autorisation
29 * @param  array  $opt   Options de cette autorisation
30 * @return bool          true s'il a le droit, false sinon
31**/
32function autoriser_dictionnaires_bouton_dist($faire, $type, $id, $qui, $opt){
33        return autoriser('bouton', 'dictionnaires_edition', $id, $qui, $opt);
34}
35
36/**
37 * Autorisation de voir le bouton de dictionnaires du menu d'édition
38 *
39 * Tout le monde
40 *
41 * @param  string $faire Action demandée
42 * @param  string $type  Type d'objet sur lequel appliquer l'action
43 * @param  int    $id    Identifiant de l'objet
44 * @param  array  $qui   Description de l'auteur demandant l'autorisation
45 * @param  array  $opt   Options de cette autorisation
46 * @return bool          true s'il a le droit, false sinon
47**/
48function autoriser_dictionnaires_edition_bouton_dist($faire, $type, $id, $qui, $opt){
49        return true;
50}
51
52
53/**
54 * Autorisation de créer un dictionnaire
55 *
56 * Ceux qui peuvent configurer le site
57 *
58 * @param  string $faire Action demandée
59 * @param  string $type  Type d'objet sur lequel appliquer l'action
60 * @param  int    $id    Identifiant de l'objet
61 * @param  array  $qui   Description de l'auteur demandant l'autorisation
62 * @param  array  $opt   Options de cette autorisation
63 * @return bool          true s'il a le droit, false sinon
64**/
65function autoriser_dictionnaire_creer_dist($faire, $type, $id, $qui, $opt){
66        return autoriser('configurer', $type, $id, $qui, $opt);
67}
68
69/**
70 * Autorisation de modifier un dictionnaire
71 *
72 * Ceux qui peuvent configurer le site
73 *
74 * @param  string $faire Action demandée
75 * @param  string $type  Type d'objet sur lequel appliquer l'action
76 * @param  int    $id    Identifiant de l'objet
77 * @param  array  $qui   Description de l'auteur demandant l'autorisation
78 * @param  array  $opt   Options de cette autorisation
79 * @return bool          true s'il a le droit, false sinon
80**/
81function autoriser_dictionnaire_modifier_dist($faire, $type, $id, $qui, $opt){
82        return autoriser('configurer', $type, $id, $qui, $opt);
83}
84
85/**
86 * Autorisation de dupprimer un dictionnaire
87 *
88 * Ceux qui peuvent configurer le site,
89 * s'il n'y a plus aucune définition dedans !
90 *
91 * @param  string $faire Action demandée
92 * @param  string $type  Type d'objet sur lequel appliquer l'action
93 * @param  int    $id    Identifiant de l'objet
94 * @param  array  $qui   Description de l'auteur demandant l'autorisation
95 * @param  array  $opt   Options de cette autorisation
96 * @return bool          true s'il a le droit, false sinon
97**/
98function autoriser_dictionnaire_supprimer_dist($faire, $type, $id, $qui, $opt){
99        return ($id > 0)
100                and autoriser('configurer', $type, $id, $qui, $opt)
101                and !sql_fetsel(
102                        'id_definition',
103                        'spip_definitions',
104                        array(
105                                'id_dictionnaire = '.$id,
106                                sql_in('statut', array('publie', 'prop'))
107                        )
108                );
109}
110
111
112/**
113 * Autorisation de créer une définition
114 *
115 * Les rédacteurs
116 *
117 * @param  string $faire Action demandée
118 * @param  string $type  Type d'objet sur lequel appliquer l'action
119 * @param  int    $id    Identifiant de l'objet
120 * @param  array  $qui   Description de l'auteur demandant l'autorisation
121 * @param  array  $opt   Options de cette autorisation
122 * @return bool          true s'il a le droit, false sinon
123**/
124function autoriser_dictionnaire_creerdefinitiondans_dist($faire, $type, $id, $qui, $opt){
125        return $qui['statut'] <= '1comite';
126}
127
128/**
129 * Autorisation de modifier une définition
130 *
131 * Un rédacteur si pas publié, un admin sinon
132 *
133 * @param  string $faire Action demandée
134 * @param  string $type  Type d'objet sur lequel appliquer l'action
135 * @param  int    $id    Identifiant de l'objet
136 * @param  array  $qui   Description de l'auteur demandant l'autorisation
137 * @param  array  $opt   Options de cette autorisation
138 * @return bool          true s'il a le droit, false sinon
139**/
140function autoriser_definition_modifier_dist($faire, $type, $id, $qui, $opt){
141        if ($id > 0
142                and $statut = sql_getfetsel('statut', 'spip_definitions', 'id_definition = '.$id)
143                and (
144                        ($statut == 'publie' and $qui['statut'] <= '0minirezo')
145                        or
146                        ($statut != 'publie' and $qui['statut'] <= '1comite')
147                )
148        ){
149                return true;
150        }
151       
152        return false;
153}
154
155
156/**
157 * Autorisation de supprimer une définition
158 *
159 * Pareil que pour modifier une définition
160 *
161 * @param  string $faire Action demandée
162 * @param  string $type  Type d'objet sur lequel appliquer l'action
163 * @param  int    $id    Identifiant de l'objet
164 * @param  array  $qui   Description de l'auteur demandant l'autorisation
165 * @param  array  $opt   Options de cette autorisation
166 * @return bool          true s'il a le droit, false sinon
167**/
168function autoriser_definition_supprimer_dist($faire, $type, $id, $qui, $opt){
169        return autoriser('modifier', $type, $id, $qui, $opt);
170}
171
172?>
Note: See TracBrowser for help on using the repository browser.