<!-- -*- mode:text coding:euc-jp -*-
   $FML: userctl.sgml,v 1.3 2004/10/06 09:07:40 fukachan Exp $
-->


<chapter id="userctl">
	<title>
	ユーザの登録、削除について
	</title>


<sect1 id="userctl.deladd">
	<title>
	ユーザの追加と削除は、どの変数に対して行なうべきでしょうか？
	</title>

<para>
ユーザの追加と削除は、
変数 primary_*_map
に対して行ってください。
</para>

<para>
たとえば、
リモート管理者の追加処理であれば、
primary_admin_member_map
と
primary_admin_recipient_map
の両方にメールアドレスを追加します。
削除の際は、
primary_admin_member_map
と
primary_admin_recipient_map
からアドレスを削除しています。
</para>

<para>
操作対象を 
admin_member_maps
と
admin_recipient_maps 
にすると、いろいろと問題があります
(ここには &fml4; の反省がいかされています ;-)。
</para>

<para>
追加つまり書き込む(WRITE)処理対象は一つに限定しなくてはいけません。
よって、
primary_*_map
一つに対して行なうべきです。
読む(READ)のであれば複数あってもかまいませんが、
WRITE 操作対象を *_maps でもよいことにしてしまうと、
複数の map のどれに書き込むのかが曖昧になってしまします。
</para>

<para>
逆に、
削除処理は、
一見
*_maps が操作対象で問題ない気がしますが、
実は駄目です。
消し過ぎになってしまうことがあるからです。
特に問題になるのは、
*_maps に「権限の異なる map 」が混在している場合です。
</para>

<para>
たとえば、
member_maps はデフォルトで、リモート管理者を含んでいます。
<screen>
member_maps		=	$primary_member_map
				$admin_member_maps
</screen>
そのため、member_maps に対して削除を試みると、
勢いあまってリモート管理者の分も削除する可能性があります。
</para>

<para>
こういった曖昧さを避けるために、
primary_XXX_map
と
XXX_maps
という分離が考案されたいというわけです
(ようするに &fml4; の反省がいかされています ;-)。
</para>

</sect1>

</chapter>
