Report adapté de r20552, r20555 et r20560 : deleguer dans tous les cas l'autorisation de s'inscrire à autoriser("inscrireauteur",$mode,$id),

Mais si aucun mode n'est fourni sur le #FORMULAIRE_INSCRIPTION, on choisit le meilleur possible parmi 1comite ou 6forum.
svn/attic/tags/spip-3.0.9/20570
Cerdic 10 years ago
parent 70d84ebdcf
commit 4cd548b24e

@ -241,39 +241,16 @@ function creer_pass_pour_auteur($id_auteur) {
}
/**
* Un filtre pour determiner le nom du mode des librement inscrits,
* a l'aide de la liste globale des statuts (tableau mode => nom du mode)
* Utile pour le formulaire d'inscription.
* Si un mode est fourni, verifier que la configuration l'accepte.
* Si mode inconnu laisser faire, c'est une extension non std
* mais verifier que la syntaxe est compatible avec SQL
* @deprecated a virer en 3.1 car pas utilise dans les squelettes
*
* http://doc.spip.org/@tester_config
* voir l'autorisation correspondante
*
* @param string $statut_tmp
* @return string
*/
function tester_statut_inscription($statut_tmp){
$s = array_search($statut_tmp, $GLOBALS['liste_des_statuts']);
switch ($s) {
case 'info_redacteurs' :
return (($GLOBALS['meta']['accepter_inscriptions'] == 'oui') ? $statut_tmp : '');
case 'info_visiteurs' :
return (($GLOBALS['meta']['accepter_visiteurs'] == 'oui' OR $GLOBALS['meta']['forums_publics'] == 'abo') ? $statut_tmp : '');
default:
if ($statut_tmp AND $statut_tmp == addslashes($statut_tmp)){
include_spip("inc/autoriser");
return autoriser("inscrireauteur",$statut_tmp)?$statut_tmp:"";
}
if ($GLOBALS['meta']["accepter_inscriptions"] == "oui")
return $GLOBALS['liste_des_statuts']['info_redacteurs'];
if ($GLOBALS['meta']["accepter_visiteurs"] == "oui")
return $GLOBALS['liste_des_statuts']['info_visiteurs'];
return '';
}
include_spip('inc/autoriser');
return autoriser('inscrireauteur', $statut_tmp) ? $statut_tmp : '';
}
@ -292,8 +269,10 @@ function confirmer_statut_inscription($auteur){
// securite
if ($auteur['statut'] != 'nouveau') return $auteur;
if (!($s = tester_statut_inscription($auteur['prefs'])))
include_spip('inc/autoriser');
if (!autoriser('inscrireauteur', $auteur['prefs']))
return $auteur;
$s = $auteur['prefs'];
include_spip('inc/autoriser');
// accorder l'autorisation de modif du statut auteur

@ -41,8 +41,17 @@ function balise_FORMULAIRE_INSCRIPTION ($p) {
*/
function balise_FORMULAIRE_INSCRIPTION_stat($args, $context_compil) {
list($mode, $id) = $args;
$mode = tester_config($id, $mode);
return $mode ? array($mode, $id) : '';
if (!$mode){
if ($GLOBALS['meta']["accepter_inscriptions"] == "oui")
$mode = "1comite";
elseif (($GLOBALS['meta']['accepter_visiteurs'] == 'oui' OR $GLOBALS['meta']['forums_publics'] == 'abo')){
$mode = "6forum";
}
}
include_spip('inc/autoriser');
return autoriser('inscrireauteur', $mode, $id) ? array($mode, $id) : '';
}
?>

@ -1268,4 +1268,36 @@ function verifier_table_non_vide($table='spip_rubriques') {
$done[$table] = sql_countsel($table)>0;
return $done[$table];
}
/**
* Une autorisation determiner la possibilite de s'inscire pour un statut et un id_rubrique,
* a l'aide de la liste globale des statuts (tableau mode => nom du mode)
* Utile pour le formulaire d'inscription.
* Par defaut, seuls 6forum et 1comite possibles, les autres sont en false
* pour un nouveau mode il suffit de definir l'autorisation specifique
*
* @param $faire
* @param $quoi
* statut auteur demande
* @param $id
* id_rubrique eventuel (pas utilise ici, utilise dans des usages persos)
* @param $qui
* @param $opt
* @return bool
*/
function autoriser_inscrireauteur_dist($faire, $quoi, $id, $qui, $opt){
$s = array_search($quoi, $GLOBALS['liste_des_statuts']);
switch ($s) {
case 'info_redacteurs' :
return ($GLOBALS['meta']['accepter_inscriptions'] == 'oui');
case 'info_visiteurs' :
return ($GLOBALS['meta']['accepter_visiteurs'] == 'oui' OR $GLOBALS['meta']['forums_publics'] == 'abo');
}
return false;
}
?>

@ -1572,13 +1572,16 @@ function vider_attribut ($balise, $attribut) {
/**
* Un filtre pour determiner le nom du satut des inscrits
* @param void $dummy
*
* @deprecated a virer en 3.1
*
* @param void|int $id
* @param string $mode
* @return string
*/
function tester_config($dummy, $mode='') {
include_spip('action/inscrire_auteur');
return tester_statut_inscription($mode);
function tester_config($id, $mode='') {
include_spip('inc/autoriser');
return autoriser('inscrireauteur', $mode, $id) ? $mode : '';
}
//

Loading…
Cancel
Save