30
28
<BODY TEXT="#000000" BGCOLOR="#ffffff">
31
29
<!--Navigation Panel-->
32
<A NAME="tex2html1186"
30
<A NAME="tex2html1310"
33
31
HREF="node21.html">
34
32
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
35
<A NAME="tex2html1180"
33
<A NAME="tex2html1304"
37
35
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
38
<A NAME="tex2html1174"
36
<A NAME="tex2html1298"
39
37
HREF="node19.html">
40
38
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
41
<A NAME="tex2html1182"
39
<A NAME="tex2html1306"
43
41
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
44
<A NAME="tex2html1184"
42
<A NAME="tex2html1308"
46
44
<IMG WIDTH="43" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="index" SRC="index.png"></A>
48
<B> Next:</B> <A NAME="tex2html1187"
49
HREF="node21.html">20. Sympa with S/MIME and HTTPS</A>
50
<B> Up:</B> <A NAME="tex2html1181"
46
<B> Next:</B> <A NAME="tex2html1311"
47
HREF="node21.html">20. List configuration parameters</A>
48
<B> Up:</B> <A NAME="tex2html1305"
51
49
HREF="sympa.html">Sympa Mailing Lists Management Software version</A>
52
<B> Previous:</B> <A NAME="tex2html1175"
53
HREF="node19.html">18. Antivirus</A>
54
  <B> <A NAME="tex2html1183"
50
<B> Previous:</B> <A NAME="tex2html1299"
51
HREF="node19.html">18. List creation, edition and removal</A>
52
<B> <A NAME="tex2html1307"
55
53
HREF="node1.html">Contents</A></B>
56
  <B> <A NAME="tex2html1185"
