non if (!in_array($qui['statut'], array('0minirezo', '1comite', '6forum'))) { return false; } // Un redacteur peut modifier ses propres donnees mais ni son login/email // ni son statut (qui sont le cas echeant passes comme option) if (in_array($qui['statut'], array('1comite','6forum'))) { if (!empty($opt['webmestre'])) { return false; } elseif ( !empty($opt['statut']) or !empty($opt['restreintes']) or !empty($opt['email']) ) { return false; } elseif ($id == $qui['id_auteur']) { return true; } else { return false; } } // Un admin restreint peut modifier/creer un auteur non-admin mais il // n'a le droit ni de le promouvoir admin, ni de changer les rubriques if ($qui['restreint']) { if (isset($opt['webmestre']) and $opt['webmestre']) { return false; } elseif ((isset($opt['statut']) and ($opt['statut'] == '0minirezo')) or (isset($opt['restreintes']) and $opt['restreintes']) ) { return false; } else { if ($id == $qui['id_auteur']) { if (isset($opt['statut']) and $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'il veut // sauf se degrader if ($id == $qui['id_auteur'] && (isset($opt['statut']) and $opt['statut'])) { return false; } elseif (isset($opt['webmestre']) and $opt['webmestre'] and (defined('_ID_WEBMESTRES') or !autoriser('webmestre'))) { // et toucher au statut webmestre si il ne l'est pas lui meme // ou si les webmestres sont fixes par constante (securite) return false; } // et modifier un webmestre si il ne l'est pas lui meme elseif (intval($id) and autoriser('webmestre', '', 0, $id) and !autoriser('webmestre')) { return false; } else { return true; } } function autoriser_article_modifier($faire, $type, $id, $qui, $opt) { if(in_array($qui['id_auteur'],auteurs_objet('article',$id))){ return true; } else{ return in_array($qui['statut'], array('0minirezo')); } } function autoriser_sujet_creer($faire, $type, $id, $qui, $opt) { return in_array($qui['statut'], array('0minirezo','1comite','6forum')); } function autoriser_sujet_supprimer($faire, $type, $id, $qui, $opt) { // Si le sujet a eu au moins une réponse, on ne peut plus le supprimer if (sql_fetsel('*','spip_forum',"id_objet=$id AND objet='article'")){ return false; } // Sinon, seul les admins et l'auteur peuvent le supprimer else{ if(in_array($qui['id_auteur'],auteurs_objet('article',$id))){ return true; } else{ return in_array($qui['statut'], array('0minirezo')); } } }