4ad902d609add635f52215e1caf9fbd2245e60dd
[lhc/web/www.git] / www / plugins-dist / petitions / petitions_autoriser.php
1 <?php
2
3 /***************************************************************************\
4 * SPIP, Systeme de publication pour l'internet *
5 * *
6 * Copyright (c) 2001-2020 *
7 * Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James *
8 * *
9 * Ce programme est un logiciel libre distribue sous licence GNU/GPL. *
10 * Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne. *
11 \***************************************************************************/
12
13 /**
14 * Définit les autorisations du plugin Pétitions
15 *
16 * @package SPIP\Petitions\Autorisations
17 **/
18 if (!defined('_ECRIRE_INC_VERSION')) {
19 return;
20 }
21
22 /**
23 * Fonction d'appel pour le pipeline
24 *
25 * @pipeline autoriser
26 */
27 function petitions_autoriser() { }
28
29
30 /**
31 * Autorisation de modérer une pétition
32 *
33 * Il faut avoir droit de modifier l'objet qui reçoit la pétition
34 *
35 * @param string $faire Action demandée
36 * @param string $type Type d'objet sur lequel appliquer l'action
37 * @param int $id Identifiant de l'objet
38 * @param array $qui Description de l'auteur demandant l'autorisation
39 * @param array $opt Options de cette autorisation
40 * @return bool true s'il a le droit, false sinon
41 **/
42 function autoriser_modererpetition_dist($faire, $type, $id, $qui, $opt) {
43 return
44 autoriser('modifier', $type, $id, $qui, $opt);
45 }
46
47 /**
48 * Autorisation de publier une signature
49 *
50 * Il faut avoir le droit de modérer la petition de l'article en question
51 *
52 * @param string $faire Action demandée
53 * @param string $type Type d'objet sur lequel appliquer l'action
54 * @param int $id Identifiant de l'objet
55 * @param array $qui Description de l'auteur demandant l'autorisation
56 * @param array $opt Options de cette autorisation
57 * @return bool true s'il a le droit, false sinon
58 */
59 function autoriser_signature_publier($faire, $type, $id, $qui, $opt) {
60 $id_article = sql_getfetsel('P.id_article',
61 'spip_signatures AS S JOIN spip_petitions AS P ON P.id_petition=S.id_petition', 'S.id_signature=' . intval($id));
62
63 return
64 autoriser('modererpetition', 'article', $id_article, $qui, $opt);
65 }
66
67 /**
68 * Autorisation de supprimer une signature
69 *
70 * Il faut avoir le droit de modérer la petition de l'article en question
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 */
79 function autoriser_signature_supprimer($faire, $type, $id, $qui, $opt) {
80 $id_article = sql_getfetsel('P.id_article',
81 'spip_signatures AS S JOIN spip_petitions AS P ON P.id_petition=S.id_petition', 'S.id_signature=' . intval($id));
82
83 return
84 autoriser('modererpetition', 'article', $id_article, $qui, $opt);
85 }
86
87 /**
88 * Autorisation de relancer une signature
89 *
90 * Toute personne idenfiée peut relancer une signature non publiée
91 *
92 * @param string $faire Action demandée
93 * @param string $type Type d'objet sur lequel appliquer l'action
94 * @param int $id Identifiant de l'objet
95 * @param array $qui Description de l'auteur demandant l'autorisation
96 * @param array $opt Options de cette autorisation
97 * @return bool true s'il a le droit, false sinon
98 */
99 function autoriser_signature_relancer($faire, $type, $id, $qui, $opt) {
100 $statut = sql_getfetsel('statut', 'spip_signatures', 'id_signature=' . intval($id));
101
102 return ($qui['id_auteur'] && !in_array($statut, array('poubelle', 'publie')));
103 }
104
105 /**
106 * Autorisation de modifier une signature
107 *
108 * Jamais
109 *
110 * @param string $faire Action demandée
111 * @param string $type Type d'objet sur lequel appliquer l'action
112 * @param int $id Identifiant de l'objet
113 * @param array $qui Description de l'auteur demandant l'autorisation
114 * @param array $opt Options de cette autorisation
115 * @return bool true s'il a le droit, false sinon
116 */
117 function autoriser_signature_modifier_dist($faire, $type, $id, $qui, $opt) {
118 return
119 false;
120 }
121
122 /**
123 * Autorisation de voir le menu de gestion des signatures
124 *
125 * S'il y a au moins une signature
126 *
127 * @param string $faire Action demandée
128 * @param string $type Type d'objet sur lequel appliquer l'action
129 * @param int $id Identifiant de l'objet
130 * @param array $qui Description de l'auteur demandant l'autorisation
131 * @param array $opt Options de cette autorisation
132 * @return bool true s'il a le droit, false sinon
133 */
134 function autoriser_controlerpetition_menu_dist($faire, $type = '', $id = 0, $qui = null, $opt = null) {
135 return sql_countsel('spip_signatures') > 0;
136 }
137
138 /**
139 * Autorisation d'auto-association de documents sur des signatures
140 *
141 * Jamais
142 *
143 * @param string $faire Action demandée
144 * @param string $type Type d'objet sur lequel appliquer l'action
145 * @param int $id Identifiant de l'objet
146 * @param array $qui Description de l'auteur demandant l'autorisation
147 * @param array $opt Options de cette autorisation
148 * @return bool true s'il a le droit, false sinon
149 */
150 function autoriser_signature_autoassocierdocument_dist($faire, $type, $id, $qui, $opt) {
151 return false;
152 }