$id_groupe)); } /** * Autorisation d'associer des mots à un objet * * Si groupe_champ ou id_groupe est fourni dans le tableau d'options, * on regarde les droits pour ce groupe en particulier * * 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 * @return bool true s'il a le droit, false sinon */ 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 (!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'")) return true; } // 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']) return false; include_spip('base/abstract_sql'); $opt['groupe_champs'] = sql_fetsel("*", "spip_groupes_mots", "id_groupe=".intval($id_groupe)); } $droit = $opt['groupe_champs'][$droit]; return ($droit == 'oui') 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 * @return bool true s'il a le droit, false sinon */ 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 $admin = $i['minirezo']; $redac = $i['comite']; } else { $admin = $opt['minirezo']; $redac = $opt['comite']; } $statuts = array(); if ($admin == 'oui') $statuts[] = '0minirezo'; if ($redac == 'oui') $statuts[] = '1comite'; return in_array($qui['statut'], $statuts); } /** * 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 * @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']); } /** * 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 * @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']); } ?>