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.