93ee4aa7c22e7725366ae3c87317e2ebbbef9932
[lhc/web/www.git] / www / plugins-dist / organiseur / organiseur_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')) {
14 return;
15 }
16
17 /**
18 * Fonction vide pour charger ce fichier sans declencher de warning
19 *
20 * @return void
21 */
22 function organiseur_autoriser() {
23 }
24
25 function autoriser_calendrier_menu_dist($faire, $type = '', $id = 0, $qui = null, $opt = null) {
26 if ($GLOBALS['meta']['messagerie_agenda'] == 'oui') {
27 return true;
28 }
29
30 return false;
31 }
32
33 function autoriser_messagerie_menu_dist($faire, $type = '', $id = 0, $qui = null, $opt = null) {
34 if ($GLOBALS['meta']['messagerie_agenda'] == 'oui') {
35 return true;
36 }
37
38 return false;
39 }
40
41 function autoriser_message_modifier_dist($faire, $type = '', $id = 0, $qui = null, $opt = null) {
42 if (!intval($qui['id_auteur'])) {
43 return false;
44 }
45 $row = sql_fetsel('statut,type,id_auteur', 'spip_messages', 'id_message=' . intval($id));
46 // on peut modifier ses penses betes ou ses messages brouillons
47 if ($row['id_auteur'] == $qui['id_auteur'] and ($row['statut'] == 'prepa' or $row['type'] == 'pb')) {
48 return true;
49 }
50 // on peut modifier les annonces si on est admin
51 if ($qui['statut'] == '0minirezo' and $row['type'] == 'affich') {
52 return true;
53 }
54
55 return false;
56 }
57
58 function autoriser_message_instituer_dist($faire, $type = '', $id = 0, $qui = null, $opt = null) {
59 // rediriger vers la bonne autorisation en cas de suppression
60 if ($opt['statut'] == 'poub') {
61 return autoriser('supprimer', 'message', $id, $qui, $opt);
62 }
63
64 return autoriser('modifier', 'message', $id, $qui, $opt);
65 }
66
67 function autoriser_message_supprimer_dist($faire, $type = '', $id = 0, $qui = null, $opt = null) {
68 // on peut supprimer un message que l'on peut modifier
69 if (autoriser('modifier', 'message', $id, $qui, $opt)) {
70 return true;
71 }
72 // mais on peut aussi supprimer un message envoye par soi
73 // si tous ses dest l'on supprime aussi
74 if (
75 $qui['id_auteur']
76 and sql_countsel(
77 'spip_messages',
78 "statut='publie' AND id_auteur=" . intval($qui['id_auteur']) . ' AND id_message=' . intval($id)
79 ) and !sql_countsel(
80 'spip_auteurs_liens',
81 "objet='message' AND id_objet=" . intval($id) . " AND vu!='poub' AND id_auteur!=" . intval($qui['id_auteur'])
82 )) {
83 return true;
84 }
85
86 return false;
87 }
88
89 function autoriser_messagerecu_effacer_dist($faire, $type = '', $id = 0, $qui = null, $opt = null) {
90 if (isset($opt['id_auteur'])) {
91 $id_auteur = $opt['id_auteur'];
92 } else {
93 $id_auteur = $qui['id_auteur'];
94 }
95 // seul le destinataire peut supprimer un message qui lui est destine
96 if (!intval($id_auteur) or intval($id_auteur) != intval($qui['id_auteur'])) {
97 return false;
98 }
99
100 // rien d'autre a verifier?...
101 return true;
102 }
103
104 function autoriser_message_dater_dist($faire, $type = '', $id = 0, $qui = null, $opt = null) {
105 return false;
106 }
107
108 function autoriser_envoyermessage_dist($faire, $type = '', $id = 0, $qui = null, $opt = null) {
109 if (!($GLOBALS['meta']['messagerie_agenda'] == 'oui') or !intval($qui['id_auteur'])) {
110 return false;
111 }
112 // on peut envoyer une annonce si on est admin
113 if (!($qui['statut'] == '0minirezo') and $type == 'affich') {
114 return false;
115 }
116
117 return true;
118 }
119
120 function autoriser_message_voir_dist($faire, $type = '', $id = 0, $qui = null, $opt = null) {
121 if (!intval($qui['id_auteur'])) {
122 return false;
123 }
124 // message annonce ou message dont $qui est l'auteur : droit de le voir
125 if (sql_countsel(
126 'spip_messages',
127 'id_message=' . intval($id) . ' AND (type=\'affich\' OR id_auteur=' . intval($qui['id_auteur']) . ')'
128 )) {
129 return true;
130 }
131 // message dont $qui est destinataire
132 if (sql_countsel(
133 'spip_auteurs_liens',
134 'objet=\'message\' AND id_objet=' . intval($id) . " AND vu!='poub' AND id_auteur=" . intval($qui['id_auteur'])
135 )) {
136 return true;
137 }
138
139 return false;
140 }
141
142 function autoriser_message_repondre_dist($faire, $type = '', $id = 0, $qui = null, $opt = null) {
143 return autoriser('ecrire', '', '', $qui['id_auteur']);
144 }