[SPIP] ~maj v3.0.14-->v3.0.17
[ptitvelo/web/www.git] / www / ecrire / inc / autoriser.php
index ceb78f6..950ddbd 100644 (file)
@@ -3,7 +3,7 @@
 /***************************************************************************\
  *  SPIP, Systeme de publication pour l'internet                           *
  *                                                                         *
- *  Copyright (c) 2001-2012                                                *
+ *  Copyright (c) 2001-2014                                                *
  *  Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James  *
  *                                                                         *
  *  Ce programme est un logiciel libre distribue sous licence GNU/GPL.     *
@@ -425,7 +425,8 @@ function autoriser_rubrique_creerrubriquedans_dist($faire, $type, $id, $qui, $op
 function autoriser_rubrique_creerarticledans_dist($faire, $type, $id, $qui, $opt) {
        return
                $id
-               AND autoriser('voir','rubrique',$id);
+               AND autoriser('voir','rubrique',$id)
+               AND autoriser('creer', 'article');
 }
 
 
@@ -889,7 +890,8 @@ function liste_rubriques_auteur($id_auteur, $raz=false) {
        }
 
        // Affecter l'auteur session le cas echeant
-       if ($GLOBALS['visiteur_session']['id_auteur'] == $id_auteur)
+       if (isset($GLOBALS['visiteur_session']['id_auteur'])
+         AND $GLOBALS['visiteur_session']['id_auteur'] == $id_auteur)
                $GLOBALS['visiteur_session']['restreint'] = $rubriques;
 
 
@@ -1268,4 +1270,36 @@ function verifier_table_non_vide($table='spip_rubriques') {
                 $done[$table] = sql_countsel($table)>0;
        return $done[$table];
 }
+
+/**
+ * Une autorisation determiner la possibilite de s'inscire pour un statut et un id_rubrique,
+ * a l'aide de la liste globale des statuts (tableau mode => nom du mode)
+ * Utile pour le formulaire d'inscription.
+ * Par defaut, seuls 6forum et 1comite possibles, les autres sont en false
+ * pour un nouveau mode il suffit de definir l'autorisation specifique
+ *
+ * @param $faire
+ * @param $quoi
+ *   statut auteur demande
+ * @param $id
+ *   id_rubrique eventuel (pas utilise ici, utilise dans des usages persos)
+ * @param $qui
+ * @param $opt
+ * @return bool
+ */
+function autoriser_inscrireauteur_dist($faire, $quoi, $id, $qui, $opt){
+
+       $s = array_search($quoi, $GLOBALS['liste_des_statuts']);
+       switch ($s) {
+
+               case 'info_redacteurs' :
+                 return ($GLOBALS['meta']['accepter_inscriptions'] == 'oui');
+
+               case 'info_visiteurs' :
+                 return ($GLOBALS['meta']['accepter_visiteurs'] == 'oui' OR $GLOBALS['meta']['forums_publics'] == 'abo');
+
+       }
+
+       return false;
+}
 ?>