X-Git-Url: http://git.heureux-cyclage.org/?a=blobdiff_plain;f=www%2Fplugins-dist%2Fmots%2Fmots_autoriser.php;h=ead47e3be0462d3cb45477f4913e52112d5415b0;hb=4f443dce95ff6f8221c189880a70c74ce1c1f238;hp=9a5eca4d70d103f75fbcb19b2151d8aad8957fc1;hpb=4a628e9b277d3617535f99d663ca79fa2e891177;p=lhc%2Fweb%2Fwww.git diff --git a/www/plugins-dist/mots/mots_autoriser.php b/www/plugins-dist/mots/mots_autoriser.php index 9a5eca4d..ead47e3b 100644 --- a/www/plugins-dist/mots/mots_autoriser.php +++ b/www/plugins-dist/mots/mots_autoriser.php @@ -11,54 +11,65 @@ \***************************************************************************/ /** - * Définit les autorisations du plugin mots + * Définit les autorisations du plugin mots * - * @package Mots\Autorisations -**/ -if (!defined('_ECRIRE_INC_VERSION')) return; + * @package SPIP\Mots\Autorisations + **/ +if (!defined('_ECRIRE_INC_VERSION')) { + return; +} -/** Fonction d'appel pour le pipeline */ -function mots_autoriser(){} +/** + * Fonction d'appel pour le pipeline + * + * @pipeline autoriser + */ +function mots_autoriser() { +} /** - * Autorisation de voir un élément de menu + * Autorisation de voir un élément de menu * * @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 + * @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_mots_menu_dist($faire, $type, $id, $qui, $opt){ - if ($qui['statut'] == '0minirezo') - return ($GLOBALS['meta']['articles_mots'] != 'non' OR sql_countsel('spip_groupes_mots')); - $where = ""; - if ($qui['statut']=='1comite') + **/ +function autoriser_mots_menu_dist($faire, $type, $id, $qui, $opt) { + if ($qui['statut'] == '0minirezo') { + return ($GLOBALS['meta']['articles_mots'] != 'non' or sql_countsel('spip_groupes_mots')); + } + $where = ''; + if ($qui['statut'] == '1comite') { $where = "comite='oui' OR forum='oui'"; - if ($qui['statut']=='6forum') + } + if ($qui['statut'] == '6forum') { $where = "forum='oui'"; + } + return ($where - AND $GLOBALS['meta']['articles_mots'] != 'non' - AND sql_countsel('spip_groupes_mots',$where)); + and $GLOBALS['meta']['articles_mots'] != 'non' + and sql_countsel('spip_groupes_mots', $where)); } /** * Autorisation de voir le bouton d'accès rapide à la création d'un mot clé * * @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 + * @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_motcreer_menu_dist($faire, $type, $id, $qui, $opt){ + **/ +function autoriser_motcreer_menu_dist($faire, $type, $id, $qui, $opt) { // [fixme] Meta 'article_mots' mal nommée maintenant // car elle désigne l'activation ou non des mots clés, quelque soit l'objet. return ($GLOBALS['meta']['articles_mots'] != 'non' - AND sql_countsel('spip_groupes_mots') - AND autoriser('creer','mot',null,$qui,$opt)); + and sql_countsel('spip_groupes_mots') + and autoriser('creer', 'mot', null, $qui, $opt)); } @@ -69,19 +80,24 @@ function autoriser_motcreer_menu_dist($faire, $type, $id, $qui, $opt){ * qui gère cela par type d'auteur (administrateur, rédacteurs, visiteurs) * * @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 + * @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_groupemots_voir_dist($faire, $type, $id, $qui, $opt) { - if ($qui['statut'] == '0minirezo') return true; - $acces = sql_fetsel("comite,forum", "spip_groupes_mots", "id_groupe=".intval($id)); - if ($qui['statut']=='1comite' AND ($acces['comite'] == 'oui' OR $acces['forum'] == 'oui')) + if ($qui['statut'] == '0minirezo') { return true; - if ($qui['statut']=='6forum' AND $acces['forum'] == 'oui') + } + $acces = sql_fetsel('comite,forum', 'spip_groupes_mots', 'id_groupe=' . intval($id)); + if ($qui['statut'] == '1comite' and ($acces['comite'] == 'oui' or $acces['forum'] == 'oui')) { return true; + } + if ($qui['statut'] == '6forum' and $acces['forum'] == 'oui') { + return true; + } + return false; } @@ -89,16 +105,16 @@ function autoriser_groupemots_voir_dist($faire, $type, $id, $qui, $opt) { * Autorisation de créer un groupe de mots * * @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 + * @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_groupemots_creer_dist($faire, $type, $id, $qui, $opt) { return $qui['statut'] == '0minirezo' - AND !$qui['restreint']; + and !$qui['restreint']; } @@ -108,16 +124,16 @@ function autoriser_groupemots_creer_dist($faire, $type, $id, $qui, $opt) { * Cela inclut également l'ajout ou modification des mots lui appartenant * * @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 + * @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_groupemots_modifier_dist($faire, $type, $id, $qui, $opt) { return - $qui['statut'] == '0minirezo' AND !$qui['restreint'] - AND autoriser('voir','groupemots',$id,$qui,$opt); + $qui['statut'] == '0minirezo' and !$qui['restreint'] + and autoriser('voir', 'groupemots', $id, $qui, $opt); } @@ -125,40 +141,42 @@ function autoriser_groupemots_modifier_dist($faire, $type, $id, $qui, $opt) { * Autorisation de supprimer un groupe de mots * * @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 + * @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_groupemots_supprimer_dist($faire, $type, $id, $qui, $opt) { - if (!autoriser('modifier','groupemots',$id)) + if (!autoriser('modifier', 'groupemots', $id)) { return false; - return sql_countsel('spip_mots','id_groupe='.intval($id))?false:true; + } + + return sql_countsel('spip_mots', 'id_groupe=' . intval($id)) ? false : true; } /** * Autorisation de modifier un mot * * Il faut avoir le droit de modifier le groupe parent - * + * * Note : passer l'id_groupe dans le tableau d'option * permet de gagner du CPU et une requête SQL (c'est ce que fait l'espace privé) - * + * * @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 + * @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_mot_modifier_dist($faire, $type, $id, $qui, $opt) { return - isset($opt['id_groupe']) - ? autoriser('modifier', 'groupemots', $opt['id_groupe'], $qui, $opt) - : ( - $t = sql_getfetsel("id_groupe", "spip_mots", "id_mot=".intval($id)) - AND autoriser('modifier', 'groupemots', $t, $qui, $opt) + isset($opt['id_groupe']) + ? autoriser('modifier', 'groupemots', $opt['id_groupe'], $qui, $opt) + : ( + $t = sql_getfetsel('id_groupe', 'spip_mots', 'id_mot=' . intval($id)) + and autoriser('modifier', 'groupemots', $t, $qui, $opt) ); } @@ -170,34 +188,39 @@ function autoriser_mot_modifier_dist($faire, $type, $id, $qui, $opt) { * * Si l'id_groupe est passé en option, * vérifie également que l'auteur a le droit de modifier ce groupe - * + * * @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 + * @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_mot_creer_dist($faire, $type, $id, $qui, $opt) { - if ($qui['statut'] != '0minirezo' OR $qui['restreint']) + if ($qui['statut'] != '0minirezo' or $qui['restreint']) { return false; + } $where = ''; // si objet associe, verifier qu'un groupe peut etre associe // a la table correspondante if (isset($opt['associer_objet']) - AND $associer_objet = $opt['associer_objet']){ - if (!preg_match(',^(\w+)\|[0-9]+$,',$associer_objet,$match)) + and $associer_objet = $opt['associer_objet'] + ) { + if (!preg_match(',^(\w+)\|[0-9]+$,', $associer_objet, $match)) { return false; - $where = "tables_liees REGEXP '(^|,)".addslashes(table_objet($match[1]))."($|,)'"; + } + $where = "tables_liees REGEXP '(^|,)" . addslashes(table_objet($match[1])) . "($|,)'"; } // si pas de groupe de mot qui colle, pas le droit - if (!sql_countsel('spip_groupes_mots',$where)) + if (!sql_countsel('spip_groupes_mots', $where)) { return false; + } + + if (isset($opt['id_groupe'])) { + return autoriser('modifier', 'groupemots', $opt['id_groupe']); + } - if (isset($opt['id_groupe'])) - return autoriser('modifier','groupemots',$opt['id_groupe']); - return true; } @@ -207,17 +230,18 @@ function autoriser_mot_creer_dist($faire, $type, $id, $qui, $opt) { * Par défaut : pouvoir créer un mot dans le groupe * * @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 + * @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_mot_supprimer_dist($faire, $type, $id, $qui, $opt) { // On cherche le groupe du mot - $id_groupe = $opt['id_groupe'] ? $opt['id_groupe'] : sql_getfetsel('id_groupe', 'spip_mots', 'id_mot = '.intval($id)); - - return autoriser('creer', 'mot', $id, $qui, array('id_groupe'=>$id_groupe)); + $id_groupe = $opt['id_groupe'] ? + $opt['id_groupe'] : sql_getfetsel('id_groupe', 'spip_mots', 'id_mot = ' . intval($id)); + + return autoriser('creer', 'mot', $id, $qui, array('id_groupe' => $id_groupe)); } @@ -230,72 +254,80 @@ function autoriser_mot_supprimer_dist($faire, $type, $id, $qui, $opt) { * On interdit aussi d'associer des mots à d'autres mots ou groupes de mots * * @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 + * @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_associermots_dist($faire,$type,$id,$qui,$opt){ +function autoriser_associermots_dist($faire, $type, $id, $qui, $opt) { // jamais de mots sur des mots - if ($type=='mot') return false; - if ($type=='groupemots') return false; - $droit = substr($qui['statut'],1); + if ($type == 'mot') { + return false; + } + if ($type == 'groupemots') { + return false; + } + $droit = substr($qui['statut'], 1); - if (!isset($opt['groupe_champs']) AND !isset($opt['id_groupe'])){ + if (!isset($opt['groupe_champs']) and !isset($opt['id_groupe'])) { // chercher si un groupe est autorise pour mon statut // et pour la table demandee $table = addslashes(table_objet($type)); - if (sql_countsel('spip_groupes_mots',"tables_liees REGEXP '(^|,)$table($|,)' AND ".addslashes($droit)."='oui'")) + if (sql_countsel('spip_groupes_mots', "tables_liees REGEXP '(^|,)$table($|,)' AND " . addslashes($droit) . "='oui'")) { return true; - } - // cas d'un groupe en particulier + } + } // cas d'un groupe en particulier else { // on recupere les champs du groupe s'ils ne sont pas passes en opt - if (!isset($opt['groupe_champs'])){ - if (!$id_groupe = $opt['id_groupe']) + if (!isset($opt['groupe_champs'])) { + if (!$id_groupe = $opt['id_groupe']) { return false; + } include_spip('base/abstract_sql'); - $opt['groupe_champs'] = sql_fetsel("*", "spip_groupes_mots", "id_groupe=".intval($id_groupe)); + $opt['groupe_champs'] = sql_fetsel('*', 'spip_groupes_mots', 'id_groupe=' . intval($id_groupe)); } $droit = $opt['groupe_champs'][$droit]; return ($droit == 'oui') - AND + and // on verifie que l'objet demande est bien dans les tables liees in_array( table_objet($type), explode(',', $opt['groupe_champs']['tables_liees']) ); } + return false; } - /** * Autorisation d'affichier le sélecteur de mots - * + * * Vérifie le droit d'afficher le selecteur de mots * pour un groupe de mot donné, dans un objet / id_objet donné * * C'est fonction de la configuration du groupe de mots. * * @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 + * @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_groupemots_afficherselecteurmots_dist($faire,$type,$id,$qui,$opt){ +function autoriser_groupemots_afficherselecteurmots_dist($faire, $type, $id, $qui, $opt) { if (!isset($opt['minirezo']) || !isset($opt['comite'])) { $i = sql_fetsel( array('minirezo', 'comite'), 'spip_groupes_mots', - 'id_groupe=' . intval($id)); - if (!$i) return false; # le groupe n'existe pas + 'id_groupe=' . intval($id) + ); + if (!$i) { + return false; + } # le groupe n'existe pas $admin = $i['minirezo']; $redac = $i['comite']; } else { @@ -303,8 +335,12 @@ function autoriser_groupemots_afficherselecteurmots_dist($faire,$type,$id,$qui,$ $redac = $opt['comite']; } $statuts = array(); - if ($admin == 'oui') $statuts[] = '0minirezo'; - if ($redac == 'oui') $statuts[] = '1comite'; + if ($admin == 'oui') { + $statuts[] = '0minirezo'; + } + if ($redac == 'oui') { + $statuts[] = '1comite'; + } return in_array($qui['statut'], $statuts); } @@ -312,30 +348,28 @@ function autoriser_groupemots_afficherselecteurmots_dist($faire,$type,$id,$qui,$ /** * Autorisation d'affichier le formulaire de logo - * + * * @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 + * @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_mot_iconifier_dist($faire,$type,$id,$qui,$opt){ - return (($qui['statut'] == '0minirezo') AND !$qui['restreint']); +function autoriser_mot_iconifier_dist($faire, $type, $id, $qui, $opt) { + return (($qui['statut'] == '0minirezo') and !$qui['restreint']); } /** * Autorisation d'affichier le formulaire de logo - * + * * @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 + * @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_groupemots_iconifier_dist($faire,$type,$id,$qui,$opt){ - return (($qui['statut'] == '0minirezo') AND !$qui['restreint']); +function autoriser_groupemots_iconifier_dist($faire, $type, $id, $qui, $opt) { + return (($qui['statut'] == '0minirezo') and !$qui['restreint']); } - -?>