499f7c73162c34a142ee2405554dccd6ce531915
[lhc/web/www.git] / www / plugins-dist / sites / sites_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
14 if (!defined('_ECRIRE_INC_VERSION')) {
15 return;
16 }
17
18 // fonction pour le pipeline
19 function sites_autoriser() { }
20
21
22 // bouton du bandeau
23 function autoriser_sites_menu_dist($faire, $type = '', $id = 0, $qui = null, $opt = null) {
24 return
25 autoriser('voir', '_sites', $id, $qui, $opt);
26 }
27
28 // Le bouton de création d'un site est présent si on peut en créer un.
29 function autoriser_sitecreer_menu_dist($faire, $type, $id, $qui, $opt) {
30 return
31 autoriser_site_creer_dist($faire, $type, $id, $qui, $opt);
32 }
33
34 function autoriser_sites_voir_dist($faire, $type = '', $id = 0, $qui = null, $opt = null) {
35 return
36 ($GLOBALS['meta']['activer_sites'] != 'non');
37 }
38
39 // Moderer la syndication ?
40 // = modifier l'objet correspondant (si forum attache a un objet)
41 // = droits par defaut sinon (admin complet pour moderation complete)
42 // https://code.spip.net/@autoriser_modererforum_dist
43 function autoriser_site_moderer_dist($faire, $type, $id, $qui, $opt) {
44 return
45 autoriser('modifier', 'site', $id, $qui, $opt);
46 }
47
48 function autoriser_site_purger_dist($faire, $type, $id, $qui, $opt) {
49 return
50 autoriser('moderer', 'site', $id, $qui, $opt);
51 }
52
53
54 function autoriser_controlersyndication_menu_dist($faire, $type, $id, $qui, $opt) {
55 return ($qui['statut'] == '0minirezo' and sql_countsel('spip_syndic_articles'));
56 }
57
58 // Creer un nouveau site ?
59 function autoriser_site_creer_dist($faire, $type, $id, $qui, $opt) {
60 return
61 ($GLOBALS['meta']["activer_sites"] != 'non'
62 and verifier_table_non_vide()
63 and (
64 $qui['statut'] == '0minirezo'
65 or ($GLOBALS['meta']['proposer_sites'] >=
66 ($qui['statut'] == '1comite' ? 1 : 2))));
67 }
68
69 // Pour creer un site dans la rubrique $id il faut:
70 // - que la rubrique existe et soit accessible pour l'auteur
71 // - que l'on puisse créer un site
72 // https://code.spip.net/@autoriser_rubrique_creersitedans_dist
73 function autoriser_rubrique_creersitedans_dist($faire, $type, $id, $qui, $opt) {
74 return
75 $id
76 and autoriser('voir', 'rubrique', $id)
77 and autoriser_site_creer_dist($faire, $type, $id, $qui, $opt);
78 }
79
80
81 // Autoriser a modifier un site
82 // https://code.spip.net/@autoriser_site_modifier_dist
83 function autoriser_site_modifier_dist($faire, $type, $id, $qui, $opt) {
84 if ($qui['statut'] == '0minirezo' and !$qui['restreint']) {
85 return true;
86 }
87
88 $r = sql_fetsel("id_rubrique,statut", "spip_syndic", "id_syndic=" . intval($id));
89
90 return ($r
91 and autoriser('voir', 'rubrique', $r['id_rubrique'])
92 and
93 ($r['statut'] == 'publie' or (isset($opt['statut']) and $opt['statut'] == 'publie'))
94 ? autoriser('publierdans', 'rubrique', $r['id_rubrique'], $qui, $opt)
95 : in_array($qui['statut'], array('0minirezo', '1comite'))
96 );
97 }
98
99 // Autoriser a voir un site $id_syndic
100 // https://code.spip.net/@autoriser_site_voir_dist
101 function autoriser_site_voir_dist($faire, $type, $id, $qui, $opt) {
102 return
103 autoriser_site_modifier_dist($faire, $type, $id, $qui, $opt);
104 }
105
106 // Autoriser l'importation de sites que si on peut en créer
107 function autoriser_sites_importer_dist($faire, $type, $id, $qui, $opt) {
108 return
109 autoriser_site_creer_dist($faire, $type, $id, $qui, $opt);
110 }
111
112 // Autoriser l'exportation de sites que si la table n'est pas vide
113 function autoriser_sites_exporter_dist($faire, $type, $id, $qui, $opt) {
114 return
115 verifier_table_non_vide('spip_syndic');
116 }