3a25c8c22f2228f725eff55fa4ea20781e9fd1b1
3 /***************************************************************************\
4 * SPIP, Systeme de publication pour l'internet *
6 * Copyright (c) 2001-2019 *
7 * Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James *
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 \***************************************************************************/
14 * Définit les autorisations du plugin Pétitions
16 * @package SPIP\Petitions\Autorisations
18 if (!defined('_ECRIRE_INC_VERSION')) {
23 * Fonction d'appel pour le pipeline
27 function petitions_autoriser() { }
31 * Autorisation de modérer une pétition
33 * Il faut avoir droit de modifier l'objet qui reçoit la pétition
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
42 function autoriser_modererpetition_dist($faire, $type, $id, $qui, $opt) {
44 autoriser('modifier', $type, $id, $qui, $opt);
48 * Autorisation de publier une signature
50 * Il faut avoir le droit de modérer la petition de l'article en question
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
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));
64 autoriser('modererpetition', 'article', $id_article, $qui, $opt);
68 * Autorisation de supprimer une signature
70 * Il faut avoir le droit de modérer la petition de l'article en question
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
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));
84 autoriser('modererpetition', 'article', $id_article, $qui, $opt);
88 * Autorisation de relancer une signature
90 * Toute personne idenfiée peut relancer une signature non publiée
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
99 function autoriser_signature_relancer($faire, $type, $id, $qui, $opt) {
100 $statut = sql_getfetsel('statut', 'spip_signatures', 'id_signature=' . intval($id));
102 return ($qui['id_auteur'] && !in_array($statut, array('poubelle', 'publie')));
106 * Autorisation de modifier une signature
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
117 function autoriser_signature_modifier_dist($faire, $type, $id, $qui, $opt) {
123 * Autorisation de voir le menu de gestion des signatures
125 * S'il y a au moins une signature
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
134 function autoriser_controlerpetition_menu_dist($faire, $type = '', $id = 0, $qui = null, $opt = null) {
135 return sql_countsel('spip_signatures') > 0;
139 * Autorisation d'auto-association de documents sur des signatures
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
150 function autoriser_signature_autoassocierdocument_dist($faire, $type, $id, $qui, $opt) {