X-Git-Url: http://git.cyclocoop.org/?a=blobdiff_plain;f=www%2Fecrire%2Finc%2Fautoriser.php;h=c3c91a9db383fdcfb15560b33f8fd7f9c3252fad;hb=d18fcb8f27a4016e3fa7b50a9b2255d529dca543;hp=8474d5cae4b7d8f669cfab92702239db303dc13f;hpb=5be150361b3c836d9206941ba43f862df11466db;p=ptitvelo%2Fweb%2Fwww.git diff --git a/www/ecrire/inc/autoriser.php b/www/ecrire/inc/autoriser.php index 8474d5c..c3c91a9 100644 --- a/www/ecrire/inc/autoriser.php +++ b/www/ecrire/inc/autoriser.php @@ -281,7 +281,12 @@ function autoriser_previsualiser_dist($faire, $type, $id, $qui, $opt) { $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; } } @@ -425,7 +430,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 +895,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; @@ -1040,12 +1047,12 @@ function autoriser_base_reparer_dist($faire, $type, $id, $qui, $opt) { * @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 * @@ -1056,12 +1063,28 @@ function autoriser_infosperso_onglet_dist($faire,$type,$id,$qui,$opt) { * @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 * @@ -1072,10 +1095,26 @@ function autoriser_configurerlangage_onglet_dist($faire,$type,$id,$qui,$opt) { * @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 *