Bonjour
Le 29/03/11 16:11, Sylvain Costard a écrit :
adresse@cachée">
Bonjour,
Je fais face à une problème de poids que j'avais partiellement
résolu il y a quelques temps mais qui revient à la surface à la
mode serpent de mer :
A l'Université, nous avons deux noms de domaines : uhb.fr et le
nouveau avec lequel veulent communiquer les politiques :
univ-rennes2.fr (vivement le univ-rennes.fr :-P). J'ai réussi par
le biais de CustomContitions à faire en sorte qu'un utilisateur
puisse envoyer un mail avec un des deux noms de domaines sans
distinction mais je bute sur l'interface elle même de sympa :
Les personnes se connectant sur le serveur de listes arrivent avec
un mail en uhb.fr venant de l'annuaire LDAP. Si le propriétaire
d'une liste les a abonné en univ-rennes2.fr, cette liste; non
seulement n'apparait pas dans la liste auxquelles la personne est
abonnée dans le menu de gauche, mais ne peut non plus afficher les
document partagées d'une de ces listes.
Ton problème est compliqué. Il y a pas de solution correcte avec
cette version de Sympa. Toutefois, avec un peu de boulot tu peux
surement t'en tirer. Il y a 2 problèmes distincts :
- le pb de droit
- le pb de la liste des listes à laquelle la personne est
abonnées.
Pour les droits, tu as trouvé une solution avec un scénario custom.
Tu peux décliner sur d'autre scénario comme par exemple celui qui
donne l'accès au documents partagés mais cela restera difficile à
gérer car tu dois intervenir pour chaque scénario ou on test
"is_subscriber" et remplacer celle-ci par ta custom condition.
Pour la liste des abonnements : tu peux patcher List::get_which_db .
Là tu peux ajouter un traitement d'exception si $email =~/\uhb\.fr$/
Si tu le fait, dit nous s'il y a des effets de bords. Je t'accorde
bien volontiers que ce n'est pas trop confortable de devoir patcher
; c'est pour cela que j'ai commencer par parler d'un peu de "boulot"
;-)
Serge Aumont
adresse@cachée"> J'ai
bien modifié le scénario info.private de cette facon :
title.gettext restricted to subscribers
CustomCondition::is_subscriber([listname],[sender])
smtp,md5,smime -> do_it
is_listmaster([sender]) smtp,md5,smime ->
do_it
CustomCondition::is_owner([listname],[sender])
smtp,md5,smime -> do_it
CustomCondition::is_editor([listname],[sender])
smtp,md5,smime -> do_it
true() smtp,md5,smime ->
reject(reason='info_subscriber')
mais cela n'aide pas. Ais-je une solution pour ce problème ?
Pour info voici le code d'une de mes customconditions :
#!/usr/bin/perl
package CustomCondition::is_subscriber;
use strict;
use List;
use Log;
sub verify {
my @args = @_;
foreach my $arg (@args) {
do_log ('info', 'arg: '. $arg);
}
my ($list_name,$sender) = @args;
my $sender_uhb = $sender;
my $sender_univ = $sender;
$sender_uhb =~ s/univ-rennes2\.fr/uhb\.fr/i;
$sender_univ =~ s/uhb\.fr/univ-rennes2\.fr/i;
do_log ('info', 'sender: '. $sender);
my ($list);
$list = new List ($args[0]);
if ($list->is_user($sender_univ)) {
return 1;
}
if ($list->is_user($sender_uhb)) {
return 1;
} else {
return -1;
}
}
## Packages must return true.
1;
Merci pour votre aide
--
Sylvain Costard
Université Rennes 2
Cri - Cellule Infra/Serveurs
Tel : 02.99.14.13.47
|