[SPIP] ~v3.0.20-->v3.0.25
[lhc/web/clavette_www.git] / www / plugins-dist / forum / forum_autoriser.php
1 <?php
2
3 /***************************************************************************\
4 * SPIP, Systeme de publication pour l'internet *
5 * *
6 * Copyright (c) 2001-2016 *
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 if (!defined("_ECRIRE_INC_VERSION")) return;
14
15 // declarer la fonction du pipeline
16 function forum_autoriser(){}
17
18
19 function autoriser_foruminternesuivi_menu_dist($faire, $type='', $id=0, $qui = NULL, $opt = NULL){
20 if ((($GLOBALS['meta']['forum_prive'] == 'non') && ($GLOBALS['meta']['forum_prive_admin'] == 'non'))
21 OR (($GLOBALS['meta']['forum_prive'] == 'non') && ($qui['statut'] == '1comite')))
22 return false;
23 return true;
24 }
25
26 function autoriser_forumreactions_menu_dist($faire, $type='', $id=0, $qui = NULL, $opt = NULL){
27 return (sql_countsel('spip_forum') && autoriser('publierdans','rubrique',_request('id_rubrique')));
28 }
29
30
31 // Moderer le forum ?
32 // = modifier l'objet correspondant (si forum attache a un objet)
33 // = droits par defaut sinon (admin complet pour moderation complete)
34 // http://code.spip.net/@autoriser_modererforum_dist
35 function autoriser_modererforum_dist($faire, $type, $id, $qui, $opt) {
36 return $type ? autoriser('modifier', $type, $id, $qui, $opt):autoriser('moderer', 'forum', 0, $qui, $opt);
37 }
38
39 /**
40 * Autorise a changer le statut d'un message de forum :
41 * seulement sur les objets qu'on a le droit de moderer
42 */
43 function autoriser_forum_instituer_dist($faire, $type, $id, $qui, $opt){
44 if (!intval($id)) return autoriser('moderer','forum');
45 $row = sql_fetsel('objet,id_objet','spip_forum','id_forum='.intval($id));
46 return $row?autoriser('modererforum',$row['objet'],$row['id_objet'],$qui,$opt):false;
47 }
48
49 function autoriser_forum_moderer_dist($faire, $type, $id, $qui, $opt){
50 // si on fournit un id : deleguer a modererforum sur l'objet concerne
51 if ($id){
52 include_spip('inc/forum');
53 if ($racine = racine_forum($id)
54 AND list($objet,$id_objet,) = $racine
55 AND $objet){
56 return autoriser('modererforum',$objet,$id_objet);
57 }
58 }
59
60 // sinon : admins uniquement
61 return $qui['statut']=='0minirezo'; // les admins restreints peuvent moderer leurs messages
62 }
63
64 // Modifier un forum ?
65 // = jamais !
66 // http://code.spip.net/@autoriser_forum_modifier_dist
67 function autoriser_forum_modifier_dist($faire, $type, $id, $qui, $opt) {
68 return false;
69 }
70
71 // Consulter le forum des admins ?
72 // admins y compris restreints
73 // http://code.spip.net/@autoriser_forum_admin_dist
74 function autoriser_forum_admin_dist($faire, $type, $id, $qui, $opt) {
75 return $qui['statut'] == '0minirezo';
76 }
77
78 /**
79 * Auto-association de documents sur des forum : niet
80 */
81 function autoriser_forum_autoassocierdocument_dist($faire, $type, $id, $qui, $opts) {
82 return false;
83 }
84
85 /**
86 * Autorisation d'association de documents sur des forum
87 *
88 * Toujours
89 *
90 * @param string $faire Action demandée
91 * @param string $type Type d'objet sur lequel appliquer l'action
92 * @param int $id Identifiant de l'objet
93 * @param array $qui Description de l'auteur demandant l'autorisation
94 * @param array $opt Options de cette autorisation
95 * @return bool true s'il a le droit, false sinon
96 */
97 function autoriser_forum_associerdocuments_dist($faire, $type, $id, $qui, $opt) {
98 return true;
99 }
100
101 /**
102 * Autorisation de dissociation de documents sur des forum
103 *
104 * Toujours
105 *
106 * @param string $faire Action demandée
107 * @param string $type Type d'objet sur lequel appliquer l'action
108 * @param int $id Identifiant de l'objet
109 * @param array $qui Description de l'auteur demandant l'autorisation
110 * @param array $opt Options de cette autorisation
111 * @return bool true s'il a le droit, false sinon
112 */
113 function autoriser_forum_dissocierdocuments_dist($faire, $type, $id, $qui, $opt) {
114 return true;
115 }
116
117 /**
118 * Autoriser a participer au forum des admins
119 *
120 * @return bool
121 */
122 function autoriser_forumadmin_participer_dist($faire, $type, $id, $qui, $opts) {
123 return ($GLOBALS['meta']['forum_prive_admin'] == 'oui') && $qui['statut']=='0minirezo';
124 }
125
126 /**
127 * Autoriser a participer au forum privé d'un objet quelconque
128 * Afin de rester compatible avec l'existant cette autorisation est toujours vraie.
129 *
130 * @return bool
131 */
132 function autoriser_participerforumprive_dist($faire, $type, $id, $qui, $opt) {
133 return true;
134 }
135
136 ?>