X-Git-Url: http://git.cyclocoop.org/?p=ptitvelo%2Fweb%2Fwww.git;a=blobdiff_plain;f=www%2Fecrire%2Finc%2Fautoriser.php;h=c3c91a9db383fdcfb15560b33f8fd7f9c3252fad;hp=950ddbd22d845a8e9eda86ac83bdc5458ff28ad4;hb=d18fcb8f27a4016e3fa7b50a9b2255d529dca543;hpb=e847eea4a82a7396dd0abf860f9b30d654f38629 diff --git a/www/ecrire/inc/autoriser.php b/www/ecrire/inc/autoriser.php index 950ddbd..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; } } @@ -1042,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 * @@ -1058,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 * @@ -1074,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 *