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_lire($faire, $type, $id, $qui, $opt) { // Si l'article fait partie de la rubrique "Espace membre", il faut être au moins rédacteur ("membre"). $id_membre = lire_config('balint/id_mots_espace_membre'); $id_mot = sql_getfetsel('id_mot','spip_mots','id_groupe='. $id_membre); if (in_array($id_mot, $opt)){ return in_array($qui['statut'], array('0minirezo','1comite')); } // Sinon il faut être admin 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_article_rediger($faire, $type, $id, $qui, $opt) { // Si le membre est rédacteur, il doit être animateur d'au moins un groupe if ($qui['statut']=="1comite"){ $id_rub = lire_config('balint/id_rub_groupes'); $T_id_groupes = sql_allfetsel('id_article','spip_articles','id_secteur=' . $id_rub); foreach($T_id_groupes as $id_groupe){ if (in_array($qui['id_auteur'],auteurs_objet('article',$id_groupe['id_article']))){ return true; } } } // Sinon il faut être admin 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')); } function autoriser_sujet_editer($faire, $type, $id, $qui, $opt) { // Seul les admins et l'auteur peuvent le supprimer if(in_array($qui['id_auteur'],auteurs_objet('article',$id))){ return true; } else{ return in_array($qui['statut'],array('0minirezo')); } } function autoriser_forum_voir($faire, $type, $id, $qui, $opt) { $id_auteur = $qui['id_auteur']; // Il faut être au moins membre if ($qui['statut']=='1comite'){ // si le forum est privé, il faut être membre du bureau if ($id==lire_config('balint/id_rub_forum_prive')){ if (sql_getfetsel('bureau','spip_auteurs',"id_auteur=$id_auteur")=='on'){ return true; } else{ return false; } } else{ return true; } } // Les admins ont accès à tout if ($qui['statut']=='0minirezo'){ return true; } }