ユーザの制御
ユーザの追加と削除は何に対して行なうか?
追加は primary_*_map に対しておこなう。
削除も primary_*_map に対しておこなう。
たとえば、リモート管理者は
primary_admin_member_map と primary_admin_recipient_map の両方に
アドレスを追加する。
削除の際は、
primary_admin_member_map と primary_admin_recipient_map から
アドレスを削除する。
これを admin_member_maps と admin_recipient_maps にすると問題だ。
追加は、明らかに複数の map に追加してしまうので、一つに限定するべきだ。
だから、primary_*_map 一つに対して行なう。
メンバーは primary_xxx_member_map ひとつに、
受信者は primary_xxx_recipient_map 一つに対して行なう。
削除だが、一見 *_maps でもよいような気がするが、
実は駄目だ。消し過ぎになってしまうことがある。
特に問題になるのは、権限の異なる map が混在している場合である。
たとえば、
member_maps はデフォルトで、リモート管理者を含んでいる。
member_maps = $primary_member_map
$admin_member_maps
そのため、member_maps に対して削除を試みると、
勢いあまってリモート管理者の分も削除してしまうことになる