source: spip-zone/_core_/plugins/forum/forum_autoriser.php @ 93640

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

Meilleure compatibilité avec PSR-2 et nos règles d'écriture, en appliquant
différents fix avec php-cs-fixers. Fixers appliqués ici :

'encoding', utf8
'eof_ending',
un saut de ligne en fin de fichier
'elseif', elseif plutôt que else if
'function_call_space',
espaces sur fonctions
'function_declaration', espaces sur fonctions
'function_typehint_space',
espaces sur fonctions
'linefeed', sauts de ligne \n uniquement
'lowercase_constants',
true, false, null en munuscule
'lowercase_keywords', mots clés PHP en lowercase
'method_argument_space',
espaces sur appels de fonctions
'multiple_use', use unique sur fonctions anonymes
'newline_after_open_tag',
ouverture de php… et c'est tout sur cette ligne
'operators_spaces', espaces de part et d'autres des opérateurs binaires
'parenthesis',
pas d'espace juste après parenthèse ouvrante, ou avant parenthèse fermante
'php_closing_tag', pas de fermeture de php
'short_tag',
tag PHP corrects
'trailing_spaces', pas d'espace qui traîne en fin de ligne
'visibility',
déclarer 'public / private / protected' sur les méthodes

File size: 8.5 KB
Line 
1<?php
2
3/***************************************************************************\
4 *  SPIP, Systeme de publication pour l'internet                           *
5 *                                                                         *
6 *  Copyright (c) 2001-2014                                                *
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 forum
15 *
16 * @package SPIP\Forum\Autorisations
17 **/
18if (!defined("_ECRIRE_INC_VERSION")) {
19        return;
20}
21
22/**
23 * Fonction d'appel pour le pipeline
24 *
25 * @pipeline autoriser
26 */
27function forum_autoriser() { }
28
29/**
30 * Autorisation de voir l'élément «forums internes» dans le menu
31 *
32 * @param  string $faire Action demandée
33 * @param  string $type Type d'objet sur lequel appliquer l'action
34 * @param  int $id Identifiant de l'objet
35 * @param  array $qui Description de l'auteur demandant l'autorisation
36 * @param  array $opt Options de cette autorisation
37 * @return bool          true s'il a le droit, false sinon
38 **/
39function autoriser_foruminternesuivi_menu_dist($faire, $type = '', $id = 0, $qui = null, $opt = null) {
40        if ((($GLOBALS['meta']['forum_prive'] == 'non') && ($GLOBALS['meta']['forum_prive_admin'] == 'non'))
41                or (($GLOBALS['meta']['forum_prive'] == 'non') && ($qui['statut'] == '1comite'))
42        ) {
43                return false;
44        }
45
46        return true;
47}
48
49/**
50 * Autorisation de voir l'élément «suivi des forums» dans le menu
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 **/
59function autoriser_forumreactions_menu_dist($faire, $type = '', $id = 0, $qui = null, $opt = null) {
60        return (sql_countsel('spip_forum') && autoriser('publierdans', 'rubrique', _request('id_rubrique')));
61}
62
63
64/**
65 * Autorisation de modérer un message de forum
66 *
67 * Il faut l'autorisation de modifier l'objet correspondant
68 * (si le forum est attaché à un objet), sinon avoir droits par défaut
69 * (être administrateur).
70 *
71 * @see autoriser_forum_moderer_dist()
72 *
73 * @param  string $faire Action demandée
74 * @param  string $type Type d'objet sur lequel appliquer l'action
75 * @param  int $id Identifiant de l'objet
76 * @param  array $qui Description de l'auteur demandant l'autorisation
77 * @param  array $opt Options de cette autorisation
78 * @return bool          true s'il a le droit, false sinon
79 **/
80function autoriser_modererforum_dist($faire, $type, $id, $qui, $opt) {
81        return $type ? autoriser('modifier', $type, $id, $qui, $opt) : autoriser('moderer', 'forum', 0, $qui, $opt);
82}
83
84/**
85 * Autorisation de changer le statut d'un message de forum
86 *
87 * Seulement sur les objets qu'on a le droit de modérer.
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_forum_instituer_dist($faire, $type, $id, $qui, $opt) {
97        if (!intval($id)) {
98                return autoriser('moderer', 'forum');
99        }
100        $row = sql_fetsel('objet,id_objet', 'spip_forum', 'id_forum=' . intval($id));
101
102        return $row ? autoriser('modererforum', $row['objet'], $row['id_objet'], $qui, $opt) : false;
103}
104
105/**
106 * Autorisation par défaut de modérer un message de forum
107 *
108 * Si l'on connait l'objet, on délègue à modererforum, sinon il faut
109 * être administrateur
110 *
111 * @see autoriser_modererforum_dist()
112 *
113 * @param  string $faire Action demandée
114 * @param  string $type Type d'objet sur lequel appliquer l'action
115 * @param  int $id Identifiant de l'objet
116 * @param  array $qui Description de l'auteur demandant l'autorisation
117 * @param  array $opt Options de cette autorisation
118 * @return bool          true s'il a le droit, false sinon
119 */
120function autoriser_forum_moderer_dist($faire, $type, $id, $qui, $opt) {
121        // si on fournit un id : deleguer a modererforum sur l'objet concerne
122        if ($id) {
123                include_spip('inc/forum');
124                if ($racine = racine_forum($id)
125                        and list($objet, $id_objet, ) = $racine
126                        and $objet
127                ) {
128                        return autoriser('modererforum', $objet, $id_objet);
129                }
130        }
131
132        // sinon : admins uniquement
133        return $qui['statut'] == '0minirezo'; // les admins restreints peuvent moderer leurs messages
134}
135
136
137/**
138 * Autorisation de modifier un message de forum
139 *
140 * Jamais
141 *
142 * @param  string $faire Action demandée
143 * @param  string $type Type d'objet sur lequel appliquer l'action
144 * @param  int $id Identifiant de l'objet
145 * @param  array $qui Description de l'auteur demandant l'autorisation
146 * @param  array $opt Options de cette autorisation
147 * @return bool          true s'il a le droit, false sinon
148 */
149function autoriser_forum_modifier_dist($faire, $type, $id, $qui, $opt) {
150        return false;
151}
152
153/**
154 * Autorisation de consulter le forum des administrateurs
155 *
156 * Il faut être administrateur (y compris restreint)
157 *
158 * @param  string $faire Action demandée
159 * @param  string $type Type d'objet sur lequel appliquer l'action
160 * @param  int $id Identifiant de l'objet
161 * @param  array $qui Description de l'auteur demandant l'autorisation
162 * @param  array $opt Options de cette autorisation
163 * @return bool          true s'il a le droit, false sinon
164 */
165function autoriser_forum_admin_dist($faire, $type, $id, $qui, $opt) {
166        return $qui['statut'] == '0minirezo';
167}
168
169/**
170 * Autorisation d'auto-association de documents sur des forum
171 *
172 * Jamais
173 *
174 * @param  string $faire Action demandée
175 * @param  string $type Type d'objet sur lequel appliquer l'action
176 * @param  int $id Identifiant de l'objet
177 * @param  array $qui Description de l'auteur demandant l'autorisation
178 * @param  array $opt Options de cette autorisation
179 * @return bool          true s'il a le droit, false sinon
180 */
181function autoriser_forum_autoassocierdocument_dist($faire, $type, $id, $qui, $opt) {
182        return false;
183}
184
185/**
186 * Autorisation d'association de documents sur des forum
187 *
188 * Toujours
189 *
190 * @param  string $faire Action demandée
191 * @param  string $type Type d'objet sur lequel appliquer l'action
192 * @param  int $id Identifiant de l'objet
193 * @param  array $qui Description de l'auteur demandant l'autorisation
194 * @param  array $opt Options de cette autorisation
195 * @return bool          true s'il a le droit, false sinon
196 */
197function autoriser_forum_associerdocuments_dist($faire, $type, $id, $qui, $opt) {
198        return true;
199}
200
201/**
202 * Autorisation de dissociation de documents sur des forum
203 *
204 * Toujours
205 *
206 * @param  string $faire Action demandée
207 * @param  string $type Type d'objet sur lequel appliquer l'action
208 * @param  int $id Identifiant de l'objet
209 * @param  array $qui Description de l'auteur demandant l'autorisation
210 * @param  array $opt Options de cette autorisation
211 * @return bool          true s'il a le droit, false sinon
212 */
213function autoriser_forum_dissocierdocuments_dist($faire, $type, $id, $qui, $opt) {
214        return true;
215}
216
217/**
218 * Autorisation de participer au forum des admins
219 *
220 * Il faut être administrateur (y compris restreint)
221 *
222 * @param  string $faire Action demandée
223 * @param  string $type Type d'objet sur lequel appliquer l'action
224 * @param  int $id Identifiant de l'objet
225 * @param  array $qui Description de l'auteur demandant l'autorisation
226 * @param  array $opt Options de cette autorisation
227 * @return bool          true s'il a le droit, false sinon
228 */
229function autoriser_forumadmin_participer_dist($faire, $type, $id, $qui, $opt) {
230        return ($GLOBALS['meta']['forum_prive_admin'] == 'oui') && $qui['statut'] == '0minirezo';
231}
232
233
234/**
235 * Autorisation de participer au forum privé d'un objet quelconque
236 *
237 * Afin de rester compatible avec l'existant cette autorisation est toujours vraie.
238 *
239 * @param  string $faire Action demandée
240 * @param  string $type Type d'objet sur lequel appliquer l'action
241 * @param  int $id Identifiant de l'objet
242 * @param  array $qui Description de l'auteur demandant l'autorisation
243 * @param  array $opt Options de cette autorisation
244 * @return bool          true s'il a le droit, false sinon
245 */
246function autoriser_participerforumprive_dist($faire, $type, $id, $qui, $opt) {
247        return true;
248}
Note: See TracBrowser for help on using the repository browser.