n false; } else { if ($id == $qui['id_auteur']) { if ($opt['statut']) return false; else return true; } else if ($id_auteur = intval($id)) { $t = sql_fetsel("statut", "spip_auteurs", "id_auteur=$id_auteur"); if ($t AND $t['statut'] != '0minirezo') return true; else return false; } // id = 0 => creation else return true; } } // Un admin complet fait ce qu'elle veut // sauf se degrader if ($id == $qui['id_auteur'] && $opt['statut']) return false; else return true; } // // Peut-on faire de l'upload ftp ? // par defaut, les administrateurs // // http://doc.spip.org/@autoriser_chargerftp_dist function autoriser_chargerftp_dist($faire, $type, $id, $qui, $opt) { return $qui['statut'] == '0minirezo'; } // // Peut-on voir un document dans _DIR_IMG ? // Tout le monde (y compris les visiteurs non enregistres), puisque par // defaut ce repertoire n'est pas protege ; si une extension comme // acces_restreint a positionne creer_htaccess, on regarde // si le document est lie a un element publie // (TODO: a revoir car c'est dommage de sortir de l'API true/false) // // http://doc.spip.org/@autoriser_document_voir_dist function autoriser_document_voir_dist($faire, $type, $id, $qui, $opt) { if (!isset($GLOBALS['meta']["creer_htaccess"]) OR $GLOBALS['meta']["creer_htaccess"] != 'oui') return true; if ((!is_numeric($id)) OR $id < 0) return false; if (in_array($qui['statut'], array('0minirezo', '1comite'))) return 'htaccess'; if ($liens = sql_allfetsel('objet,id_objet', 'spip_documents_liens', 'id_document='.intval($id))) foreach ($liens as $l) { $table_sql = table_objet_sql($l['objet']); $id_table = id_table_objet($l['objet']); if (sql_countsel($table_sql, "$id_table = ". intval($l['id_objet']) . (in_array($l['objet'], array('article', 'rubrique', 'breve')) ? " AND statut = 'publie'" : '') ) > 0) return 'htaccess'; } return false; } // Qui peut activer le debugueur ? // http://doc.spip.org/@autoriser_debug_dist function autoriser_debug_dist($faire, $type, $id, $qui, $opt) { return $qui['statut'] == '0minirezo'; } // Renvoie la liste des rubriques liees a cet auteur, independamment de son // statut (pour les admins restreints, il faut donc aussi verifier statut) // Memorise le resultat dans un tableau statique indexe par les id_auteur. // On peut reinitialiser un element en passant un 2e argument non vide // http://doc.spip.org/@liste_rubriques_auteur function liste_rubriques_auteur($id_auteur, $raz=false) { static $restreint = array(); if (!$id_auteur = intval($id_auteur)) return array(); if ($raz) unset($restreint[$id_auteur]); elseif (isset($restreint[$id_auteur])) return $restreint[$id_auteur]; $where = "id_auteur=$id_auteur AND id_rubrique!=0"; $table = "spip_auteurs_rubriques"; // Recurrence sur les sous-rubriques $rubriques = array(); while (true) { $q = sql_select("id_rubrique", $table, $where); $r = array(); while ($row = sql_fetch($q)) { $id_rubrique = $row['id_rubrique']; $r[]= $rubriques[$id_rubrique] = $id_rubrique; } // Fin de la recurrence : $rubriques est complet if (!$r) break; $table = 'spip_rubriques'; $where = sql_in('id_parent', $r) . ' AND ' . sql_in('id_rubrique', $r, 'NOT'); } // Affecter l'auteur session le cas echeant if ($GLOBALS['visiteur_session']['id_auteur'] == $id_auteur) $GLOBALS['visiteur_session']['restreint'] = $rubriques; return $restreint[$id_auteur] = $rubriques; } // Autoriser a modifier l'URL d'un objet (cf. action=redirect) // http://doc.spip.org/@autoriser_modifierurl_dist function autoriser_modifierurl_dist($faire, $type, $id, $qui, $opt) { return autoriser('modifier', $type, $id, $qui, $opt); } // http://doc.spip.org/@autoriser_rubrique_editermots_dist function autoriser_rubrique_editermots_dist($faire,$quoi,$id,$qui,$opts){ // par defaut, on verifie juste que le champ de droit passe en opts colle bien $droit = substr($GLOBALS['visiteur_session']['statut'],1); if (!isset($opts['groupe_champs'][$droit])){ if (!$id_groupe = $opts['id_groupe']) return false; include_spip('base/abstract_sql'); $droit = sql_getfetsel($droit, "spip_groupes_mots", "id_groupe=".intval($id_groupe)); } else $droit = $opts['groupe_champs'][$droit]; if ($droit=='oui') return true; return false; } // http://doc.spip.org/@autoriser_article_editermots_dist function autoriser_article_editermots_dist($faire,$quoi,$id,$qui,$opts){ return autoriser_rubrique_editermots_dist($faire,'rubrique',0,$qui,$opts); } // http://doc.spip.org/@autoriser_breve_editermots_dist function autoriser_breve_editermots_dist($faire,$quoi,$id,$qui,$opts){ return autoriser_rubrique_editermots_dist($faire,'rubrique',0,$qui,$opts); } // http://doc.spip.org/@autoriser_syndic_editermots_dist function autoriser_syndic_editermots_dist($faire,$quoi,$id,$qui,$opts){ return autoriser_rubrique_editermots_dist($faire,'rubrique',0,$qui,$opts); } // Deux fonctions sans surprise pour permettre les tests // Dire toujours OK // http://doc.spip.org/@autoriser_ok_dist function autoriser_ok_dist($faire, $type, $id, $qui, $opt) { return true; } // Dire toujours niet // http://doc.spip.org/@autoriser_niet_dist function autoriser_niet_dist($faire, $type, $id, $qui, $opt) { return false; } ?>
Si votre navigateur n'est pas redirigé, cliquez ici pour continuer.