57
HREF="node23.html">Index</A></B>
54
<B> <A NAME="tex2html1309"
55
HREF="node30.html">Index</A></B>
60
58
<!--End of Navigation Panel-->
59
<!--Table of Child-Links-->
60
<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
63
<LI><A NAME="tex2html1312"
64
HREF="node20.html#SECTION002010000000000000000">19.1 Family concept</A>
65
<LI><A NAME="tex2html1313"
66
HREF="node20.html#SECTION002020000000000000000">19.2 Using family</A>
68
<LI><A NAME="tex2html1314"
69
HREF="node20.html#SECTION002021000000000000000">19.2.1 Definition</A>
70
<LI><A NAME="tex2html1315"
71
HREF="node20.html#SECTION002022000000000000000">19.2.2 Instantiation</A>
72
<LI><A NAME="tex2html1316"
73
HREF="node20.html#SECTION002023000000000000000">19.2.3 Modification</A>
74
<LI><A NAME="tex2html1317"
75
HREF="node20.html#SECTION002024000000000000000">19.2.4 Closure</A>
76
<LI><A NAME="tex2html1318"
77
HREF="node20.html#SECTION002025000000000000000">19.2.5 Adding one list</A>
78
<LI><A NAME="tex2html1319"
79
HREF="node20.html#SECTION002026000000000000000">19.2.6 Removing one list</A>
80
<LI><A NAME="tex2html1320"
81
HREF="node20.html#SECTION002027000000000000000">19.2.7 Modifying one list</A>
82
<LI><A NAME="tex2html1321"
83
HREF="node20.html#SECTION002028000000000000000">19.2.8 List parameters edition in a family context</A>
85
<!--End of Table of Child-Links-->
62
88
<H1><A NAME="SECTION002000000000000000000"></A>
65
19. Using <I>Sympa</I> with LDAP
69
<A NAME="8251"></A>LDAP is a client-server protocol for accessing a directory service. Sympa
70
provide various features based on access to one or more LDAP directories :
75
<LI>authentication using LDAP directory instead of sympa internal storage of password
77
see <A HREF="node10.html#auth-conf">9.5</A>, page <A HREF="node10.html#auth-conf"><IMG ALIGN="BOTTOM" BORDER="1" ALT="[*]" SRC="crossref.png"></A>
81
<LI>named filters used in authorization scenario condition
83
see <A HREF="node11.html#named-filters">10.2</A>, page <A HREF="node11.html#named-filters"><IMG ALIGN="BOTTOM" BORDER="1" ALT="[*]" SRC="crossref.png"></A>
87
<LI>LDAP extraction of list subscribers (see <A HREF="node16.html#par-user-data-source">15.2.1</A>)
89
<A NAME="lists-families"></A> <A NAME="2721"></A>
95
A list can have from three parameters to many tens of them. Some listmasters need to create
96
a set of lists that have the same profile. In order to simplify the apprehension of these parameters,
97
list families define a lists typology.
98
Families provide a new level for defaults : in the past, defaults in Sympa were global and
99
most sites using Sympa needed multiple defaults for different group of lists.
100
Moreover families allow listmaster to delegate a part of configuration list to owners, in a controlled way
101
according to family properties.
102
Distribution will provide defaults families.
106
<H1><A NAME="SECTION002010000000000000000"></A>
107
<A NAME="family-concept"></A>
113
A family provides a model for all of its lists. It is specified by the following characteristics :
118
<LI>a list creation template providing a common profile for each list configuration file.
120
<LI>an degree of independence between the lists and the family : list parameters edition rights and
121
constraints on these parameters can be <I>free</I> (no constraint), <I>controlled</I> (a set of
122
available values is defined for these parameters) or <I>fixed</I> (the value for the parameter is imposed by
123
the family). That prevents lists from diverging from the original and it allows list owner customizations in
126
<LI>a filiation kept between lists and family all along the list life : family modifications
127
are applied on lists while keeping listowners customizations.
134
Here is a list of operation performed on a family :
139
<LI>definition : definition of the list creation template, the degree of independence and family customizations.
141
<LI>instantiation : lists creation or modifications of existing lists while respecting family properties.
142
The set of data defining the lists is an XML document.
144
<LI>modification : modification of family properties. The modification is effective at the next instantiation time, that have consequences on every list.
146
<LI>closure : closure of each list.
148
<LI>adding one list to a family.
150
<LI>closing one family list.
152
<LI>modifying one family list.
160
<H1><A NAME="SECTION002020000000000000000"></A>
161
<A NAME="using-family"></A>
168
<H2><A NAME="SECTION002021000000000000000">
169
19.2.1 Definition</A>
171
Families can be defined at the robot level, at the site level or on the distribution level
172
(where default families are provided).
173
So, you have to create a sub directory named after the family's name in a <A NAME="10356"></A><TT>families</TT> directory :
176
<I>Examples:</I> <PRE>
177
/home/sympa/etc/families/my_family
178
/home/sympa/etc/my_robot/families/my_family
180
In this directory you must provide these files :
183
<LI><A NAME="10359"></A><TT>config.tt2</TT> (mandatory)
185
<LI><A NAME="10362"></A><TT>param_constraint.conf</TT> (mandatory)
187
<LI><A NAME="10365"></A><TT>edit_list.conf</TT>
189
<LI>customizable files
195
<H3><A NAME="SECTION002021100000000000000"></A>
196
<A NAME="using-family-config-tpl"></A>
200
This is a list creation template, this file is mandatory. It provides default values for parameters.
201
This file is an almost complete list configuration, with a number of missing fields
202
(such as owner e-mail) to be replaced by data obtained at the time of family instantiation.
203
It is easy to create new list templates by modifying existing ones. See <A HREF="node18.html#list-tpl">17.8</A>, page <A HREF="node18.html#list-tpl"><IMG ALIGN="BOTTOM" BORDER="1" ALT="[*]" SRC="crossref.png"></A>
204
and <A HREF="node17.html#tpl-format">16.1</A>, page <A HREF="node17.html#tpl-format"><IMG ALIGN="BOTTOM" BORDER="1" ALT="[*]" SRC="crossref.png"></A>.
207
<I>Example:</I> <PRE>
208
subject [% subject %]
218
send privateoreditorkey
223
subscribe open_notify
226
d_edit [% shared_edit %]
227
d_read [% shared_read %]
231
[% FOREACH o = owner %]
241
[% FOREACH m = moderator %]
250
db_type [% sql.type %]
254
db_name [% sql.name %]
255
sql_query [% sql.query %]
263
<H3><A NAME="SECTION002021200000000000000"></A>
266
19.2.1.2 param_constraint.conf
268
This file is obligatory. It defines constraints on parameters. There are three kind of constraints :
271
<LI><I>free</I> parameters : no constraint on these parameters,
272
they are not written in the <A NAME="10368"></A><TT>param_constraint.conf</TT> file.
274
<LI><I>controlled</I> parameters : these parameters must select their values
275
in a set of available values indicated in the <A NAME="10371"></A><TT>param_constraint.conf</TT> file.
277
<LI><I>fixed</I> parameters : these parameters must have the imposed value indicated
278
in the <A NAME="10374"></A><TT>param_constraint.conf</TT> file.
283
The parameters constraints will be checked at every list loading.
286
<B>WARNING</B> : Some parameters cannot be constrained, they are : <A NAME="10377"></A><TT>msg_topic.keywords</TT>
287
(see <A HREF="node21.html#par-msg-topic">20.4.13</A>, page <A HREF="node21.html#par-msg-topic"><IMG ALIGN="BOTTOM" BORDER="1" ALT="[*]" SRC="crossref.png"></A>),<A NAME="10380"></A><TT>owner_include.source_parameter</TT>
288
(see <A HREF="node21.html#par-owner-include">20.1.6</A>, page <A HREF="node21.html#par-owner-include"><IMG ALIGN="BOTTOM" BORDER="1" ALT="[*]" SRC="crossref.png"></A>), <A NAME="10383"></A><TT>editor_include.source_parameter</TT> (see <A HREF="node21.html#par-editor-include">20.1.2</A>, page <A HREF="node21.html#par-editor-include"><IMG ALIGN="BOTTOM" BORDER="1" ALT="[*]" SRC="crossref.png"></A>). About <A NAME="10386"></A><TT>digest</TT> parameter (see <A HREF="node21.html#par-digest">20.4.9</A>, page <A HREF="node21.html#par-digest"><IMG ALIGN="BOTTOM" BORDER="1" ALT="[*]" SRC="crossref.png"></A>) , just days can be constrained.
291
<I>Example:</I> <PRE>
293
archive.period days,week,month
294
visibility conceal,noconceal
295
shared_doc.d_read public
296
shared_doc.d_edit editor
301
<H3><A NAME="SECTION002021300000000000000">
302
19.2.1.3 edit_list.conf</A>
304
This is an optional file. It defines which parameters/files are editable by
305
owners. See <A HREF="node19.html#list-edition">18.4.4</A>, page <A HREF="node19.html#list-edition"><IMG ALIGN="BOTTOM" BORDER="1" ALT="[*]" SRC="crossref.png"></A>.
306
If the family does not have this file, <I>Sympa</I> will look for
307
the one defined on robot level, server site level or distribution level.
308
(This file already exists without family context)
310
Notes that by default parameter family_name is not writable, you should not change
315
<H3><A NAME="SECTION002021400000000000000">
316
19.2.1.4 customizable files</A>
318
Families provides a new level of customization for scenarios (see <A HREF="node14.html#scenarios">13</A>,
319
page <A HREF="node14.html#scenarios"><IMG ALIGN="BOTTOM" BORDER="1" ALT="[*]" SRC="crossref.png"></A>), templates for service messages (see <A HREF="node17.html#site-tpl">16.2</A>,
320
page <A HREF="node17.html#site-tpl"><IMG ALIGN="BOTTOM" BORDER="1" ALT="[*]" SRC="crossref.png"></A>) and templates for web pages (see <A HREF="node17.html#web-tpl">16.3</A> ,
321
page <A HREF="node17.html#web-tpl"><IMG ALIGN="BOTTOM" BORDER="1" ALT="[*]" SRC="crossref.png"></A>). <I>Sympa</I> looks for these files in the following
322
level order: list, family, robot, server site or distribution.
326
<H2><A NAME="SECTION002022000000000000000"></A>
327
<A NAME="family-instantiation"></A>
333
Instantiation permits to generate lists.You must provide an XML file that is
334
composed of lists description, the root element is <I>family</I> and is only
335
composed of <I>list</I> elements. List elements are described in section
336
<A HREF="node19.html#xml-file-format">18.1.2</A>, page <A HREF="node19.html#xml-file-format"><IMG ALIGN="BOTTOM" BORDER="1" ALT="[*]" SRC="crossref.png"></A>. Each list is described
337
by the set of values for affectation list parameters.
340
Here is an sample command to instantiate a family :<PRE>
341
sympa.pl --instantiate\_family my_family --robot \samplerobot --input\_file /path/to/my\_file.xml
343
This means lists that belong to family <A NAME="10389"></A><TT>my_family</TT> will be created under the robot
344
<A NAME="10392"></A><TT>my_robot</TT> and these lists are described in the file <A NAME="10395"></A><TT>my_file.xml</TT>. Sympa will split this file
345
into several xml files describing lists. Each list XML file is put in each list directory.
348
<I>Example:</I> <PRE>
349
<?xml version="1.0" ?>
352
<listname>liste1</listname>
353
<subject>a list example</subject>
355
<status>open</status>
356
<shared_edit>editor</shared_edit>
357
<shared_read>private</shared_read>
358
<language>fr</language>
359
<owner multiple="1">
360
<email>serge.aumont@cru.fr</email>
361
<gecos>C.R.U.</gecos>
363
<owner multiple="1">
364
<email>olivier.salaun@cru.fr</email>
366
<owner_include multiple="1">
367
<source>my_file</source>
368
</owner_include>
370
<type>oracle</type>
371
<host>sqlserv.admin.univ-x.fr</host>
372
<user>stdutilisateur</user>
373
<pwd>monsecret</pwd>
374
<name>les_etudiants</name>
375
<query>SELECT DISTINCT email FROM etudiant</query>
379
<listname>liste2</listname>
380
<subject>a list example</subject>
382
<status>open</status>
383
<shared_edit>editor</shared_edit>
384
<shared_read>private</shared_read>
385
<language>fr</language>
386
<owner multiple="1">
387
<email>serge.aumont@cru.fr</email>
388
<gecos>C.R.U.</gecos>
390
<owner multiple="1">
391
<email>olivier.salaun@cru.fr</email>
393
<owner_include multiple="1">
394
<source>my_file</source>
395
</owner_include>
397
<type>oracle</type>
398
<host>sqlserv.admin.univ-x.fr</host>
399
<user>stdutilisateur</user>
400
<pwd>monsecret</pwd>
401
<name>les_etudiants</name>
402
<query>SELECT DISTINCT email FROM etudiant</query>
410
Each instantiation describes lists. Compared to the previous instantiation, there are three cases :
413
<LI>lists creation : new lists described by the new instantiation
415
<LI>lists modification : lists already existing but possibly changed because of changed parameters values in
416
the XML file or because of changed family's properties.
418
<LI>lists removal : lists nomore described by the new instantiation. In this case, the listmaster must
419
valid his choice on command line. If the list is removed, it is set in status <A NAME="10398"></A><TT>family_closed</TT>, or if the
420
list is recovered, the list XML file from the previous instantiation is got back to go on as a list modification then.
427
After list creation or modification, parameters constraints are checked :
430
<LI><I>fixed</I> parameter : the value must be the one imposed.
432
<LI><I>controlled</I> parameter : the value must be one of the set of available values.
434
<LI><I>free</I> parameter : there is no checking.
444
In case of modification (see diagram), allowed customizations can be preserved :
447
<LI>(1) : for every modified parameters (via Web interface), noted in the <A NAME="10401"></A><TT>config_changes</TT>
448
file, values can be collected in the old list configuration file, according to new family properties :
451
<LI><I>fixed</I> parameter : the value is not collected.
453
<LI><I>controlled</I> parameter : the value is collected only if constraints are respected.
455
<LI><I>free</I> parameter : the value is collected.
460
<LI>(2) : a new list configuration file is made with the new family properties
462
<LI>(3) : collected values are set in the new list configuration file.
472
<LI>For each list problem (as family file error, error parameter constraint, error instanciation ...),
473
the list is set in status <A NAME="10404"></A><TT>error_config</TT> and the listmaster is notified. He will have to do necessary to put list in use.
475
<LI>For each list closing in family context, the list is set in status <A NAME="10407"></A><TT>family_closed</TT> and the owner is notified.
477
<LI>For each overwritten list customization, the owner is notified.
483
<H2><A NAME="SECTION002023000000000000000">
484
19.2.3 Modification</A>
486
To modify a family, you have to edit family files manually. The modification will be effective while the next instanciation.
487
<BR><B>WARNING</B>: The family modification must be done just before an instantiation. If it is not, alive lists wouldn't respect
488
new family properties and they would be set in status error_config immediately.
492
<H2><A NAME="SECTION002024000000000000000">
497
<A NAME="family-closure"></A>
499
Closes every list (installed under the indicated robot)
500
of this family : lists status are set to <A NAME="10410"></A><TT>family_closed</TT>, aliases are
501
removed and subscribers are removed from DB. (a dump is created in the list
502
directory to allow restoration of the list).
505
Here is a sample command to close a family :
507
sympa.pl --close_family my_family --robot \samplerobot
512
<H2><A NAME="SECTION002025000000000000000">
513
19.2.5 Adding one list</A>
517
<A NAME="family-add-list"></A>
519
Adds a list to the family without instantiate all the family. The list is created
520
as if it was created during an instantiation, under the indicated robot. The XML file
521
describes the list and the root element is <A NAME="10413"></A><TT><list></TT>. List elements are described in section
522
<A HREF="node19.html#list-creation-sympa">18.3</A>, page <A HREF="node19.html#list-creation-sympa"><IMG ALIGN="BOTTOM" BORDER="1" ALT="[*]" SRC="crossref.png"></A>.
525
Here is a sample command to add a list to a family :
527
sympa.pl --add\_list my\_family --robot \samplerobot --input\_file /path/to/my\_file.xml
532
<H2><A NAME="SECTION002026000000000000000">
533
19.2.6 Removing one list</A>
537
Closes the list installed under the indicated robot : the list status is set to
538
<A NAME="10416"></A><TT>family_closed</TT>, aliases are
539
removed and subscribers are removed from DB. (a dump is created in the list
540
directory to allow restoring the list).
543
Here is a sample command to close a list family (same as an orphan list) :
545
sympa.pl --close_list my_list@\samplerobot
550
<H2><A NAME="SECTION002027000000000000000"></A>
551
<A NAME="family-modify-list"></A>
553
19.2.7 Modifying one list
557
Modifies a family list without instantiating the whole family. The list (installed under the indicated robot)
558
is modified as if it was modified during an instantiation. The XML file
559
describes the list and the root element is <A NAME="10419"></A><TT><list></TT>. List elements are described in section
560
<A HREF="node19.html#list-creation-sympa">18.3</A>, page <A HREF="node19.html#list-creation-sympa"><IMG ALIGN="BOTTOM" BORDER="1" ALT="[*]" SRC="crossref.png"></A>.
563
Here is a sample command to modify a list to a family :
565
sympa.pl --modify\_list my\_family --robot \samplerobot --input\_file /path/to/my\_file.xml
570
<H2><A NAME="SECTION002028000000000000000"></A>
571
<A NAME="list-param-edit-family"></A>
573
19.2.8 List parameters edition in a family context
575
According to file <A NAME="10422"></A><TT>edit_list.conf</TT>, edition rights are controlled.
576
See <A HREF="node19.html#list-edition">18.4.4</A>, page <A HREF="node19.html#list-edition"><IMG ALIGN="BOTTOM" BORDER="1" ALT="[*]" SRC="crossref.png"></A>. But in a family context, constraints parameters are
577
added to edition right as it is summarized in this array :
583
Note : In order to preserve list customization for instantiation, every modified parameter (via the Web interface) is noted in the <A NAME="10425"></A><TT>config_changes</TT> file.
588
<!--Navigation Panel-->
589
<A NAME="tex2html1310"
591
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
592
<A NAME="tex2html1304"
594
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
595
<A NAME="tex2html1298"
597
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
598
<A NAME="tex2html1306"
600
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
601
<A NAME="tex2html1308"
603
<IMG WIDTH="43" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="index" SRC="index.png"></A>
605
<B> Next:</B> <A NAME="tex2html1311"
606
HREF="node21.html">20. List configuration parameters</A>
607
<B> Up:</B> <A NAME="tex2html1305"
608
HREF="sympa.html">Sympa Mailing Lists Management Software version</A>
609
<B> Previous:</B> <A NAME="tex2html1299"
610
HREF="node19.html">18. List creation, edition and removal</A>
611
<B> <A NAME="tex2html1307"
612
HREF="node1.html">Contents</A></B>
613
<B> <A NAME="tex2html1309"
614
HREF="node30.html">Index</A></B>
615
<!--End of Navigation Panel-->