$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']); }