[PLUGINS] +les plugins de bases
[ptitvelo/web/www.git] / www / plugins / agenda_3_5 / agenda_autoriser.php
1 <?php
2 /**
3 * Plugin Agenda 4 pour Spip 3.0
4 * Licence GPL 3
5 *
6 * 2006-2011
7 * Auteurs : cf paquet.xml
8 */
9
10 if (!defined("_ECRIRE_INC_VERSION")) return;
11
12 /* pour que le pipeline ne rale pas ! */
13 function agenda_autoriser(){}
14
15 function autoriser_evenementcreer_menu_dist($faire, $type='', $id=0, $qui = NULL, $opt = NULL){
16 autoriser('creer','evenement',$id,$qui,$opt);
17 }
18
19 function autoriser_evenements_menu_dist($faire, $type='', $id=0, $qui = NULL, $opt = NULL){
20 return true;
21 }
22
23 /**
24 * Autorisation d'ajout d'un evenement a un article
25 *
26 * @param string $faire
27 * @param string $quoi
28 * @param int $id
29 * @param int $qui
30 * @param array $options
31 * @return bool
32 */
33 function autoriser_article_creerevenementdans_dist($faire,$quoi,$id,$qui,$options){
34 if (!$id) return false; // interdit de creer un evenement sur un article vide !
35 // si on a le droit de modifier l'article alors on a peut-etre le droit d'y creer un evenement
36 $afficher = false;
37 if (autoriser('modifier','article',$id,$qui)) {
38 $afficher = true;
39 // un article avec des evenements a toujours le droit
40 if (!sql_countsel('spip_evenements','id_article='.intval($id))){
41 // si au moins une rubrique a le flag agenda
42 if (sql_countsel('spip_rubriques','agenda=1')){
43 // alors il faut le flag agenda dans cette branche !
44 $afficher = false;
45 include_spip('inc/rubriques');
46 $in = calcul_hierarchie_in(sql_getfetsel('id_rubrique','spip_articles','id_article='.intval($id)));
47 $afficher = sql_countsel('spip_rubriques',sql_in('id_rubrique',$in)." AND agenda=1");
48 }
49 }
50 }
51 return $afficher;
52 }
53
54 // Autorisation pour créer un événement n'importe où (article ou autre ou rien)
55 // Par défaut : comme pour créer dans un article si on l'a dans les options, sinon être admin complet
56 function autoriser_evenement_creer_dist($faire,$quoi,$id,$qui,$options){
57 if (isset($options['id_article']) and $options['id_article'] > 0){
58 return autoriser('creerevenementdans', 'article', $options['id_article'], $qui, $options);
59 }
60 else{
61 return ($qui['statut'] == '0minirezo' and !$qui['restreint']);
62 }
63 }
64
65 /**
66 * Autorisation de modifier un evenement : autorisations de l'article parent
67 *
68 * @param string $faire
69 * @param string $quoi
70 * @param int $id
71 * @param int $qui
72 * @param array $options
73 * @return bool
74 */
75 function autoriser_evenement_modifier_dist($faire,$quoi,$id,$qui,$options){
76 if (!isset($options['id_article']) OR !$id_article=$options['id_article'])
77 $id_article = sql_getfetsel('id_article','spip_evenements','id_evenement='.intval($id));
78 if (!$id_article) return false;
79 return autoriser('modifier','article',$id_article,$qui);
80 }
81
82 /**
83 * Autorisation d'instituer un evenement : voir si l'article est publie ou non
84 * @param string $faire
85 * @param string $quoi
86 * @param int $id
87 * @param int $qui
88 * @param array $options
89 * @return bool
90 */
91 function autoriser_evenement_instituer_dist($faire,$quoi,$id,$qui,$options){
92 if (!isset($options['id_article']) OR !$id_article=$options['id_article'])
93 $id_article = sql_getfetsel('id_article','spip_evenements','id_evenement='.intval($id));
94 if (!$id_article) return false;
95 $statut = sql_getfetsel('statut','spip_articles','id_article='.intval($id_article));
96 // interdit de publier un evenement sur un article non publie
97 if ($statut!=='publie'
98 AND isset($options['statut'])
99 AND $options['statut']=='publie')
100 return false;
101 $options['id_article']=$id_article;
102 return autoriser('modifier','evenement',$id,$qui,$options);
103 }
104
105 /**
106 * Autorisation de voir un evenement : autorisations de l'article parent
107 *
108 * @param string $faire
109 * @param string $quoi
110 * @param int $id
111 * @param int $qui
112 * @param array $options
113 * @return bool
114 */
115 function autoriser_evenement_voir_dist($faire,$quoi,$id,$qui,$options){
116 if (!isset($options['id_article']) OR !$id_article=$options['id_article'])
117 $id_article = sql_getfetsel('id_article','spip_evenements','id_evenement='.intval($id));
118 if (!$id_article) return false;
119 return autoriser('voir','article',$id_article,$qui);
120 }
121
122
123 /**
124 * Autorisation de supprimer un evenement : autorisations de l'article parent
125 *
126 * @param string $faire
127 * @param string $quoi
128 * @param int $id
129 * @param int $qui
130 * @param array $options
131 * @return bool
132 */
133 function autoriser_evenement_supprimer_dist($faire,$quoi,$id,$qui,$options){
134 if (!isset($options['id_article']) OR !$id_article=$options['id_article'])
135 $id_article = sql_getfetsel('id_article','spip_evenements','id_evenement='.intval($id));
136 if (!$id_article) {
137 if ($qui['statut']=='0minirezo')
138 return true;
139 else
140 return false;
141 }
142 return autoriser('modifier','article',$id_article,$qui);
143 }
144
145
146 ?>