====== Les inscriptions (subscribe) ======
===== subscribe.auth =====
title.gettext subscription request confirmed
is_subscriber([listname],[sender]) smtp,smime -> do_it
true() smtp -> request_auth
true() md5,smime -> do_it
===== subscribe.auth_notify =====
title.gettext need authentication (notification is sent to owners)
# do not authentify nor notify updates
is_subscriber ([listname],[sender]) smtp,smime,md5 -> do_it
true() smtp -> request_auth
true() md5,smime -> do_it,notify
===== subscribe.auth_owner =====
title.gettext requires authentication then owner approval
# subscription under owner control but previously email are checked by auth
true() smtp -> request_auth
is_subscriber([listname],[previous_email]) smime,md5 -> do_it
true() md5,smime -> owner
===== subscribe.closed =====
title.gettext subscribe is impossible
true() smtp,md5,smime -> reject(reason='subscribe_closed')
===== subscribe.default =====
title.gettext for anyone without authentication
true() smtp,smime,md5 -> do_it
===== subscribe.intranet =====
title.gettext restricted to local domain users
# if subscriber request come from local domain do_it else reject
is_subscriber([listname],[sender]) smtp,smime,md5 -> do_it
match([sender],/[conf->host]$/) smtp,smime,md5 -> do_it
true() smtp,md5,smime -> reject(reason='subscribe_local_user')
===== subscribe.intranetorowner =====
title.gettext local domain users or owner approval
# if subscriber request come from local domain do_it else reject
is_subscriber([listname],[sender]) smtp,smime,md5 -> do_it
match([sender],/[conf->host]$/) smtp,smime,md5 -> do_it
true() smtp,smime,md5 -> owner
===== subscribe.open =====
title.gettext for anyone without authentication
true() smtp,smime,md5 -> do_it
===== subscribe.open_notify =====
title.gettext anyone, notification is sent to list owner
# do not notify if it is just an update
is_subscriber([listname],[sender]) smtp,smime,md5 -> do_it
true() smtp,smime,md5 -> do_it,notify
===== subscribe.open_quiet =====
title.gettext anyone, no welcome message
true() smtp,smime,md5 -> do_it,quiet
===== subscribe.owner =====
title.gettext owners approval
# if subscriber request come from a subscriber, it's just an update, do it
is_subscriber([listname],[sender]) smtp,smime,md5 -> do_it
# if subscribtion request is just a change email, it is open :
is_subscriber([listname],[previous_email]) smtp,smime,md5 -> do_it
true() smtp,smime,md5 -> owner
===== subscribe.smime =====
title.gettext requires S/MIME signed
is_subscriber([listname],[sender]) smtp,smime -> do_it
true() smime -> do_it
true() smtp,md5 -> reject(reason='subscribe_smime')
===== subscribe.smimeorowner =====
title.gettext requires S/MIME signed or owner approval
# if subscriber request come from a subscriber, it's just an update, do it
is_subscriber([listname],[sender]) smtp,smime,md5 -> do_it
true() smtp,md5 -> owner
true() smime -> do_it