/***************************************************************************\
* 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. *
$champ = $c['champ'];
if (!isset($opt[$champ])) return false; // pas de champ passe a la demande => NIET
$previsu = explode(',',$c['previsu']);
- if (!in_array($opt[$champ],$previsu)) // le statut n'est pas dans ceux definis par la previsu => NIET
+ // regarder si ce statut est autorise pour l'auteur
+ if (in_array($opt[$champ]."/auteur",$previsu)){
+ if (!sql_countsel("spip_auteurs_liens","id_auteur=".intval($qui['id_auteur'])." AND objet=".sql_quote($type)." AND id_objet=".intval($id)))
+ return false; // pas auteur de cet objet => NIET
+ }
+ elseif (!in_array($opt[$champ],$previsu)) // le statut n'est pas dans ceux definis par la previsu => NIET
return false;
}
}
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');
}
}
// 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;
* @param array $opt Options de cette autorisation
* @return bool true s'il a le droit, false sinon
**/
-function autoriser_infosperso_onglet_dist($faire,$type,$id,$qui,$opt) {
+function autoriser_infosperso_dist($faire,$type,$id,$qui,$opt) {
return true;
}
/**
- * Autorisation de voir l'onglet configurerlangage
+ * Autorisation de voir le formulaire configurer_langage
*
* Toujours OK
*
* @param array $opt Options de cette autorisation
* @return bool true s'il a le droit, false sinon
**/
-function autoriser_configurerlangage_onglet_dist($faire,$type,$id,$qui,$opt) {
+function autoriser_langage_configurer_dist($faire,$type,$id,$qui,$opt) {
return true;
}
/**
- * Autorisation de voir l'onglet configurerpreferences
+ * Autorisation de voir l'onglet configurerlangage
+ *
+ * Calquée sur l'autorisation de voir le formulaire configurer_langage
+ *
+ * @param string $faire Action demandée
+ * @param string $type Type d'objet sur lequel appliquer l'action
+ * @param int $id Identifiant de l'objet
+ * @param array $qui Description de l'auteur demandant l'autorisation
+ * @param array $opt Options de cette autorisation
+ * @return bool true s'il a le droit, false sinon
+**/
+function autoriser_configurerlangage_dist($faire,$type,$id,$qui,$opt) {
+ return autoriser('configurer', '_langage', $id, $qui, $opt);
+}
+
+/**
+ * Autorisation de voir le formulaire configurer_preferences
*
* Toujours OK
*
* @param array $opt Options de cette autorisation
* @return bool true s'il a le droit, false sinon
**/
-function autoriser_configurerpreferences_onglet_dist($faire,$type,$id,$qui,$opt) {
+function autoriser_preferences_configurer_dist($faire,$type,$id,$qui,$opt) {
return true;
}
+/**
+ * Autorisation de voir l'onglet configurerpreferences
+ *
+ * Calquée sur l'autorisation de voir le formulaire configurer_preferences
+ *
+ * @param string $faire Action demandée
+ * @param string $type Type d'objet sur lequel appliquer l'action
+ * @param int $id Identifiant de l'objet
+ * @param array $qui Description de l'auteur demandant l'autorisation
+ * @param array $opt Options de cette autorisation
+ * @return bool true s'il a le droit, false sinon
+**/
+function autoriser_configurerpreferences_dist($faire,$type,$id,$qui,$opt) {
+ return autoriser('configurer', '_preferences', $id, $qui, $opt);
+}
+
/**
* Autorisation de voir le menu auteurs
*
$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;
+}
?>