ユーザの登録、削除について
ユーザの追加と削除は何に対して行なうか?
ユーザの追加と削除は、
ともに「primary_*_map に対して」
おこないます。
たとえば、リモート管理者は
primary_admin_member_map と primary_admin_recipient_map の両方に
アドレスを追加します。
削除の際は、
primary_admin_member_map と primary_admin_recipient_map から
アドレスを削除します。
操作対象を
admin_member_maps と admin_recipient_maps
にしてしまうのは問題があります
(ここには &fml4; の反省がいかされています ;-)。
追加対象は一つに限定しなくてはいけません。
だから、primary_*_map 一つに対して行なう。
操作対象が *_maps では複数の map のどれに追加してよいのか曖昧です。
逆に、削除は、いっけん *_maps が操作対象で問題ない気がしますが、
実は駄目です。消し過ぎになってしまうことがあるからです。
特に問題になるのは、*_maps に「権限の異なる map 」が混在している場合です。
たとえば、member_maps はデフォルトで、リモート管理者を含んでいます。
member_maps = $primary_member_map
$admin_member_maps
そのため、member_maps に対して削除を試みると、
勢いあまってリモート管理者の分も削除してしまうことになるというわけです。
こういった曖昧さを避けるために、
primary_XXX_map と XXX_maps
という分離が考案されたいというわけです
(ようするに &fml4; の反省がいかされています ;-)。