[SPIP] v3.2.1-->v3.2.3
[lhc/web/www.git] / www / plugins-dist / breves / breves_autoriser.php
1 <?php
2
3 /***************************************************************************\
4 * SPIP, Systeme de publication pour l'internet *
5 * *
6 * Copyright (c) 2001-2019 *
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éclarations d'autorisations
15 *
16 * @package SPIP\Breves\Autorisations
17 **/
18 if (!defined('_ECRIRE_INC_VERSION')) {
19 return;
20 }
21
22 /**
23 * Fonction du pipeline autoriser. N'a rien à faire
24 *
25 * @pipeline autoriser
26 */
27 function breves_autoriser() {
28 }
29
30
31 /**
32 * Autoriser les brèves dans le menu de navigation
33 *
34 * @param string $faire Action demandée
35 * @param string $type Type d'objet sur lequel appliquer l'action
36 * @param int $id Identifiant de l'objet
37 * @param array $qui Description de l'auteur demandant l'autorisation
38 * @param array $opt Options de cette autorisation
39 * @return bool true s'il a le droit, false sinon
40 */
41 function autoriser_breves_menu_dist($faire, $type = '', $id = 0, $qui = null, $opt = null) {
42 return ($GLOBALS['meta']['activer_breves'] != 'non');
43 }
44
45 /**
46 * Autoriser la création de brèves dans le menu de navigation
47 *
48 * @param string $faire Action demandée
49 * @param string $type Type d'objet sur lequel appliquer l'action
50 * @param int $id Identifiant de l'objet
51 * @param array $qui Description de l'auteur demandant l'autorisation
52 * @param array $opt Options de cette autorisation
53 * @return bool true s'il a le droit, false sinon
54 */
55 function autoriser_brevecreer_menu_dist($faire, $type, $id, $qui, $opt) {
56 return ($GLOBALS['meta']['activer_breves'] != 'non')
57 and verifier_table_non_vide();
58 }
59
60 /**
61 * Autorisation de créer une brève
62 *
63 * Il faut que les brèves soient activées qu'une rubrique existe
64 *
65 * @param string $faire Action demandée
66 * @param string $type Type d'objet sur lequel appliquer l'action
67 * @param int $id Identifiant de l'objet
68 * @param array $qui Description de l'auteur demandant l'autorisation
69 * @param array $opt Options de cette autorisation
70 * @return bool true s'il a le droit, false sinon
71 **/
72 function autoriser_breve_creer_dist($faire, $type, $id, $qui, $opt) {
73 return
74 ($GLOBALS['meta']['activer_breves'] != 'non')
75 and (sql_countsel('spip_rubriques') > 0);
76 }
77
78 /**
79 * Autoriser à créer une brève dans la rubrique $id
80 *
81 * @param string $faire Action demandée
82 * @param string $type Type d'objet sur lequel appliquer l'action
83 * @param int $id Identifiant de l'objet
84 * @param array $qui Description de l'auteur demandant l'autorisation
85 * @param array $opt Options de cette autorisation
86 * @return bool true s'il a le droit, false sinon
87 */
88 function autoriser_rubrique_creerbrevedans_dist($faire, $type, $id, $qui, $opt) {
89 $r = sql_fetsel('id_parent', 'spip_rubriques', 'id_rubrique=' . intval($id));
90
91 return
92 $id
93 and ($r['id_parent'] == 0)
94 and ($GLOBALS['meta']['activer_breves'] != 'non')
95 and autoriser('voir', 'rubrique', $id);
96 }
97
98
99 /**
100 * Autoriser à modifier la brève $id
101 *
102 * - admins & redac si la brève n'est pas publiée
103 * - admins de rubrique parente si publiée
104 *
105 * @param string $faire Action demandée
106 * @param string $type Type d'objet sur lequel appliquer l'action
107 * @param int $id Identifiant de l'objet
108 * @param array $qui Description de l'auteur demandant l'autorisation
109 * @param array $opt Options de cette autorisation
110 * @return bool true s'il a le droit, false sinon
111 */
112 function autoriser_breve_modifier_dist($faire, $type, $id, $qui, $opt) {
113 $r = sql_fetsel('id_rubrique,statut', 'spip_breves', 'id_breve=' . intval($id));
114
115 return
116 $r and (
117 ($r['statut'] == 'publie' or (isset($opt['statut']) and $opt['statut'] == 'publie'))
118 ? autoriser('publierdans', 'rubrique', $r['id_rubrique'], $qui, $opt)
119 : in_array($qui['statut'], array('0minirezo', '1comite'))
120 );
121 }