Unverified Commit 6526e85d authored by IKEDA Soji's avatar IKEDA Soji Committed by GitHub
Browse files

Merge branch 'sympa-6.2' into issue-893

parents d1bfa2fe d2a043dd
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
......@@ -1443,7 +1443,7 @@ msgid ""
msgstr ""
"En aquesta pàgina, també podeu veure <strong>informació sobre l'última "
"actualització de la llista</strong> (qui la va fer i quan), així com el "
"<strong>nombre de canvis de configuració</strong> des què es va crea la "
"<strong>nombre de canvis de configuració</strong> des que es va crear la "
"llista."
#: default/web_tt2/help_admin-editlist-sending.tt2:2
......@@ -2010,7 +2010,7 @@ msgid ""
msgstr ""
"<strong>Sense importar la data i el moment de la revisió, la data i el "
"moment d'enviament del missatge no canvia</strong>. De manera que si la "
"distribució del missatge s'aprova amb molt d'endarreriment, és pot rebre un "
"distribució del missatge s'aprova amb molt d'endarreriment, es pot rebre un "
"missatge del dia 1 de gener el dia 31 de desembre!"
#: default/web_tt2/help_admin-moderate.tt2:29
......@@ -2243,7 +2243,7 @@ msgstr "informació legal i polítiques de privacitat;"
#: default/web_tt2/help_admin-rules.tt2:35
msgid "sanctions applying to those who would not respect the list charter;"
msgstr ""
"les sancions per qui no respecte les normes de funcionament de la llista;"
"les sancions per qui no respecta les normes de funcionament de la llista;"
#: default/web_tt2/help_admin-rules.tt2:38
#: default/web_tt2/help_introduction-roles.tt2:88
......@@ -2417,8 +2417,8 @@ msgid ""
"subscribe themselves to the list."
msgstr ""
"Atenció: ser propietari o moderador de la llista no significa que esteu "
"automàticament subscrits a la llista. De maner que els propietaris i "
"moderadors es tenen que subscriure a la llista."
"automàticament subscrits a la llista. De manera que els propietaris i "
"moderadors s'han de subscriure a la llista."
#: default/web_tt2/help_admin-users.tt2:25
msgid ""
......@@ -4085,8 +4085,8 @@ msgid ""
"A list can have <strong>one or several moderators</strong>; generally, the "
"list owner is also a moderator."
msgstr ""
"Una llista por tenir <strong>un o diversos moderadors</strong>; en general, "
"el propietari de la llista també és un moderador."
"Una llista pot tenir <strong>un o diversos moderadors</strong>; en general, "
"el propietari de la llista també n'és un moderador."
#: default/web_tt2/help_introduction-roles.tt2:104
msgid "This concerns only moderated lists."
......@@ -4209,7 +4209,7 @@ msgid ""
"According to the way they work, we can distinguish between <strong>two types "
"of lists</strong>:"
msgstr ""
"Segons la manera en què funcionen, es pode distingir <strong>dos tipus de "
"Segons la manera en què funcionen, es poden distingir <strong>dos tipus de "
"llistes</strong>:"
#: default/web_tt2/help_introduction.tt2:58
......@@ -4399,8 +4399,8 @@ msgid ""
"a document if it has been published by someone else."
msgstr ""
"<strong>També podeu canviar el propietari del document</strong>, per exemple "
"per a permetre que una altra persona l'edite en línia o per a indicar "
"l'autor real del document si la publicat una altra persona."
"per a permetre que una altra persona l'editi en línia o per a indicar "
"l'autor real del document si l'ha publicat una altra persona."
#: default/web_tt2/help_shared-edit.tt2:53
msgid "Editing folders, files or bookmarks"
......@@ -4557,7 +4557,7 @@ msgid ""
msgstr ""
"Si sou una de les persones que pot organitzar la llista i crear fitxers i "
"carpetes, <strong>tingueu visió de futur: penseu que la llista es pot "
"desenvolupar de manera considerable i que potser es mantingui activa durant "
"desenvolupar de manera considerable i que potser es manté activa durant "
"molts anys</strong>."
#: default/web_tt2/help_shared-hint.tt2:7
......
......@@ -1227,17 +1227,16 @@ msgstr ""
"entre ellos."
#: default/web_tt2/help_admin-editlist-command.tt2:123
#, fuzzy
msgid ""
"If you want to limit access to these functions according to other criteria, "
"you should ask the listmasters: they may be able to create a new option "
"matching your needs (example: Allow subscription only by members of a user "
"group, of an Internet domain, etc.)."
msgstr ""
"Si quieres limitar la visibilidad de la lista según algún criterio deberías "
"preguntar al listmaster: él puede crear nuevas opciones que se ajusten a tus "
"necesidades (por ejemplo: lista visible sólo para miembros de un grupo de "
"usuarios, de un dominio de internet, etc.)."
"Si quieres limitar el acceso a estas funciones según otro criterio deberías "
"preguntar al listmaster: él puede crear nuevas opciones que se ajusten a tss "
"necesidades (por ejemplo: Permitir la suscripción solo a miembros de un "
"grupo de usuarios, de un dominio de Internet, etc.)"
#: default/web_tt2/help_admin-editlist-command.tt2:128
msgid ""
......
......@@ -792,7 +792,7 @@ msgstr "les abonnés seulement (private);"
#: default/web_tt2/help_admin-editlist-archives.tt2:12
#: default/web_tt2/help_admin-editlist-command.tt2:95
msgid "public (public)."
msgstr "public (public)."
msgstr "publique (public)."
#: default/web_tt2/help_admin-editlist-archives.tt2:15
msgid ""
......@@ -943,11 +943,11 @@ msgid ""
"addresses temporarily unavailable when messages were sent, inbox quota "
"exceeded, etc."
msgstr ""
"Les <strong>rejets (bounces)</strong> représentent les <strong>abonnés en "
"erreur</strong>, c'est-à-dire les abonnés qui ne reçoivent pas les messages "
"envoyés sur la liste. Les raisons peuvent être variées : adresses qui "
"n'existent plus, adresses momentanément indisponibles au moment de l'envoi "
"de messages, capacité de la boîte de réception atteinte, etc."
"\"<strong>Les rejets</strong>\" représentent les <strong>abonnés dont "
"l'adresse est erronnée</strong>, c'est-à-dire les abonnés qui ne reçoivent "
"pas les messages envoyés sur la liste. Les raisons peuvent être variées : "
"adresses qui n'existent plus, adresses momentanément indisponibles au moment "
"de l'envoi de messages, capacité de la boîte de réception atteinte, etc."
#: default/web_tt2/help_admin-editlist-bounces.tt2:7
msgid "The '<strong>Bounce management</strong>' section defines two rates:"
......@@ -1115,8 +1115,8 @@ msgstr "demande d'abonnement avec signature par certificat (smime);"
#: default/web_tt2/help_admin-editlist-command.tt2:49
msgid "requires S/MIME signed or owner approval (smimeorowner)."
msgstr ""
"ouvert à tous après autorisation du proprio ou avec signature par certificat "
"(smimeorowner)."
"ouvert à tous après autorisation du propriétaire ou avec signature par "
"certificat S/MIME (smimeorowner)."
#: default/web_tt2/help_admin-editlist-command.tt2:53
msgid ""
......@@ -1150,7 +1150,7 @@ msgstr "authentification demandée, notification du propriétaire (auth_notify);
#: default/web_tt2/help_admin-editlist-command.tt2:66
msgid "impossible (closed);"
msgstr "impossible (closed);"
msgstr "impossible (fermé);"
#: default/web_tt2/help_admin-editlist-command.tt2:69
msgid "open (open) - <em>default option</em>;"
......@@ -1338,7 +1338,7 @@ msgid ""
"<strong>BE CAREFUL: do not forget to click on the 'Apply modifications' "
"button</strong> on bottom of page to save all your changes."
msgstr ""
"<strong>ATTENTION : n'oubliez pas de cliquer sur 'Mise à jour'</strong> au "
"<strong>ATTENTION: n'oubliez pas de cliquer sur \"Mise à jour\"</strong> au "
"bas de la page pour enregistrer tous vos changements."
#: default/web_tt2/help_admin-editlist-description.tt2:2
......@@ -1520,8 +1520,9 @@ msgid ""
"With the '<strong>All</strong>' value, the reply is sent to both the "
"<strong>message sender</strong> AND the <strong>list</strong>."
msgstr ""
"Lorsque la valeur choisie est '<strong>All</strong>', la réponse est envoyée "
"à l'<strong>expéditeur du message</strong> ET à la <strong>liste</strong>."
"Lorsque la valeur choisie est \"<strong>Répondre à tous</strong>\", la "
"réponse est envoyée à l'<strong>expéditeur du message</strong> ET à la "
"<strong>liste</strong>."
#: default/web_tt2/help_admin-editlist-sending.tt2:20
msgid ""
......@@ -4971,8 +4972,8 @@ msgid ""
msgstr ""
"<strong>Important : les seuls fichiers qui peuvent être créés en ligne sur "
"les listes sont des fichiers en texte brut. Vous ne pourrez en aucun cas "
"créer de document bureautique (.DOC, .XLS, .PPT, .RTF, .SXW, etc.), .PDF, "
"image, etc</strong>"
"créer de document bureautique (.DOC, .XLS, .PPT, .RTF, .ODT, etc.), .PDF, "
"des image, etc</strong>"
#: default/web_tt2/help_shared-upload.tt2:114
msgid ""
......@@ -5636,8 +5637,8 @@ msgstr ""
"En France, conformément à la loi relative à l'informatique, aux fichiers et "
"aux libertés du 6 janvier 1978, vous disposez d'un droit d'accès, de "
"modification, de rectification et de suppression des données vous "
"concernant. Pour l'exercer, <a href=\"faq-user-contact.html\">contactez les "
"propriétaires de la liste</a>."
"concernant. Pour en savoir plus, <a href=\"faq-user-contact.html\">contactez "
"les propriétaires de la liste</a>."
#: default/web_tt2/help_user-rules.tt2:48
msgid ""
......@@ -6181,11 +6182,10 @@ msgid ""
"reactivate it at any time by visiting the \"Manage your subscription\" "
"section."
msgstr ""
"<strong> Suspension</strong>: ce mode vous permet de suspendre votre "
"abonnement à une ou plusieurs listes pour une période déterminée ou non. "
"Contrairement au désabonnement, vous pouvez garder une trace de votre "
"abonnement et de le réactiver à tout moment en visitant la page \"Gérer "
"votre abonnement\"."
"<strong>En pause</strong>: ce mode vous permet de suspendre votre abonnement "
"à une ou plusieurs listes pour une période déterminée ou non. Contrairement "
"au désabonnement, vous pouvez garder une trace de votre abonnement et de le "
"réactiver à tout moment en visitant la page \"Gérer votre abonnement\"."
#: default/web_tt2/help_user-suboptions.tt2:57
msgid "<strong>Choose a visibility option</strong>:"
......
This diff is collapsed.
......@@ -8,8 +8,8 @@
# Copyright (c) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
# 2006, 2007, 2008, 2009, 2010, 2011 Comite Reseau des Universites
# Copyright (c) 2011, 2012, 2013, 2014, 2015, 2016, 2017 GIP RENATER
# Copyright 2017, 2018, 2019 The Sympa Community. See the AUTHORS.md file at
# the top-level directory of this distribution and at
# Copyright 2017, 2018, 2019, 2020 The Sympa Community. See the AUTHORS.md
# file at the top-level directory of this distribution and at
# <https://github.com/sympa-community/sympa.git>.
#
# This program is free software; you can redistribute it and/or modify
......@@ -112,11 +112,6 @@ my %old_params = (
'dkim_header_list' => '',
);
## These parameters now have a hard-coded value
## Customized value can be accessed though as %Ignored_Conf
my %Ignored_Conf;
my %hardcoded_params = (filesystem_encoding => 'utf8');
my %trusted_applications = (
'trusted_application' => {
'occurrence' => '0-n',
......@@ -211,11 +206,6 @@ sub load {
}
);
# Some parameter values are hardcoded. In that case, ignore what was
# set in the config file and simply use the hardcoded value.
%Ignored_Conf =
%{_set_hardcoded_parameter_values({'config_hash' => \%Conf,})};
_set_listmasters_entry({'config_hash' => \%Conf, 'main_config' => 1});
## Some parameters must have a value specifically defined in the
......@@ -2057,18 +2047,8 @@ sub _load_robot_secondary_config_files {
## For parameters whose value is hard_coded, as per %hardcoded_params, set the
## parameter value to the hardcoded value, whatever is defined in the config.
## Returns a ref to a hash containing the ignored values.
sub _set_hardcoded_parameter_values {
my $param = shift;
my %ignored_values;
## Some parameter values are hardcoded. In that case, ignore what was set
## in the config file and simply use the hardcoded value.
foreach my $p (keys %hardcoded_params) {
$ignored_values{$p} = $param->{'config_hash'}{$p}
if (defined $param->{'config_hash'}{$p});
$param->{'config_hash'}{$p} = $hardcoded_params{$p};
}
return \%ignored_values;
}
# Deprecated.
#sub _set_hardcoded_parameter_values;
sub _detect_missing_mandatory_parameters {
my $param = shift;
......
......@@ -92,6 +92,7 @@ nobase_modules_DATA = \
Sympa/Request/Handler/decl.pm \
Sympa/Request/Handler/del.pm \
Sympa/Request/Handler/distribute.pm \
Sympa/Request/Handler/family_signoff.pm \
Sympa/Request/Handler/finished.pm \
Sympa/Request/Handler/get.pm \
Sympa/Request/Handler/global_remind.pm \
......@@ -188,6 +189,7 @@ nobase_modules_DATA = \
Sympa/Upgrade.pm \
Sympa/User.pm \
Sympa/WWW/Auth.pm \
Sympa/WWW/FastCGI.pm \
Sympa/WWW/Marc.pm \
Sympa/WWW/Marc/Search.pm \
Sympa/WWW/Report.pm \
......
......@@ -8,8 +8,8 @@
# Copyright (c) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
# 2006, 2007, 2008, 2009, 2010, 2011 Comite Reseau des Universites
# Copyright (c) 2011, 2012, 2013, 2014, 2015, 2016, 2017 GIP RENATER
# Copyright 2017, 2018, 2019 The Sympa Community. See the AUTHORS.md file at
# the top-level directory of this distribution and at
# Copyright 2017, 2018, 2019, 2020 The Sympa Community. See the AUTHORS.md
# file at the top-level directory of this distribution and at
# <https://github.com/sympa-community/sympa.git>.
#
# This program is free software; you can redistribute it and/or modify
......@@ -45,8 +45,6 @@ use Sympa::Language;
use Sympa::Log;
use Sympa::Regexps;
use Sympa::Spindle::ProcessTemplate;
use Sympa::Ticket;
use Sympa::Tools::Data;
use Sympa::Tools::Text;
my $log = Sympa::Log->instance;
......@@ -176,7 +174,7 @@ sub _get_search_path {
}
} elsif (ref $that and ref $that eq 'Sympa::Family') {
my $path_family;
@search_path = _get_search_path($that->{'robot'}, @_);
@search_path = _get_search_path($that->{'domain'}, @_);
if ($subdir) {
$path_family = $that->{'dir'} . '/' . $subdir;
......@@ -436,61 +434,30 @@ sub send_notify_to_listmaster {
$data->{'type'} = $operation;
$data->{'auto_submitted'} = 'auto-generated';
my @tosend;
if ($operation eq 'no_db' or $operation eq 'db_restored') {
$data->{'db_name'} = Conf::get_robot_conf($robot_id, 'db_name');
}
if ( $operation eq 'request_list_creation'
or $operation eq 'request_list_renaming') {
foreach my $email (@listmasters) {
my $cdata = Sympa::Tools::Data::dup_var($data);
$cdata->{'one_time_ticket'} =
Sympa::Ticket::create($email, $robot_id, 'get_pending_lists',
$cdata->{'ip'});
push @tosend,
{
email => $email,
data => $cdata
};
}
} else {
push @tosend,
{
email => [@listmasters],
data => $data
};
}
# When operation is either missing_dbd, no_db or db_restored,
# skip DB access because DB is not accessible.
my $spindle = Sympa::Spindle::ProcessTemplate->new(
context => $that,
template => 'listmaster_notification',
rcpt => [@listmasters],
data => $data,
foreach my $ts (@tosend) {
my $email = $ts->{'email'};
# Skip DB access because DB is not accessible
$email = [$email]
if not ref $email
and ($operation eq 'missing_dbd'
or $operation eq 'no_db'
or $operation eq 'db_restored');
my $spindle = Sympa::Spindle::ProcessTemplate->new(
context => $that,
template => 'listmaster_notification',
rcpt => $email,
data => $ts->{'data'},
splicing_to => ['Sympa::Spindle::ToListmaster'],
);
unless ($spindle
and $spindle->spin
and $spindle->{finish} eq 'success') {
$log->syslog(
'notice',
'Unable to send template "listmaster_notification" to %s listmaster %s',
$robot_id,
$ts->{'email'}
) unless $operation eq 'logs_failed';
return undef;
}
splicing_to => ['Sympa::Spindle::ToListmaster'],
);
unless ($spindle
and $spindle->spin
and $spindle->{finish} eq 'success') {
$log->syslog(
'notice',
'Unable to send template "listmaster_notification" to %s listmaster %s',
$robot_id,
join(', ', @listmasters),
) unless $operation eq 'logs_failed';
return undef;
}
return 1;
......@@ -522,14 +489,6 @@ sub send_notify_to_user {
$param->{'to'} = $user;
$param->{'type'} = $operation;
if ($operation eq 'ticket_to_family_signoff') {
$param->{one_time_ticket} =
Sympa::Ticket::create($user, $robot_id,
'family_signoff/' . $param->{family} . '/' . $user,
$param->{ip})
or return undef;
}
unless (Sympa::send_file($that, 'user_notification', $user, $param)) {
$log->syslog('notice',
'Unable to send template "user_notification" to %s', $user);
......@@ -657,7 +616,7 @@ sub get_address {
}
} elsif (ref $that eq 'Sympa::Family') {
# robot address, for convenience.
return Sympa::get_address($that->{'robot'}, $type);
return Sympa::get_address($that->{'domain'}, $type);
} else {
unless ($type) {
return Conf::get_robot_conf($that, 'email') . '@'
......@@ -695,7 +654,7 @@ sub get_listmasters_email {
if (ref $that eq 'Sympa::List') {
$listmaster = Conf::get_robot_conf($that->{'domain'}, 'listmaster');
} elsif (ref $that eq 'Sympa::Family') {
$listmaster = Conf::get_robot_conf($that->{'robot'}, 'listmaster');
$listmaster = Conf::get_robot_conf($that->{'domain'}, 'listmaster');
} elsif (not ref($that) and $that and $that ne '*') {
$listmaster = Conf::get_robot_conf($that, 'listmaster');
} else {
......
......@@ -8,8 +8,8 @@
# Copyright (c) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
# 2006, 2007, 2008, 2009, 2010, 2011 Comite Reseau des Universites
# Copyright (c) 2011, 2012, 2013, 2014, 2015, 2016, 2017 GIP RENATER
# Copyright 2017, 2018, 2019 The Sympa Community. See the AUTHORS.md file at
# the top-level directory of this distribution and at
# Copyright 2017, 2018, 2019, 2020 The Sympa Community. See the AUTHORS.md
# file at the top-level directory of this distribution and at
# <https://github.com/sympa-community/sympa.git>.
#
# This program is free software; you can redistribute it and/or modify
......@@ -969,6 +969,12 @@ our @params = (
'message_header,message_header.mime,message_footer,message_footer.mime,info',
'vhost' => '1',
},
{ 'name' => 'family_signoff',
'gettext_id' => 'Global unsubscription',
'default' => 'auth', # Compat. to <=6.2.52
'scenario' => 1,
'vhost' => '1',
},
{'gettext_id' => 'Tag based spam filtering'},
......
......@@ -52,7 +52,7 @@ sub new {
$fh = $file;
} else {
unless (open $fh, '<', $file) {
$log->syslog('err', 'Can\'t open %s: $m', $file);
$log->syslog('err', 'Can\'t open %s: %s', $file, $ERRNO);
return bless {} => $class;
}
}
......
......@@ -48,7 +48,7 @@ sub _open {
sub _next {
my $self = shift;
my $email_re = Sympa::Regexps::email();
my $email_re = Sympa::Regexps::addrspec();
my $lines = 0;
my $found = 0;
......
......@@ -52,7 +52,6 @@ sub _open {
}
my $fh = $self->SUPER::_open(use_cert => 1);
#FIXME: Log subject, issuer and cipher of peer.
return $fh;
}
......
......@@ -97,12 +97,27 @@ sub _open {
$Conf::Conf{'tmpdir'},
$list->get_id, $PID, (int rand 9999);
my $res = $ua->request($req, $self->{_tmpfile});
$log->syslog('debug', 'REQUEST: %s', $req->as_string);
$log->syslog('debug', 'RESPONSE:%s', $res->as_string);
unless ($res->is_success) {
$log->syslog('err', 'Unable to fetch data source %s: %s',
$self, $res->message);
return undef;
}
if ($self->{url} =~ /\Ahttps:/i and $options{use_cert}) {
# Log subject, issuer and cipher of peer.
$log->syslog(
'info',
'%s: Peer %s. Certificate subject "%s" issuer "%s". Cipher used "%s"',
$self,
$res->header('Client-Peer'),
$res->header('Client-SSL-Cert-Subject'),
$res->header('Client-SSL-Cert-Issuer'),
$res->header('Client-SSL-Cipher')
);
}
my $fh;
unless (open $fh, '<', $self->{_tmpfile}) {
$log->syslog('err', 'Cannot open file %s: %m', $self->{_tmpfile});
......
......@@ -8,8 +8,8 @@
# Copyright (c) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
# 2006, 2007, 2008, 2009, 2010, 2011 Comite Reseau des Universites
# Copyright (c) 2011, 2012, 2013, 2014, 2015, 2016, 2017 GIP RENATER
# Copyright 2017, 2018, 2019 The Sympa Community. See the AUTHORS.md file
# at the top-level directory of this distribution and at
# Copyright 2017, 2018, 2019, 2020 The Sympa Community. See the AUTHORS.md
# file at the top-level directory of this distribution and at
# <https://github.com/sympa-community/sympa.git>.
#
# This program is free software; you can redistribute it and/or modify
......@@ -103,7 +103,7 @@ sub new {
$self = $list_of_families{$robot}{$name};
###########
# the robot can be different from latest new ...
if ($robot eq $self->{'robot'}) {
if ($robot eq $self->{'domain'}) {
return $self;
} else {
$self = {};
......@@ -123,9 +123,10 @@ sub new {
## Lowercase the family name.
$name =~ tr/A-Z/a-z/;
$self->{'name'} = $name;
$self->{'name'} = $name;
$self->{'domain'} = $robot;
$self->{'robot'} = $robot;
$self->{'robot'} = $self->{'domain'}; # Compat.<=6.2.52
## Adding configuration related to automatic lists.
my $all_families_config =
......@@ -354,10 +355,11 @@ sub get_uncompellable_param {
# finally in the distrib.
# OUT : -directory name or undef if the directory does not exist
sub _get_directory {
my $self = shift;
my $robot = $self->{'robot'};
$log->syslog('debug3', '(%s)', @_);
my $self = shift;
my $name = $self->{'name'};
$log->syslog('debug3', '(%s)', $name);
my $robot = $self->{'domain'};
my @try = @{Sympa::get_search_path($robot, subdir => 'families')};
......@@ -471,7 +473,7 @@ sub _load_param_constraint_conf {
}
}
if ($error) {
Sympa::send_notify_to_listmaster($self->{'robot'},
Sympa::send_notify_to_listmaster($self->{'domain'},
'param_constraint_conf_error', [$file]);
}
close FILE;
......@@ -501,7 +503,7 @@ sub insert_delete_exclusion {
my $action = shift;
my $name = $self->{'name'};
my $robot_id = $self->{'robot'};
my $robot_id = $self->{'domain'};
if ($action eq 'insert') {
##FXIME: Check if user belong to any list of family
......@@ -539,8 +541,8 @@ sub insert_delete_exclusion {
sub get_id {
my $self = shift;
return '' unless $self->{'name'} and $self->{'robot'};
return $self->{'name'} . '@' . $self->{'robot'};
return '' unless $self->{'name'} and $self->{'domain'};
return sprintf '%s@%s', $self->{'name'}, $self->{'domain'};
}
1;
......@@ -757,9 +759,12 @@ Gets unique identifier of instance.
The name of family.
=item {robot}
=item {domain}
The mail domain (a.k.a. "robot") the family belongs to.
The robot the family belongs to.
B<Note>:
On Sympa 6.2.52 or earlier, C<{robot}> was used.
=item {dir}
......
This diff is collapsed.
This diff is collapsed.
......@@ -8,8 +8,8 @@
# Copyright (c) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
# 2006, 2007, 2008, 2009, 2010, 2011 Comite Reseau des Universites
# Copyright (c) 2011, 2012, 2013, 2014, 2015, 2016, 2017 GIP RENATER
# Copyright 2018 The Sympa Community. See the AUTHORS.md file at the
# top-level directory of this distribution and at
# Copyright 2018, 2020 The Sympa Community. See the AUTHORS.md
# file at the top-level directory of this distribution and at
# <https://github.com/sympa-community/sympa.git>.
#
# This program is free software; you can redistribute it and/or modify
......@@ -65,11 +65,15 @@ sub new {
die 'Parameter $tpl is not defined'
unless defined $tpl and length $tpl;
my ($list, $robot_id, $domain);
my ($list, $family, $robot_id, $domain);
if (ref $that eq 'Sympa::List') {
$robot_id = $that->{'domain'};
$list = $that;
$domain = $that->{'domain'};
} elsif (ref $that eq 'Sympa::Family') {
$robot_id = $that->{'domain'};
$family = $that;
$domain = $that->{'domain'};
} elsif ($that and $that ne '*') {
$robot_id = $that;
$domain = Conf::get_robot_conf($that, 'domain');
......@@ -170,6 +174,8 @@ sub new {
# Compat. < 6.2.32
$data->{'list'}{'domain'} = $list->{'domain'};
$data->{'list'}{'host