<!--
   $FML: post_check_article_thread.sgml,v 1.2 2005/09/24 13:53:41 fukachan Exp $
   $jaFML: post_check_article_thread.sgml,v 1.3 2005/06/25 14:12:52 fukachan Exp $
-->


<sect1 id="config.post.check.article.thread">
	<title>
	Case Study: Article Posting Allowd If It Is A Reply To The Former One.
	</title>

<para>
From time to time we can find that a posted article is denied due to
posting from not a member.
</para>

<para>
One reason is that the member who replied some article forgot to
notify changes of his/her mail address to the mailing list
administrator. Another reason that his/her mail address is changed
from @DOMAIN to @SUB.DOMAIN vice versa.  Yet another reason is that
he/she replied it from other location which recieved the article via
mail forwarding at some other host.
</para>

<para>
After 2004/10/28 &fml8; current, &fml8; supports "allow article post
irrespective of the From: address if some condition satisfied" at
article_post_restrictions.
</para>

<para>
The current implementation suppors the condition that "if the reply
refers a known message-id within some time limit".  Precisely
speaking, "known message-id" implies the id is found at the message-id
database which holds In-Reply-To: and References: of old articles
within some time limit (e.g. one week).
</para>


<sect2>
	<title>
	Recipes
	</title>

<qandaset>

<qandaentry>

<question>
<para>
Article Posting Allowd If It Is A Reply To The Former One.
</para>
</question>

<answer>

<para>
"check_article_thread" is the keyword to enable this check.
<screen>
article_post_restrictions       =       reject_system_special_accounts
                                        check_article_thread
                                        permit_member_maps
                                        reject
</screen>
Not used by default.
To use it, specify it at article_post_restrictions.
</para>

</answer>

</qandaentry>

</qandaset>

</sect2>


<sect2>
	<title>
	Discussion
	</title>

<para>
Hmm, this is similar to a cookie. 
There are some problems.
</para>

<para>
1) What is proper time scale ?
$article_post_article_thread_lifetime controlls it. One day by default.
<screen>
article_post_article_thread_lifetime = 86400
</screen>
</para>

<para>
Also, boundary of the time scale ?  When starts the allowd window ? It
starts from the first article of the specific thread ? Or from the
last article ?
</para>

<para>
2) More restricted condition support required ?
If so, we should check the corelation between subject: and the thread?
</para>

</sect2>


<sect2>
	<title>
	Recipes
	</title>

<qandaset>

<qandaentry>

<question>
<para>
Only A Few Persons Can Starts Article Thread.
</para>
</question>

<answer>

<para>
<screen>
member_maps			=       $tmp_dir/members-thread-init

article_post_restrictions       =       reject_system_special_accounts
                                        check_article_thread
                                        permit_member_maps
                                        reject


</screen>
Only persons registered at members-thread-init file can post article
always.  Other persons can post the article if the article is a reply
to some other article.
</para>

<para>
Hmm, it looks a variation of moderator system ?
</para>

<para>
Better that they use PGP auth if could.
<screen>
member_maps			=       $tmp_dir/members-thread-init

article_post_restrictions       =       reject_system_special_accounts
                                        check_article_thread
                                        check_pgp_signature
                                        reject

</screen>
</para>

</answer>

</qandaentry>

</qandaset>

</sect2>

</sect1>
