You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
rubrique_a_linscription/autoriser_rubrique_a_linscr...

118 lines
3.1 KiB
PHP

<?php
function rubrique_a_linscription_autoriser(){}
// Selon la config, autoriser ou pas l'inscription direct d'administrateur. Attention ca suppose qu'on utilise pas de formulaire d'inscription autre que ceux qui font des admins restreints, sinon ca devient dangereux
function autoriser_0minirezo_inscrireauteur($faire, $quoi, $id, $qui, $opt){
$rubrique_a_linscription_statut = lire_config("rubrique_a_linscription/statut");
return $rubrique_a_linscription_statut == $quoi;
}
function autoriser_rubrique_a_linscription($faire, $type, $id, $qui, $opt){
if ($faire == 'configurer'){
include_spip('inc/autoriser');
return autoriser_configurer_dist($faire,$type,$id,$qui,$opt);
}
}
function autoriser_rubrique_creerarticledans($faire, $type, $id, $qui, $opt) {
include_spip('inc/autoriser');
$espace_prive_creer = lire_config('rubrique_a_linscription/espace_prive_creer');
$resultat = sql_fetsel(
'rubrique_a_linscription',
'spip_auteurs',
'id_auteur='.$qui['id_auteur']
);
if (!$espace_prive_creer
or is_null($resultat['rubrique_a_linscription'])
) {
return $id AND autoriser('voir','rubrique',$id);
} else {
if ($resultat['rubrique_a_linscription'] == $id){
return true;
} else{
return false;
}
}
}
function autoriser_voir($faire, $type, $id, $qui, $opt) {
include_spip('inc/autoriser');
$espace_prive_voir = lire_config('rubrique_a_linscription/espace_prive_voir');
$resultat = sql_fetsel(
'rubrique_a_linscription,statut',
'spip_auteurs',
'id_auteur='.$qui['id_auteur']);
if (!$espace_prive_voir or is_null($resultat['rubrique_a_linscription'])){
return autoriser_voir_dist($faire, $type, $id, $qui, $opt);
}
$liste_rubriques_auteur = remonter_hierarchie_rubriques(liste_rubriques_auteur($qui['id_auteur']));
if ($type == 'document') {
return autoriser_document_voir_dist($faire, $type, $id, $qui, $opt);
}
if ($type == 'groupemots') {
$acces = sql_fetsel(
"comite,forum",
"spip_groupes_mots",
"id_groupe=".intval($id)
);
if ($qui['statut'] == '1comite'
and (
$acces['comite'] == 'oui'
or $acces['forum'] == 'oui')
) {
return true;
}
if ($qui['statut']=='6forum' and $acces['forum'] == 'oui') {
return true;
}
return false;
}
if ($type == 'rubrique'){
return in_array($id,$liste_rubriques_auteur);
}
if ($type == 'article' or $type == 'breve'){
$rubrique_objet = sql_getfetsel(
'id_rubrique',
'spip_'.$type.'s',
'id_'.$type.'='.$id);
if (in_array($rubrique_objet,$liste_rubriques_auteur)){
return autoriser_voir_dist($faire, $type, $id, $qui, $opt);
} else {
return false;
}
}
return autoriser_voir_dist($faire, $type, $id, $qui, $opt);
}
function remonter_hierarchie_rubriques($rubriques){
$toutes_rubriques = array();
include_spip('base/abstract');
foreach ($rubriques as $id_rubrique){
$toutes_rubriques[] = $id_rubrique;
while ($id_rubrique = sql_getfetsel(
"id_parent",
"spip_rubriques",
"id_rubrique=" . $id_rubrique,
"",
"",
"",
"", $connect)
) {
settype($id_rubrique,'int');
$toutes_rubriques[] = $id_rubrique;
}
}
return $toutes_rubriques;
}