[PLUGINS] ~maj globale
[lhc/web/www.git] / www / plugins / gis / gis_autoriser.php
1 <?php
2
3 if (!defined('_ECRIRE_INC_VERSION')) {
4 return;
5 }
6
7 function gis_autoriser() {
8 }
9
10 /**
11 * Autorisation a modifier le logo d'un point
12 * Si on est autorisé à modifier le point en question
13 *
14 * @param string $faire L'action
15 * @param string $type Le type d'objet
16 * @param int $id L'identifiant numérique de l'objet
17 * @param array $qui Les informations de session de l'auteur
18 * @param array $opt Des options
19 * @return boolean true/false
20 */
21 function autoriser_gis_iconifier_dist($faire, $quoi, $id, $qui, $opts) {
22 return autoriser('modifier', 'gis', $id, $qui, $opts);
23 }
24
25 /**
26 * Autorisation a modifier un point
27 * Avoir un statut dans les 3 fournis par SPIP
28 * (On n'a pas d'auteur pour un point ...)
29 *
30 * @param string $faire L'action
31 * @param string $type Le type d'objet
32 * @param int $id L'identifiant numérique de l'objet
33 * @param array $qui Les informations de session de l'auteur
34 * @param array $opt Des options
35 * @return boolean true/false
36 */
37 function autoriser_gis_modifier_dist($faire, $quoi, $id, $qui, $opts) {
38 return (in_array($qui['statut'], array('0minirezo', '1comite', '6forum')));
39 }
40
41 /**
42 * Autorisation a creer un point
43 * Avoir un statut dans les 3 fournis par SPIP
44 * (On n'a pas d'auteur pour un point ...)
45 *
46 * @param string $faire L'action
47 * @param string $type Le type d'objet
48 * @param int $id L'identifiant numérique de l'objet
49 * @param array $qui Les informations de session de l'auteur
50 * @param array $opt Des options
51 * @return boolean true/false
52 */
53 function autoriser_gis_creer_dist($faire, $quoi, $id, $qui, $opts) {
54 return (in_array($qui['statut'], array('0minirezo', '1comite', '6forum')));
55 }
56
57 /**
58 * Autorisation d'associer un point à un objet
59 * Un auteur peut lier un point à un autre objet que s'il peut modifier l'objet à lier en question
60 *
61 * @param string $faire L'action
62 * @param string $type Le type d'objet
63 * @param int $id L'identifiant numérique de l'objet
64 * @param array $qui Les informations de session de l'auteur
65 * @param array $opt Des options
66 * @return boolean true/false
67 */
68 function autoriser_associergis_dist($faire, $quoi, $id, $qui, $opts) {
69 return autoriser('lier', 'gis', '', $qui, array('objet' => $quoi,'id_objet'=>$id));
70 }
71
72 /**
73 * Autorisation a lier un point d'un objet
74 * Un auteur peut lier un point à un autre objet que s'il peut modifier l'objet à lier en question
75 *
76 * @param string $faire L'action
77 * @param string $type Le type d'objet
78 * @param int $id L'identifiant numérique de l'objet
79 * @param array $qui Les informations de session de l'auteur
80 * @param array $opt Des options
81 * @return boolean true/false
82 */
83 function autoriser_gis_lier_dist($faire, $quoi, $id, $qui, $opts) {
84 if (is_array($opts) and isset($opts['objet']) and isset($opts['id_objet'])) {
85 return autoriser('modifier', $opts['objet'], $opts['id_objet'], $qui);
86 }
87 return false;
88 }
89
90 /**
91 * Autorisation a délier un point d'un objet
92 * Un auteur peut délier un point d'un autre objet que s'il peut modifier l'objet en question
93 * Si l'objet lié n'existe plus, on vérifie que l'auteur a le droit de modifier le point
94 *
95 * @param string $faire L'action
96 * @param string $type Le type d'objet
97 * @param int $id L'identifiant numérique de l'objet
98 * @param array $qui Les informations de session de l'auteur
99 * @param array $opt Des options
100 * @return boolean true/false
101 */
102 function autoriser_gis_delier_dist($faire, $quoi, $id, $qui, $opts) {
103 $table = table_objet_sql($opts['objet']);
104 $_id_objet = id_table_objet($table);
105 if (!sql_getfetsel($_id_objet, $table, "$_id_objet=" . intval($opts['id_objet']))) {
106 return autoriser('modifier', 'gis', $id, $qui, $opts);
107 } else {
108 return autoriser('lier', 'gis', $id, $qui, $opts);
109 }
110 }
111
112 /**
113 * Autorisation a supprimer un point
114 * Un auteur peut supprimer un point s'il peut délier tous les objets et modifier le point
115 *
116 * @param string $faire L'action
117 * @param string $type Le type d'objet
118 * @param int $id L'identifiant numérique de l'objet
119 * @param array $qui Les informations de session de l'auteur
120 * @param array $opt Des options
121 * @return boolean true/false
122 */
123 function autoriser_gis_supprimer_dist($faire, $quoi, $id, $qui, $opts) {
124 $liaisons = sql_select('*', 'spip_gis_liens', 'id_gis=' . intval($id));
125 while ($liaison = sql_fetch($liaisons)) {
126 if (!autoriser('delier', 'gis', $liaison['id_gis'], $qui, $liaison)) {
127 return false;
128 }
129 }
130 return autoriser('modifier', 'gis', $id, $qui, $opts);
131 }