[SPIP][PLUGINS] v3.0-->v3.2
[lhc/web/www.git] / www / plugins-dist / sites / sites_autoriser.php
index dab35ec..499f7c7 100644 (file)
 \***************************************************************************/
 
 
-if (!defined('_ECRIRE_INC_VERSION')) return;
+if (!defined('_ECRIRE_INC_VERSION')) {
+       return;
+}
 
 // fonction pour le pipeline
-function sites_autoriser() {}
+function sites_autoriser() { }
 
 
 // bouton du bandeau
-function autoriser_sites_menu_dist($faire, $type='', $id=0, $qui = NULL, $opt = NULL){
-       return  ($GLOBALS['meta']["activer_sites"] != "non");
+function autoriser_sites_menu_dist($faire, $type = '', $id = 0, $qui = null, $opt = null) {
+       return
+               autoriser('voir', '_sites', $id, $qui, $opt);
 }
-function autoriser_sitecreer_menu_dist($faire, $type, $id, $qui, $opt){
+
+// Le bouton de création d'un site est présent si on peut en créer un.
+function autoriser_sitecreer_menu_dist($faire, $type, $id, $qui, $opt) {
        return
-               ($GLOBALS['meta']["activer_sites"] != "non"
-               AND verifier_table_non_vide()   
-               AND (
-                       $qui['statut']=='0minirezo'
-                       OR ($GLOBALS['meta']["proposer_sites"] >=
-                           ($qui['statut']=='1comite' ? 1 : 2))));
+               autoriser_site_creer_dist($faire, $type, $id, $qui, $opt);
 }
 
+function autoriser_sites_voir_dist($faire, $type = '', $id = 0, $qui = null, $opt = null) {
+       return
+               ($GLOBALS['meta']['activer_sites'] != 'non');
+}
 
 // Moderer la syndication ?
 // = modifier l'objet correspondant (si forum attache a un objet)
@@ -47,52 +51,66 @@ function autoriser_site_purger_dist($faire, $type, $id, $qui, $opt) {
 }
 
 
-function autoriser_controlersyndication_menu_dist($faire, $type, $id, $qui, $opt){
-       return  ($qui['statut']=='0minirezo' AND sql_countsel('spip_syndic_articles'));
+function autoriser_controlersyndication_menu_dist($faire, $type, $id, $qui, $opt) {
+       return ($qui['statut'] == '0minirezo' and sql_countsel('spip_syndic_articles'));
 }
 
 // Creer un nouveau site ?
-function autoriser_site_creer_dist($faire, $type, $id, $qui, $opt){
+function autoriser_site_creer_dist($faire, $type, $id, $qui, $opt) {
        return
-               ($GLOBALS['meta']["activer_sites"] != "non"
-               AND (
-                       $qui['statut']=='0minirezo'
-                       OR ($GLOBALS['meta']["proposer_sites"] >=
-                           ($qui['statut']=='1comite' ? 1 : 2))));
+               ($GLOBALS['meta']["activer_sites"] != 'non'
+                       and verifier_table_non_vide()
+                       and (
+                               $qui['statut'] == '0minirezo'
+                               or ($GLOBALS['meta']['proposer_sites'] >=
+                                       ($qui['statut'] == '1comite' ? 1 : 2))));
 }
 
-// Autoriser a creer un site dans la rubrique $id
+// Pour creer un site dans la rubrique $id il faut:
+// - que la rubrique existe et soit accessible pour l'auteur
+// - que l'on puisse créer un site
 // https://code.spip.net/@autoriser_rubrique_creersitedans_dist
 function autoriser_rubrique_creersitedans_dist($faire, $type, $id, $qui, $opt) {
        return
                $id
-               AND autoriser('voir','rubrique',$id)
-               AND $GLOBALS['meta']['activer_sites'] != 'non'
-               AND (
-                       $qui['statut']=='0minirezo'
-                       OR ($GLOBALS['meta']["proposer_sites"] >=
-                           ($qui['statut']=='1comite' ? 1 : 2)));
+               and autoriser('voir', 'rubrique', $id)
+               and autoriser_site_creer_dist($faire, $type, $id, $qui, $opt);
 }
 
 
 // Autoriser a modifier un site
 // https://code.spip.net/@autoriser_site_modifier_dist
 function autoriser_site_modifier_dist($faire, $type, $id, $qui, $opt) {
-       if ($qui['statut'] == '0minirezo' AND !$qui['restreint'])
+       if ($qui['statut'] == '0minirezo' and !$qui['restreint']) {
                return true;
+       }
+
+       $r = sql_fetsel("id_rubrique,statut", "spip_syndic", "id_syndic=" . intval($id));
 
-       $r = sql_fetsel("id_rubrique,statut", "spip_syndic", "id_syndic=".intval($id));
        return ($r
-               AND autoriser('voir','rubrique',$r['id_rubrique'])
-               AND
-               ($r['statut'] == 'publie' OR (isset($opt['statut']) AND $opt['statut']=='publie'))
+               and autoriser('voir', 'rubrique', $r['id_rubrique'])
+               and
+               ($r['statut'] == 'publie' or (isset($opt['statut']) and $opt['statut'] == 'publie'))
                        ? autoriser('publierdans', 'rubrique', $r['id_rubrique'], $qui, $opt)
                        : in_array($qui['statut'], array('0minirezo', '1comite'))
        );
 }
+
 // Autoriser a voir un site $id_syndic
 // https://code.spip.net/@autoriser_site_voir_dist
 function autoriser_site_voir_dist($faire, $type, $id, $qui, $opt) {
-       return autoriser_site_modifier_dist($faire, $type, $id, $qui, $opt);
+       return
+               autoriser_site_modifier_dist($faire, $type, $id, $qui, $opt);
+}
+
+// Autoriser l'importation de sites que si on peut en créer
+function autoriser_sites_importer_dist($faire, $type, $id, $qui, $opt) {
+       return
+               autoriser_site_creer_dist($faire, $type, $id, $qui, $opt);
+}
+
+// Autoriser l'exportation de sites que si la table n'est pas vide
+function autoriser_sites_exporter_dist($faire, $type, $id, $qui, $opt) {
+       return
+               verifier_table_non_vide('spip_syndic');
 }
-?>