You can subscribe to this list here.
2003 |
Jan
|
Feb
(160) |
Mar
(119) |
Apr
(111) |
May
(118) |
Jun
(101) |
Jul
(304) |
Aug
(113) |
Sep
(140) |
Oct
(137) |
Nov
(87) |
Dec
(122) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2004 |
Jan
(78) |
Feb
(125) |
Mar
(131) |
Apr
(59) |
May
(121) |
Jun
(166) |
Jul
(150) |
Aug
(137) |
Sep
(73) |
Oct
(58) |
Nov
(27) |
Dec
(60) |
2005 |
Jan
(131) |
Feb
(84) |
Mar
(36) |
Apr
(8) |
May
(28) |
Jun
(20) |
Jul
(10) |
Aug
(72) |
Sep
(76) |
Oct
(34) |
Nov
(3) |
Dec
(29) |
2006 |
Jan
(13) |
Feb
(92) |
Mar
(7) |
Apr
(1) |
May
(1) |
Jun
(2) |
Jul
(4) |
Aug
(17) |
Sep
(5) |
Oct
(2) |
Nov
(8) |
Dec
(12) |
2007 |
Jan
(28) |
Feb
(15) |
Mar
|
Apr
|
May
(8) |
Jun
(4) |
Jul
(5) |
Aug
(8) |
Sep
(20) |
Oct
(38) |
Nov
(65) |
Dec
(92) |
2008 |
Jan
(21) |
Feb
(56) |
Mar
(27) |
Apr
(174) |
May
(25) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
Update of /cvsroot/popfile/engine/manual/da In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv4162/manual/da Removed Files: Tag: b0_22_2 spa.html oe_filter3_da.gif oe_popfile4_da.gif oe_filter1_da.gif oe_popfile2_da.gif o_filter1_da.gif o_popfile2_da.gif o_popfile1_da.gif o_filter2_da.gif multiple.html oe_popfile3_da.gif oe_filter2_da.gif proxies.html o_popfile3_da.gif installing.html oe_popfile1_da.gif firewalls.html oe_filter5_da.gif training.html manual.html firsttime.html email.html oe_filter4_da.gif Log Message: Deleted the manual. --- oe_popfile2_da.gif DELETED --- --- multiple.html DELETED --- --- oe_popfile1_da.gif DELETED --- --- o_popfile3_da.gif DELETED --- --- oe_filter4_da.gif DELETED --- --- spa.html DELETED --- --- oe_filter1_da.gif DELETED --- --- installing.html DELETED --- --- firsttime.html DELETED --- --- oe_popfile4_da.gif DELETED --- --- oe_popfile3_da.gif DELETED --- --- o_filter1_da.gif DELETED --- --- email.html DELETED --- --- oe_filter2_da.gif DELETED --- --- o_popfile1_da.gif DELETED --- --- oe_filter3_da.gif DELETED --- --- firewalls.html DELETED --- --- o_filter2_da.gif DELETED --- --- oe_filter5_da.gif DELETED --- --- o_popfile2_da.gif DELETED --- --- training.html DELETED --- --- manual.html DELETED --- --- proxies.html DELETED --- |
From: Manni H. <man...@us...> - 2008-04-07 12:16:03
|
Update of /cvsroot/popfile/engine/manual/zh-tw In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv4162/manual/zh-tw Removed Files: Tag: b0_22_2 firewalls.html spa.html email.html manual.html training.html multiple.html proxies.html firsttime.html installing.html Log Message: Deleted the manual. --- multiple.html DELETED --- --- training.html DELETED --- --- manual.html DELETED --- --- email.html DELETED --- --- installing.html DELETED --- --- firsttime.html DELETED --- --- proxies.html DELETED --- --- firewalls.html DELETED --- --- spa.html DELETED --- |
From: Manni H. <man...@us...> - 2008-04-07 12:16:01
|
Update of /cvsroot/popfile/engine/manual/fr In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv4162/manual/fr Removed Files: Tag: b0_22_2 installing.html spa.html manual.html firsttime.html training.html firewalls.html proxies.html multiple.html email.html Log Message: Deleted the manual. --- multiple.html DELETED --- --- training.html DELETED --- --- manual.html DELETED --- --- email.html DELETED --- --- installing.html DELETED --- --- firsttime.html DELETED --- --- proxies.html DELETED --- --- firewalls.html DELETED --- --- spa.html DELETED --- |
Update of /cvsroot/popfile/engine/manual/jp In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv4162/manual/jp Removed Files: Tag: b0_22_2 oe_popfile4.gif spa.html multiple.html email.html oe_filter4.gif o_popfile1.gif installing.html proxies.html firsttime.html o_popfile2.gif oe_filter3.gif oe_filter1.gif o_popfile3.gif oe_popfile1.gif o_filter2.gif firewalls.html manual.html oe_filter2.gif nihongo_blue_ul.gif oe_filter5.gif oe_popfile3.gif o_filter1.gif training.html oe_popfile2.gif Log Message: Deleted the manual. --- oe_popfile3.gif DELETED --- --- oe_popfile4.gif DELETED --- --- oe_filter2.gif DELETED --- --- multiple.html DELETED --- --- oe_filter3.gif DELETED --- --- oe_filter1.gif DELETED --- --- spa.html DELETED --- --- o_filter1.gif DELETED --- --- o_popfile3.gif DELETED --- --- installing.html DELETED --- --- oe_filter5.gif DELETED --- --- oe_filter4.gif DELETED --- --- nihongo_blue_ul.gif DELETED --- --- o_popfile1.gif DELETED --- --- firsttime.html DELETED --- --- email.html DELETED --- --- firewalls.html DELETED --- --- o_filter2.gif DELETED --- --- training.html DELETED --- --- oe_popfile2.gif DELETED --- --- manual.html DELETED --- --- o_popfile2.gif DELETED --- --- oe_popfile1.gif DELETED --- --- proxies.html DELETED --- |
From: Manni H. <man...@us...> - 2008-04-07 12:16:00
|
Update of /cvsroot/popfile/engine/manual/es In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv4162/manual/es Removed Files: Tag: b0_22_2 installing.html spa.html email.html manual.html firsttime.html multiple.html training.html proxies.html firewalls.html Log Message: Deleted the manual. --- multiple.html DELETED --- --- training.html DELETED --- --- manual.html DELETED --- --- email.html DELETED --- --- installing.html DELETED --- --- firsttime.html DELETED --- --- proxies.html DELETED --- --- firewalls.html DELETED --- --- spa.html DELETED --- |
From: Manni H. <man...@us...> - 2008-04-07 12:16:00
|
Update of /cvsroot/popfile/engine/manual/zh-cn In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv4162/manual/zh-cn Removed Files: Tag: b0_22_2 installing.html manual.html firewalls.html email.html training.html proxies.html spa.html multiple.html firsttime.html Log Message: Deleted the manual. --- multiple.html DELETED --- --- training.html DELETED --- --- manual.html DELETED --- --- email.html DELETED --- --- installing.html DELETED --- --- firsttime.html DELETED --- --- proxies.html DELETED --- --- firewalls.html DELETED --- --- spa.html DELETED --- |
From: Manni H. <man...@us...> - 2008-04-07 08:51:57
|
Update of /cvsroot/popfile/engine/skins/oceanblue In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv24313/oceanblue Modified Files: Tag: b0_22_2 common-bottom.thtml common-middle.thtml Log Message: Let update and stats links point to getpopfile.org Index: common-middle.thtml =================================================================== RCS file: /cvsroot/popfile/engine/skins/oceanblue/common-middle.thtml,v retrieving revision 1.1.6.2 retrieving revision 1.1.6.3 diff -C2 -d -r1.1.6.2 -r1.1.6.3 *** common-middle.thtml 13 Dec 2007 12:31:45 -0000 1.1.6.2 --- common-middle.thtml 7 Apr 2008 08:51:58 -0000 1.1.6.3 *************** *** 57,65 **** <span class="shellLeft"></span> <div class="naked"> ! <TMPL_IF NAME="Common_Middle_If_UpdateCheck"> ! ! <a href="http://sourceforge.net/project/showfiles.php?group_id=63137"> ! <img border="0" alt="" src="http://www.usethesource.com/cgi-bin/popfile_update.pl?ma=<TMPL_VAR NAME="Common_Middle_Major_Version">&mi=<TMPL_VAR NAME="Common_Middle_Minor_Version">&bu=<TMPL_VAR NAME="Common_Middle_Build_Version">" /> </a> --- 57,64 ---- <span class="shellLeft"></span> <div class="naked"> + <TMPL_IF NAME="Common_Middle_If_UpdateCheck"> ! <a href="http://getpopfile.org/download/"> ! <img border="0" alt="" src="http://getpopfile.org/cgi-bin/popfile_update.pl?ma=<TMPL_VAR NAME="Common_Middle_Major_Version">&mi=<TMPL_VAR NAME="Common_Middle_Minor_Version">&bu=<TMPL_VAR NAME="Common_Middle_Build_Version">" /> </a> *************** *** 68,72 **** <TMPL_IF NAME="Common_Middle_If_SendStats"> ! <img border="0" alt="" src="http://www.usethesource.com/cgi-bin/popfile_stats.pl?bc=<TMPL_VAR NAME="Common_Middle_Buckets">&mc=<TMPL_VAR NAME="Common_Middle_Messages">&ec=<TMPL_VAR NAME="Common_Middle_Errors">" /> </TMPL_IF> --- 67,71 ---- <TMPL_IF NAME="Common_Middle_If_SendStats"> ! <img border="0" alt="" src="http://getpopfile.org/cgi-bin/popfile_stats.pl?bc=<TMPL_VAR NAME="Common_Middle_Buckets">&mc=<TMPL_VAR NAME="Common_Middle_Messages">&ec=<TMPL_VAR NAME="Common_Middle_Errors">" /> </TMPL_IF> Index: common-bottom.thtml =================================================================== RCS file: /cvsroot/popfile/engine/skins/oceanblue/common-bottom.thtml,v retrieving revision 1.1.6.2 retrieving revision 1.1.6.3 diff -C2 -d -r1.1.6.2 -r1.1.6.3 *** common-bottom.thtml 4 Dec 2007 11:33:15 -0000 1.1.6.2 --- common-bottom.thtml 7 Apr 2008 08:51:58 -0000 1.1.6.3 *************** *** 15,27 **** </li> - - - <li class="footerBody"> ! <a class="bottomLink" href="http://getpopfile.org/wiki"> ! <TMPL_VAR NAME="Localize_Footer_Wiki"></a> </li> <li class="footerBody"> ! <a class="bottomLink" href="http://getpopfile.org/wiki/<TMPL_VAR NAME="Localize_FAQLink">"><TMPL_VAR NAME="Localize_FAQ"></a> </li> <li class="footerBody"> --- 15,23 ---- </li> <li class="footerBody"> ! <a class="bottomLink" href="http://getpopfile.org/docs/"><TMPL_VAR NAME="Localize_Footer_Wiki"></a> </li> <li class="footerBody"> ! <a class="bottomLink" href="http://getpopfile.org/docs/<TMPL_VAR NAME="Localize_FAQLink">"><TMPL_VAR NAME="Localize_FAQ"></a> </li> <li class="footerBody"> *************** *** 38,45 **** </li> <li class="footerBody"> ! <a class="bottomLink" href="http://sourceforge.net/tracker/index.php?group_id=63137&atid=502959"><TMPL_VAR NAME="Localize_Footer_RequestFeature"></a> </li> <li class="footerBody"> ! <a class="bottomLink" href="http://lists.sourceforge.net/lists/listinfo/popfile-announce"><TMPL_VAR NAME="Localize_Footer_MailingList"></a> </li> <li class="footerBody"> --- 34,41 ---- </li> <li class="footerBody"> ! <a class="bottomLink" href="http://getpopfile.org/docs/<TMPL_VAR NAME="Localize_RequestFeatureLink">"><TMPL_VAR NAME="Localize_Footer_RequestFeature"></a> </li> <li class="footerBody"> ! <a class="bottomLink" href="http://getpopfile.org/docs/<TMPL_VAR NAME="Localize_MailingListLink">"><TMPL_VAR NAME="Localize_Footer_MailingList"></a> </li> <li class="footerBody"> |
From: Manni H. <man...@us...> - 2008-04-07 08:51:57
|
Update of /cvsroot/popfile/engine/skins/default In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv24313/default Modified Files: Tag: b0_22_2 common-bottom.thtml common-middle.thtml Log Message: Let update and stats links point to getpopfile.org Index: common-middle.thtml =================================================================== RCS file: /cvsroot/popfile/engine/skins/default/common-middle.thtml,v retrieving revision 1.5.6.3 retrieving revision 1.5.6.4 diff -C2 -d -r1.5.6.3 -r1.5.6.4 *** common-middle.thtml 13 Dec 2007 12:31:45 -0000 1.5.6.3 --- common-middle.thtml 7 Apr 2008 08:51:58 -0000 1.5.6.4 *************** *** 66,71 **** <TMPL_IF NAME="Common_Middle_If_UpdateCheck"> ! <a href="http://sourceforge.net/project/showfiles.php?group_id=63137"> ! <img border="0" alt="" src="http://www.usethesource.com/cgi-bin/popfile_update.pl?ma=<TMPL_VAR NAME="Common_Middle_Major_Version">&mi=<TMPL_VAR NAME="Common_Middle_Minor_Version">&bu=<TMPL_VAR NAME="Common_Middle_Build_Version">" /> </a> --- 66,71 ---- <TMPL_IF NAME="Common_Middle_If_UpdateCheck"> ! <a href="http://getpopfile.org/download/"> ! <img border="0" alt="" src="http://getpopfile.org/cgi-bin/popfile_update.pl?ma=<TMPL_VAR NAME="Common_Middle_Major_Version">&mi=<TMPL_VAR NAME="Common_Middle_Minor_Version">&bu=<TMPL_VAR NAME="Common_Middle_Build_Version">" /> </a> *************** *** 74,78 **** <TMPL_IF NAME="Common_Middle_If_SendStats"> ! <img border="0" alt="" src="http://www.usethesource.com/cgi-bin/popfile_stats.pl?bc=<TMPL_VAR NAME="Common_Middle_Buckets">&mc=<TMPL_VAR NAME="Common_Middle_Messages">&ec=<TMPL_VAR NAME="Common_Middle_Errors">" /> </TMPL_IF> --- 74,78 ---- <TMPL_IF NAME="Common_Middle_If_SendStats"> ! <img border="0" alt="" src="http://getpopfile.org/cgi-bin/popfile_stats.pl?bc=<TMPL_VAR NAME="Common_Middle_Buckets">&mc=<TMPL_VAR NAME="Common_Middle_Messages">&ec=<TMPL_VAR NAME="Common_Middle_Errors">" /> </TMPL_IF> Index: common-bottom.thtml =================================================================== RCS file: /cvsroot/popfile/engine/skins/default/common-bottom.thtml,v retrieving revision 1.8.6.4 retrieving revision 1.8.6.5 diff -C2 -d -r1.8.6.4 -r1.8.6.5 *** common-bottom.thtml 7 Feb 2008 15:14:04 -0000 1.8.6.4 --- common-bottom.thtml 7 Apr 2008 08:51:58 -0000 1.8.6.5 *************** *** 13,18 **** <a class="bottomLink" href="http://getpopfile.org/"><TMPL_VAR NAME="Localize_Footer_HomePage"></a> <br /> ! <a class="bottomLink" href="http://getpopfile.org/docs/<TMPL_VAR NAME="Localize_WikiLink">"> ! <TMPL_VAR NAME="Localize_Footer_Wiki"></a> <br /> <a class="bottomLink" href="http://getpopfile.org/docs/<TMPL_VAR NAME="Localize_FAQLink">"><TMPL_VAR NAME="Localize_FAQ"></a> --- 13,17 ---- <a class="bottomLink" href="http://getpopfile.org/"><TMPL_VAR NAME="Localize_Footer_HomePage"></a> <br /> ! <a class="bottomLink" href="http://getpopfile.org/docs/<TMPL_VAR NAME="Localize_WikiLink">"><TMPL_VAR NAME="Localize_Footer_Wiki"></a> <br /> <a class="bottomLink" href="http://getpopfile.org/docs/<TMPL_VAR NAME="Localize_FAQLink">"><TMPL_VAR NAME="Localize_FAQ"></a> |
From: naoki i. <am...@us...> - 2008-04-06 15:41:42
|
Update of /cvsroot/popfile/engine In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv17692 Modified Files: make_packing_list.pl Log Message: Avoid Services::IMAP is included in popfile.pck. Added MeCab optional informatin and fixed regexp Index: make_packing_list.pl =================================================================== RCS file: /cvsroot/popfile/engine/make_packing_list.pl,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** make_packing_list.pl 6 Feb 2006 15:09:54 -0000 1.5 --- make_packing_list.pl 6 Apr 2008 15:41:46 -0000 1.6 *************** *** 43,46 **** --- 43,47 ---- 'IO::Socket::SSL' => 'SSL Connection Support', 'IO::Socket::Socks' => 'Socks Proxy Support', + 'MeCab' => $japanese, 'Text::Kakasi' => $japanese, 'XMLRPC::Transport::HTTP' => 'XML-RPC Server Support' ); *************** *** 57,61 **** open PACKAGE, ">$output"; foreach my $module (sort keys %modules) { ! if ( $module !~ /^Classifier|POPFile|Proxy|UI/ ) { print PACKAGE "$modules{$module}\t0.0.0\t$module\n"; } --- 58,62 ---- open PACKAGE, ">$output"; foreach my $module (sort keys %modules) { ! if ( $module !~ /^(Classifier|POPFile|Proxy|UI|Services)/ ) { print PACKAGE "$modules{$module}\t0.0.0\t$module\n"; } |
From: naoki i. <am...@us...> - 2008-04-06 15:40:05
|
Update of /cvsroot/popfile/engine In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv17231 Modified Files: Tag: b0_22_2 make_packing_list.pl Log Message: Added MeCab optional information and fixed regex Index: make_packing_list.pl =================================================================== RCS file: /cvsroot/popfile/engine/make_packing_list.pl,v retrieving revision 1.3.4.2 retrieving revision 1.3.4.3 diff -C2 -d -r1.3.4.2 -r1.3.4.3 *** make_packing_list.pl 6 Apr 2008 15:35:43 -0000 1.3.4.2 --- make_packing_list.pl 6 Apr 2008 15:40:09 -0000 1.3.4.3 *************** *** 43,46 **** --- 43,47 ---- 'IO::Socket::SSL' => 'SSL Connection Support', 'IO::Socket::Socks' => 'Socks Proxy Support', + 'MeCab' => $japanese, 'Text::Kakasi' => $japanese, 'XMLRPC::Transport::HTTP' => 'XML-RPC Server Support' ); *************** *** 57,61 **** open PACKAGE, ">$output"; foreach my $module (sort keys %modules) { ! if ( $module !~ /^Classifier|POPFile|Proxy|UI|Services/ ) { print PACKAGE "$modules{$module}\t0.0.0\t$module\n"; } --- 58,62 ---- open PACKAGE, ">$output"; foreach my $module (sort keys %modules) { ! if ( $module !~ /^(Classifier|POPFile|Proxy|UI|Services)/ ) { print PACKAGE "$modules{$module}\t0.0.0\t$module\n"; } |
From: naoki i. <am...@us...> - 2008-04-06 15:35:38
|
Update of /cvsroot/popfile/engine In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv15295 Modified Files: Tag: b0_22_2 make_packing_list.pl Log Message: Avoid Services::IMAP is included in popfile.pck Index: make_packing_list.pl =================================================================== RCS file: /cvsroot/popfile/engine/make_packing_list.pl,v retrieving revision 1.3.4.1 retrieving revision 1.3.4.2 diff -C2 -d -r1.3.4.1 -r1.3.4.2 *** make_packing_list.pl 7 Feb 2006 11:09:54 -0000 1.3.4.1 --- make_packing_list.pl 6 Apr 2008 15:35:43 -0000 1.3.4.2 *************** *** 57,61 **** open PACKAGE, ">$output"; foreach my $module (sort keys %modules) { ! if ( $module !~ /^Classifier|POPFile|Proxy|UI/ ) { print PACKAGE "$modules{$module}\t0.0.0\t$module\n"; } --- 57,61 ---- open PACKAGE, ">$output"; foreach my $module (sort keys %modules) { ! if ( $module !~ /^Classifier|POPFile|Proxy|UI|Services/ ) { print PACKAGE "$modules{$module}\t0.0.0\t$module\n"; } |
From: naoki i. <am...@us...> - 2008-04-06 08:27:06
|
Update of /cvsroot/popfile/engine/languages In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv14448/languages Modified Files: English.msg Nihongo.msg Log Message: Change Log 1. There's no need to create account if pop3 transparent proxy server is used 2. Add a new option to use SSL when using pop3 transparent proxy 3. Add a new test for get_session_key_from_token with pop3 transparent proxy Proxy/POP3.pm Classifier/Bayes.pm skins/default/pop3-chain-panel.thtml languages/English.msg tests/TestBayes.tst Memo: If the pop3 transparent proxy server is defined (e.g. mail.example.com), POPFile will accept 'USER username' command and act as if the user 'username' has an account 'use...@ma...'. 4. insert.pl now supports multiuser mode insert.pl Classifier/Bayes.pm New command line options: insert.pl - insert mail messages into a specific bucket of the specific user Usage: insert.pl [<user>] <bucket> <messages> <user> The name of the user (multiuser mode only) <bucket> The name of the bucket <messages> Filename of message(s) to insert 5. A new session key is generated in the single user mode to avoid releasing administrator's session key Proxy/POP3.pm Classifier/Bayes.pm tests/TestBayes.tst 6. Merged a patch to solve the sqlite3 (DBD::SQLite 1.x) issues POPFile/History.pm 7. Fixed a bug that POP3.pm had not passed get_slot_fields no session keys Proxy/POP3.pm 8. New tips for deleting accounts from user skins/users-page.thtml languages/English.msg 9. New XMLRPC APIs (Ticket #39) POPFile/API.pm New APIs get_user_name_from_session initialize_users_password (ADMIN ONLY) change_users_password (ADMIN ONLY) set_password_for_user get_user_name_from_id 10. Update language file languages/Nihongo.msg Current state of the test suite: TestBayesScript PASS TestBayes PASS TestConfiguration PASS * TestHistory PASS * TestHTML PASS * TestHTTP PASS TestIMAP not tested yet TestInsertScript PASS * TestLogger PASS TestMailParse PASS TestModule PASS TestMQ PASS TestMutex PASS TestPipeScript PASS TestPOP3 fail (horribly) TestProxy PASS TestWordMangle PASS TestXMLRPC PASS (but child process does not terminate) * : needs to add tests for multi user support TODO 1. multi user mode tests are needed tests/TestConfiguration.tst tests/TestHistory.tst tests/TestHTML.tst tests/TestInsertScript.tst Index: Nihongo.msg =================================================================== RCS file: /cvsroot/popfile/engine/languages/Nihongo.msg,v retrieving revision 1.22 retrieving revision 1.23 diff -C2 -d -r1.22 -r1.23 *** Nihongo.msg 5 Apr 2008 12:23:38 -0000 1.22 --- Nihongo.msg 6 Apr 2008 08:27:08 -0000 1.23 *************** *** 256,260 **** History_RemovePage ¤³¤Î¥Ú¡¼¥¸¤òºï½ü History_RemoveChecked ¥Á¥§¥Ã¥¯¤µ¤ì¤¿¤â¤Î¤òºï½ü - History_Remove ÍúÎò¤«¤é¥á¥Ã¥»¡¼¥¸¤òºï½ü History_SearchMessage º¹½Ð¿Í/·ï̾ ¤ò¸¡º÷ History_NoMessages ³ºÅö¥á¥Ã¥»¡¼¥¸¤Ï¤¢¤ê¤Þ¤»¤ó --- 256,259 ---- *************** *** 278,282 **** Password_Password ¥Ñ¥¹¥ï¡¼¥É Password_Username ¥æ¡¼¥¶¡¼Ì¾ - Password_Enter ¥Ñ¥¹¥ï¡¼¥É¤òÆþÎϤ·¤Æ¤¯¤À¤µ¤¤ Password_Go ¥í¥°¥¤¥ó Password_Error1 ¥æ¡¼¥¶¡¼Ì¾¤Þ¤¿¤Ï¥Ñ¥¹¥ï¡¼¥É¤¬´Ö°ã¤Ã¤Æ¤¤¤Þ¤¹ --- 277,280 ---- *************** *** 297,300 **** --- 295,301 ---- Security_SecurePort ¥ê¥â¡¼¥È POP3 ¥Ý¡¼¥ÈÈÖ¹æ (SPA/AUTH ¤Þ¤¿¤Ï Æ©²á¥×¥í¥¥·) Security_SecurePortUpdate ¥ê¥â¡¼¥È POP3 ¥Ý¡¼¥ÈÈÖ¹æ¤ò %s ¤ËÊѹ¹¤·¤Þ¤·¤¿¡£ + Security_SecureServerUseSSL SSL »ÈÍÑ + Security_SecureServerUseSSLOn ¥ê¥â¡¼¥È POP3 ¥µ¡¼¥Ð¡¼¤È¤ÎÀܳ¤Ë SSL ¤ò»ÈÍѤ·¤Þ¤¹ + Security_SecureServerUseSSLOff ¥ê¥â¡¼¥È POP3 ¥µ¡¼¥Ð¡¼¤È¤ÎÀܳ¤Ë SSL ¤ò»ÈÍѤ·¤Þ¤»¤ó Security_SMTPServer SMTP ¥Á¥§¡¼¥ó¥µ¡¼¥Ð¡¼ Security_SMTPServerUpdate SMTP ¥Á¥§¡¼¥ó¥µ¡¼¥Ð¡¼¤ò %s ¤ËÊѹ¹¤·¤Þ¤·¤¿¡£¤³¤ÎÊѹ¹¤Ï POPFile ¤òºÆµ¯Æ°¤¹¤ë¤Þ¤Ç͸ú¤Ë¤Ê¤ê¤Þ¤»¤ó¡£ *************** *** 411,420 **** Imap_MapError Ê£¿ô¤Î¥Ð¥±¥Ä¤ò¤Ò¤È¤Ä¤Î¥Õ¥©¥ë¥À¤ËÂбþÉÕ¤±¤¹¤ë¤³¤È¤Ï¤Ç¤¤Þ¤»¤ó¡£ Imap_MapUpdated ¥Ð¥±¥Ä '%s' ¤ò ¥Õ¥©¥ë¥À '%s' ¤ËÂбþÉÕ¤±¤Þ¤·¤¿¡£ ! Imap_Server IMAP ¥µ¡¼¥Ð ¥Û¥¹¥È̾: ! Imap_ServerNameError ¥µ¡¼¥Ð¤Î¥Û¥¹¥È̾¤òÆþÎϤ·¤Æ¤¯¤À¤µ¤¤¡£ ! Imap_Port IMAP ¥µ¡¼¥Ð ¥Ý¡¼¥ÈÈÖ¹æ: Imap_PortError Àµ¤·¤¤¥Ý¡¼¥ÈÈÖ¹æ¤òÆþÎϤ·¤Æ¤¯¤À¤µ¤¤¡£ ! Imap_Login IMAP ¥¢¥«¥¦¥ó¥È ¥æ¡¼¥¶Ì¾: ! Imap_LoginError ¥æ¡¼¥¶Ì¾¡¿¥í¥°¥¤¥ó̾¤òÆþÎϤ·¤Æ¤¯¤À¤µ¤¤¡£ Imap_Password IMAP ¥¢¥«¥¦¥ó¥È¤Î¥Ñ¥¹¥ï¡¼¥É: Imap_PasswordError ¥µ¡¼¥Ð¤ËÂФ¹¤ë¥Ñ¥¹¥ï¡¼¥É¤òÆþÎϤ·¤Æ¤¯¤À¤µ¤¤¡£ --- 412,421 ---- Imap_MapError Ê£¿ô¤Î¥Ð¥±¥Ä¤ò¤Ò¤È¤Ä¤Î¥Õ¥©¥ë¥À¤ËÂбþÉÕ¤±¤¹¤ë¤³¤È¤Ï¤Ç¤¤Þ¤»¤ó¡£ Imap_MapUpdated ¥Ð¥±¥Ä '%s' ¤ò ¥Õ¥©¥ë¥À '%s' ¤ËÂбþÉÕ¤±¤Þ¤·¤¿¡£ ! Imap_Server IMAP ¥µ¡¼¥Ð¡¼ ¥Û¥¹¥È̾: ! Imap_ServerNameError ¥µ¡¼¥Ð¡¼¤Î¥Û¥¹¥È̾¤òÆþÎϤ·¤Æ¤¯¤À¤µ¤¤¡£ ! Imap_Port IMAP ¥µ¡¼¥Ð¡¼ ¥Ý¡¼¥ÈÈÖ¹æ: Imap_PortError Àµ¤·¤¤¥Ý¡¼¥ÈÈÖ¹æ¤òÆþÎϤ·¤Æ¤¯¤À¤µ¤¤¡£ ! Imap_Login IMAP ¥¢¥«¥¦¥ó¥È ¥æ¡¼¥¶¡¼Ì¾: ! Imap_LoginError ¥æ¡¼¥¶¡¼Ì¾¡¿¥í¥°¥¤¥ó̾¤òÆþÎϤ·¤Æ¤¯¤À¤µ¤¤¡£ Imap_Password IMAP ¥¢¥«¥¦¥ó¥È¤Î¥Ñ¥¹¥ï¡¼¥É: Imap_PasswordError ¥µ¡¼¥Ð¤ËÂФ¹¤ë¥Ñ¥¹¥ï¡¼¥É¤òÆþÎϤ·¤Æ¤¯¤À¤µ¤¤¡£ *************** *** 424,435 **** Imap_IntervalError ¹¹¿·´Ö³Ö¤Ï10É䫤é3600ÉÃ¤Î´Ö¤ÇÆþÎϤ·¤Æ¤¯¤À¤µ¤¤¡£ Imap_OptionsUpdated IMAP ¤Î¥ª¥×¥·¥ç¥ó¤ÏÀµ¾ï¤Ë¹¹¿·¤µ¤ì¤Þ¤·¤¿¡£ - Imap_Bytelimit ʬÎà¤Î¤¿¤á¤Ë»ÈÍѤ¹¤ë¥á¥Ã¥»¡¼¥¸¤Î¥Ð¥¤¥È¿ô¡£0¡Ê¶õÇò¡Ë¤Î¾ì¹ç¡¢¥á¥Ã¥»¡¼¥¸¤ÎÁ´ÂΤò»ÈÍѤ·¤Þ¤¹: - Imap_BytelimitError ¿ô»ú¤òÆþÎϤ·¤Æ¤¯¤À¤µ¤¤¡£ Imap_RefreshFolders ¥Õ¥©¥ë¥À¥ê¥¹¥È¤Î¹¹¿· Imap_Now ¼Â¹Ô ! Imap_UpdateError1 ¥í¥°¥¤¥ó¤Ç¤¤Þ¤»¤ó¡£¥æ¡¼¥¶Ì¾¤È¥Ñ¥¹¥ï¡¼¥É¤ò³Îǧ¤·¤Æ¤¯¤À¤µ¤¤¡£ ! Imap_UpdateError2 ¥µ¡¼¥Ð¤ËÀܳ¤Ç¤¤Þ¤»¤ó¡£¥Û¥¹¥È̾¤È¥Ý¡¼¥ÈÈÖ¹æ¤ò³Îǧ¤¹¤ë¤È¤È¤â¤Ë¡¢¥¤¥ó¥¿¡¼¥Í¥Ã¥È¤ËÀܳ¤µ¤ì¤Æ¤¤¤ë¤«¤É¤¦¤«¤ò³Îǧ¤·¤Æ¤¯¤À¤µ¤¤¡£ ! Imap_UpdateError3 ¥µ¡¼¥Ð¤ËÀܳ¤¹¤ë¤¿¤á¤Î¾ðÊó¤òÀè¤ËÀßÄꤷ¤Æ¤¯¤À¤µ¤¤¡£ ! Imap_UpdateOK Successfully read the list of mailboxes/folders on the server. Imap_NoConnectionMessage ¥µ¡¼¥Ð¤ËÀܳ¤¹¤ë¤¿¤á¤Î¾ðÊó¤òÀè¤ËÀßÄꤷ¤Æ¤¯¤À¤µ¤¤¡£¤½¤¦¤¹¤ë¤È¡¢¤µ¤é¤Ë¿¤¯¤Î¥ª¥×¥·¥ç¥ó¤¬ÀßÄê¤Ç¤¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£ Imap_WatchMore ´Æ»ë¥Õ¥©¥ë¥À¥ê¥¹¥È¤Ë¥Õ¥©¥ë¥À¤òÄɲà --- 425,434 ---- Imap_IntervalError ¹¹¿·´Ö³Ö¤Ï10É䫤é3600ÉÃ¤Î´Ö¤ÇÆþÎϤ·¤Æ¤¯¤À¤µ¤¤¡£ Imap_OptionsUpdated IMAP ¤Î¥ª¥×¥·¥ç¥ó¤ÏÀµ¾ï¤Ë¹¹¿·¤µ¤ì¤Þ¤·¤¿¡£ Imap_RefreshFolders ¥Õ¥©¥ë¥À¥ê¥¹¥È¤Î¹¹¿· Imap_Now ¼Â¹Ô ! Imap_UpdateError1 ¥í¥°¥¤¥ó¤Ç¤¤Þ¤»¤ó¡£¥æ¡¼¥¶¡¼Ì¾¤È¥Ñ¥¹¥ï¡¼¥É¤ò³Îǧ¤·¤Æ¤¯¤À¤µ¤¤¡£ ! Imap_UpdateError2 ¥µ¡¼¥Ð¡¼¤ËÀܳ¤Ç¤¤Þ¤»¤ó¡£¥Û¥¹¥È̾¤È¥Ý¡¼¥ÈÈÖ¹æ¤ò³Îǧ¤¹¤ë¤È¤È¤â¤Ë¡¢¥¤¥ó¥¿¡¼¥Í¥Ã¥È¤ËÀܳ¤µ¤ì¤Æ¤¤¤ë¤«¤É¤¦¤«¤ò³Îǧ¤·¤Æ¤¯¤À¤µ¤¤¡£ ! Imap_UpdateError3 ¥µ¡¼¥Ð¡¼¤ËÀܳ¤¹¤ë¤¿¤á¤Î¾ðÊó¤òÀè¤ËÀßÄꤷ¤Æ¤¯¤À¤µ¤¤¡£ ! Imap_UpdateOK ¥µ¡¼¥Ð¡¼¤«¤é¥á¡¼¥ë¥Ü¥Ã¥¯¥¹¡¿¥Õ¥©¥ë¥À¤Î¥ê¥¹¥È¤ÎÆÉ¤ß¹þ¤ß¤ËÀ®¸ù¤·¤Þ¤·¤¿¡£ Imap_NoConnectionMessage ¥µ¡¼¥Ð¤ËÀܳ¤¹¤ë¤¿¤á¤Î¾ðÊó¤òÀè¤ËÀßÄꤷ¤Æ¤¯¤À¤µ¤¤¡£¤½¤¦¤¹¤ë¤È¡¢¤µ¤é¤Ë¿¤¯¤Î¥ª¥×¥·¥ç¥ó¤¬ÀßÄê¤Ç¤¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£ Imap_WatchMore ´Æ»ë¥Õ¥©¥ë¥À¥ê¥¹¥È¤Ë¥Õ¥©¥ë¥À¤òÄɲà *************** *** 489,495 **** tip_Bucket_ResetStats ʬÎàÀºÅÙ¤ÎÅý·×¾ðÊó¤ò½é´ü²½¤·¤Þ¤¹ ! tip_Magnet_Type Message header to match ! tip_Magnet_Value Text or address to match ! tip_Magnet_Bucket Bucket to send matches to tip_Config_Skin Change the look of POPFile --- 488,494 ---- tip_Bucket_ResetStats ʬÎàÀºÅÙ¤ÎÅý·×¾ðÊó¤ò½é´ü²½¤·¤Þ¤¹ ! tip_Magnet_Type °ìÃפ¹¤ë¥á¥Ã¥»¡¼¥¸¥Ø¥Ã¥À ! tip_Magnet_Value °ìÃפ¹¤ë¥Æ¥¥¹¥È¤Þ¤¿¤Ï¥¢¥É¥ì¥¹ ! tip_Magnet_Bucket °ìÃפ·¤¿¥á¥Ã¥»¡¼¥¸¤ò°Üư¤¹¤ë¥Ð¥±¥Ä tip_Config_Skin Change the look of POPFile *************** *** 513,517 **** tip_Admin_ReportStats 0.22 text should be put back ! tip_Users_Remove POPFile ¤«¤é¥æ¡¼¥¶¡¼¤òºï½ü¤·¤Þ¤¹ tip_Footer_HomePage POPFile ¥Û¡¼¥à¥Ú¡¼¥¸¤ËÀܳ¤·¤Þ¤¹ --- 512,519 ---- tip_Admin_ReportStats 0.22 text should be put back ! tip_Users_Remove POPFile ¤Î¥æ¡¼¥¶¡¼¤òºï½ü¤·¤Þ¤¹ ! tip_Users_Change_Password ¥æ¡¼¥¶¡¼¤Î¥Ñ¥¹¥ï¡¼¥É¤òÊѹ¹¤·¤Þ¤¹ ! ! tip_Account_Remove ¥æ¡¼¥¶¡¼¤Î¥¢¥«¥¦¥ó¥È¤òºï½ü¤·¤Þ¤¹ tip_Footer_HomePage POPFile ¥Û¡¼¥à¥Ú¡¼¥¸¤ËÀܳ¤·¤Þ¤¹ Index: English.msg =================================================================== RCS file: /cvsroot/popfile/engine/languages/English.msg,v retrieving revision 1.109 retrieving revision 1.110 diff -C2 -d -r1.109 -r1.110 *** English.msg 5 Apr 2008 12:23:38 -0000 1.109 --- English.msg 6 Apr 2008 08:27:08 -0000 1.110 *************** *** 26,30 **** # These are where to find the documents on the Wiki ! WikiLink FAQLink FAQ RequestFeatureLink RequestFeature --- 26,30 ---- # These are where to find the documents on the Wiki ! WikiLink FAQLink FAQ RequestFeatureLink RequestFeature *************** *** 294,297 **** --- 294,300 ---- Security_SecurePort Remote POP3 port (SPA/AUTH or transparent proxy) Security_SecurePortUpdate Updated remote POP3 server port to %s + Security_SecureServerUseSSL Use SSL + Security_SecureServerUseSSLOn Updated remote POP3 server to use SSL connections + Security_SecureServerUseSSLOff Updated remote POP3 server not to use SSL connections Security_SMTPServer SMTP chain server Security_SMTPServerUpdate Updated SMTP chain server to %s; this change will not take affect until you restart POPFile *************** *** 511,514 **** --- 514,519 ---- tip_Users_Change_Password Change user's password + tip_Account_Remove Delete account from the user + tip_Footer_HomePage Visit the POPFile home page tip_Footer_Manual The original POPFile documentation (slightly outdated) |
From: naoki i. <am...@us...> - 2008-04-06 08:27:05
|
Update of /cvsroot/popfile/engine/POPFile In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv14448/POPFile Modified Files: API.pm History.pm Log Message: Change Log 1. There's no need to create account if pop3 transparent proxy server is used 2. Add a new option to use SSL when using pop3 transparent proxy 3. Add a new test for get_session_key_from_token with pop3 transparent proxy Proxy/POP3.pm Classifier/Bayes.pm skins/default/pop3-chain-panel.thtml languages/English.msg tests/TestBayes.tst Memo: If the pop3 transparent proxy server is defined (e.g. mail.example.com), POPFile will accept 'USER username' command and act as if the user 'username' has an account 'use...@ma...'. 4. insert.pl now supports multiuser mode insert.pl Classifier/Bayes.pm New command line options: insert.pl - insert mail messages into a specific bucket of the specific user Usage: insert.pl [<user>] <bucket> <messages> <user> The name of the user (multiuser mode only) <bucket> The name of the bucket <messages> Filename of message(s) to insert 5. A new session key is generated in the single user mode to avoid releasing administrator's session key Proxy/POP3.pm Classifier/Bayes.pm tests/TestBayes.tst 6. Merged a patch to solve the sqlite3 (DBD::SQLite 1.x) issues POPFile/History.pm 7. Fixed a bug that POP3.pm had not passed get_slot_fields no session keys Proxy/POP3.pm 8. New tips for deleting accounts from user skins/users-page.thtml languages/English.msg 9. New XMLRPC APIs (Ticket #39) POPFile/API.pm New APIs get_user_name_from_session initialize_users_password (ADMIN ONLY) change_users_password (ADMIN ONLY) set_password_for_user get_user_name_from_id 10. Update language file languages/Nihongo.msg Current state of the test suite: TestBayesScript PASS TestBayes PASS TestConfiguration PASS * TestHistory PASS * TestHTML PASS * TestHTTP PASS TestIMAP not tested yet TestInsertScript PASS * TestLogger PASS TestMailParse PASS TestModule PASS TestMQ PASS TestMutex PASS TestPipeScript PASS TestPOP3 fail (horribly) TestProxy PASS TestWordMangle PASS TestXMLRPC PASS (but child process does not terminate) * : needs to add tests for multi user support TODO 1. multi user mode tests are needed tests/TestConfiguration.tst tests/TestHistory.tst tests/TestHTML.tst tests/TestInsertScript.tst Index: History.pm =================================================================== RCS file: /cvsroot/popfile/engine/POPFile/History.pm,v retrieving revision 1.49 retrieving revision 1.50 diff -C2 -d -r1.49 -r1.50 *** History.pm 5 Apr 2008 16:50:45 -0000 1.49 --- History.pm 6 Apr 2008 08:27:07 -0000 1.50 *************** *** 254,260 **** $self->db_()->begin_work unless ($in_transaction); - # TODO Replace the hardcoded user ID 1 with the looked up - # user ID from the session key - my $test = $self->db_()->selectrow_arrayref( "select id from history where committed = $r limit 1;"); --- 254,257 ---- *************** *** 1028,1032 **** $select =~ s/XXX/$fields_slot/; $self->{queries__}{$id}{query} = $self->db_()->prepare( $select ); - $self->{queries__}{$id}{query}->execute; $self->{queries__}{$id}{cache} = (); } --- 1025,1028 ---- *************** *** 1113,1119 **** my $rows = $start + $count - $size; $self->log_( 2, "Getting $rows rows from database" ); ! push ( @{$self->{queries__}{$id}{cache}}, ! @{$self->{queries__}{$id}{query}->fetchall_arrayref( ! undef, $start + $count - $size )} ); } --- 1109,1117 ---- my $rows = $start + $count - $size; $self->log_( 2, "Getting $rows rows from database" ); ! $self->{queries__}{$id}{query}->execute; ! $self->{queries__}{$id}{cache} = ! $self->{queries__}{$id}{query}->fetchall_arrayref( ! undef, $start + $count - 1 ); ! $self->{queries__}{$id}{query}->finish; } *************** *** 1209,1212 **** --- 1207,1212 ---- if ( $bucket ne 'unknown_class' ) { + # TODO : hardcoded userid 1 + my ( $slot, $file ) = $self->reserve_slot( $session, 1 ); rename $msg, $file; Index: API.pm =================================================================== RCS file: /cvsroot/popfile/engine/POPFile/API.pm,v retrieving revision 1.14 retrieving revision 1.15 diff -C2 -d -r1.14 -r1.15 *** API.pm 20 Feb 2006 02:01:57 -0000 1.14 --- API.pm 6 Apr 2008 08:27:07 -0000 1.15 *************** *** 102,110 **** sub get_user_id { shift->{c}->get_user_id( @_ ); } sub get_user_id_from_session { shift->{c}->get_user_id_from_session( @_ ); } sub add_account { shift->{c}->add_account( @_ ); } sub remove_account { shift->{c}->remove_account( @_ ); } sub get_user_parameter { shift->{c}->get_user_parameter( @_ ); } ! sub get_user_parameter_from_id { shift->{c}->get_user_parameter_from_id( @_ );} ! sub set_user_parameter_from_id { shift->{c}->get_user_parameter_from_id( @_ );} # These APIs return lists and need to be altered to arrays before returning --- 102,115 ---- sub get_user_id { shift->{c}->get_user_id( @_ ); } sub get_user_id_from_session { shift->{c}->get_user_id_from_session( @_ ); } + sub get_user_name_from_session { shift->{c}->get_user_name_from_session( @_ ); } sub add_account { shift->{c}->add_account( @_ ); } sub remove_account { shift->{c}->remove_account( @_ ); } sub get_user_parameter { shift->{c}->get_user_parameter( @_ ); } ! sub get_user_parameter_from_id { shift->{c}->get_user_parameter_from_id( @_ ); } ! sub set_user_parameter_from_id { shift->{c}->get_user_parameter_from_id( @_ ); } ! sub get_user_name_from_id { shift->{c}->get_user_name_from_id( @_ ); } ! ! sub change_users_password { shift->{c}->change_users_password( @_ ); } ! sub set_password_for_user { shift->{c}->set_password_for_user( @_ ); } # These APIs return lists and need to be altered to arrays before returning *************** *** 123,126 **** --- 128,133 ---- sub get_user_parameter_list { [ shift->{c}->get_bucket_word_list( @_ ) ]; } + sub initialize_users_password { [ shift->{c}->initialize_users_password( @_ ) ]; } + # This API is used to add a message to POPFile's history, process the message # and do all the things POPFile would have done if it had received the message |
From: naoki i. <am...@us...> - 2008-04-06 08:27:05
|
Update of /cvsroot/popfile/engine/Classifier In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv14448/Classifier Modified Files: Bayes.pm Log Message: Change Log 1. There's no need to create account if pop3 transparent proxy server is used 2. Add a new option to use SSL when using pop3 transparent proxy 3. Add a new test for get_session_key_from_token with pop3 transparent proxy Proxy/POP3.pm Classifier/Bayes.pm skins/default/pop3-chain-panel.thtml languages/English.msg tests/TestBayes.tst Memo: If the pop3 transparent proxy server is defined (e.g. mail.example.com), POPFile will accept 'USER username' command and act as if the user 'username' has an account 'use...@ma...'. 4. insert.pl now supports multiuser mode insert.pl Classifier/Bayes.pm New command line options: insert.pl - insert mail messages into a specific bucket of the specific user Usage: insert.pl [<user>] <bucket> <messages> <user> The name of the user (multiuser mode only) <bucket> The name of the bucket <messages> Filename of message(s) to insert 5. A new session key is generated in the single user mode to avoid releasing administrator's session key Proxy/POP3.pm Classifier/Bayes.pm tests/TestBayes.tst 6. Merged a patch to solve the sqlite3 (DBD::SQLite 1.x) issues POPFile/History.pm 7. Fixed a bug that POP3.pm had not passed get_slot_fields no session keys Proxy/POP3.pm 8. New tips for deleting accounts from user skins/users-page.thtml languages/English.msg 9. New XMLRPC APIs (Ticket #39) POPFile/API.pm New APIs get_user_name_from_session initialize_users_password (ADMIN ONLY) change_users_password (ADMIN ONLY) set_password_for_user get_user_name_from_id 10. Update language file languages/Nihongo.msg Current state of the test suite: TestBayesScript PASS TestBayes PASS TestConfiguration PASS * TestHistory PASS * TestHTML PASS * TestHTTP PASS TestIMAP not tested yet TestInsertScript PASS * TestLogger PASS TestMailParse PASS TestModule PASS TestMQ PASS TestMutex PASS TestPipeScript PASS TestPOP3 fail (horribly) TestProxy PASS TestWordMangle PASS TestXMLRPC PASS (but child process does not terminate) * : needs to add tests for multi user support TODO 1. multi user mode tests are needed tests/TestConfiguration.tst tests/TestHistory.tst tests/TestHTML.tst tests/TestInsertScript.tst Index: Bayes.pm =================================================================== RCS file: /cvsroot/popfile/engine/Classifier/Bayes.pm,v retrieving revision 1.361 retrieving revision 1.362 diff -C2 -d -r1.361 -r1.362 *** Bayes.pm 5 Apr 2008 16:50:45 -0000 1.361 --- Bayes.pm 6 Apr 2008 08:27:07 -0000 1.362 *************** *** 297,300 **** --- 297,302 ---- # characters(EUC-JP). + # TODO : hardcoded 1 + if ( defined( $self->user_module_config_( 1, 'html', 'language' ) ) && ( $self->user_module_config_( 1, 'html', 'language' ) =~ /^Nihongo|Korean$/ )) { *************** *** 305,308 **** --- 307,312 ---- # Pass in the current interface language for language specific parsing + # TODO : hardcoded 1 + $self->{parser__}->{lang__} = $self->user_module_config_( 1, 'html', 'language' ) || ''; $self->{unclassified__} = log( $self->user_config_( 1, 'unclassified_weight' ) ); *************** *** 1711,1715 **** #---------------------------------------------------------------------------- # ! # get_session_key_from_token # # Gets a session key from a account token --- 1715,1746 ---- #---------------------------------------------------------------------------- # ! # get_single_user_session_key ! # ! # Returns a string based session key for the administrator. WARNING ! # this is not for external use. This function bypasses all ! # authentication checks and gives admin access. Should only be called ! # in the top-level POPFile process. ! # ! #---------------------------------------------------------------------------- ! sub get_single_user_session_key ! { ! my ( $self ) = @_; ! ! my $single_user_session = $self->generate_unique_session_key__(); ! $self->{api_sessions__}{$single_user_session} = 1; ! $self->db_update_cache__( $single_user_session ); ! $self->log_( 1, "get_session_key_from_token returning key $single_user_session for the single user mode" ); ! ! # Send the session to the parent so that it is recorded and can ! # be correctly shutdown ! ! $self->mq_post_( 'CREAT', $single_user_session, 1 ); ! ! return $single_user_session; ! } ! ! #---------------------------------------------------------------------------- ! # ! # get_session_key_from_token (ADMIN ONLY) # # Gets a session key from a account token *************** *** 1726,1741 **** my ( $self, $session, $module, $token ) = @_; ! # Verify that the user has an administrator session set up ! if ( !$self->is_admin_session( $session ) ) { ! return undef; } ! # If we are in single user mode then simply return the ! # administrator session for compatibility with old versions of ! # POPFile. ! if ( $self->global_config_( 'single_user' ) == 1 ) { ! return $session; } --- 1757,1774 ---- my ( $self, $session, $module, $token ) = @_; ! # If we are in single user mode then return the single user ! # mode session (a new administrator session) for compatibility ! # with old versions of POPFile. ! if ( $self->global_config_( 'single_user' ) == 1 ) { ! # Generate a new session for the single user mode ! ! return $self->get_single_user_session_key(); } ! # Verify that the user has an administrator session set up ! if ( !$self->is_admin_session( $session ) ) { ! return undef; } *************** *** 1744,1763 **** # accounts. ! if ( $module ne 'pop3' ) { ! return $session; } ! # Check the token against the associations in the database and ! # figure out which user is being talked about ! my $result = $self->{db_get_user_from_account__}->execute( ! "$module:$token" ); ! if ( !defined( $result ) ) { ! $self->log_( 1, "Unknown account $module:$token" ); ! return undef; ! } ! my $rows = $self->{db_get_user_from_account__}->fetchrow_arrayref; ! my $user = defined( $rows )?$rows->[0]:undef; if ( !defined( $user ) ) { --- 1777,1824 ---- # accounts. ! if ( ( $module ne 'pop3' ) && ( $module ne 'insert' ) ) { ! return $self->get_single_user_session_key(); } ! my $user; ! if ( $module eq 'pop3' ) { ! my ( $server, $username ) = split( /:/, $token ); ! my $secure_server = $self->module_config_( 'pop3', 'secure_server' ); ! ! if ( defined( $secure_server ) && ( $secure_server eq $server ) ) { ! ! # transparent proxy mode ! ! $self->log_( 2, "Connect $server via transparent proxy mode" ); ! ! if ( !defined($server) || !defined($username) ) { ! $self->log_( 1, "Unknown account $module:$token" ); ! return undef; ! } ! ! $user = $self->get_user_id( $session, $username ); ! ! } else { ! ! # Check the token against the associations in the database and ! # figure out which user is being talked about ! ! my $result = $self->{db_get_user_from_account__}->execute( ! "$module:$token" ); ! if ( !defined( $result ) ) { ! $self->log_( 1, "Unknown account $module:$token" ); ! return undef; ! } ! ! my $rows = $self->{db_get_user_from_account__}->fetchrow_arrayref; ! $user = defined( $rows )?$rows->[0]:undef; ! } ! } elsif ( $module eq 'insert' ) { ! # insert.pl ! ! $user = $self->get_user_id( $session, $token ); ! } if ( !defined( $user ) ) { *************** *** 2400,2403 **** --- 2461,2467 ---- my $msg_file; + # User's id of the current session + my $userid = $self->valid_session_key__( $session ); + # If we don't yet know the classification then start the parser *************** *** 2405,2409 **** if ( $class eq '' ) { $self->{parser__}->start_parse(); - my $userid = $self->valid_session_key__( $session ); ( $slot, $msg_file ) = $self->history_()->reserve_slot( $session, $userid ); } else { --- 2469,2472 ---- *************** *** 2542,2548 **** my $quarantine = $self->get_bucket_parameter( $session, $classification, 'quarantine' ); ! # TODO : Should we use user's configuration? ! ! my $modification = $self->user_config_( 1, 'subject_mod_left' ) . $classification . $self->user_config_( 1, 'subject_mod_right' ); # Add the Subject line modification or the original line back again --- 2605,2609 ---- my $quarantine = $self->get_bucket_parameter( $session, $classification, 'quarantine' ); ! my $modification = $self->user_config_( $userid, 'subject_mod_left' ) . $classification . $self->user_config_( $userid, 'subject_mod_right' ); # Add the Subject line modification or the original line back again *************** *** 2572,2578 **** # Add the XPL header ! # TODO : Should we use user's configuration? ! ! my $xpl = $self->user_config_( 1, 'xpl_angle' )?'<':''; my $xpl_localhost = ($self->config_( 'localhostname' ) eq '')?"127.0.0.1":$self->config_( 'localhostname' ); --- 2633,2637 ---- # Add the XPL header ! my $xpl = $self->user_config_( $userid, 'xpl_angle' )?'<':''; my $xpl_localhost = ($self->config_( 'localhostname' ) eq '')?"127.0.0.1":$self->config_( 'localhostname' ); *************** *** 2582,2588 **** $xpl .= ":" . $self->module_config_( 'html', 'port' ) . "/jump_to_message?view=$slot"; ! # TODO : Should we use user's configuration? ! ! if ( $self->user_config_( 1, 'xpl_angle' ) ) { $xpl .= '>'; } --- 2641,2645 ---- $xpl .= ":" . $self->module_config_( 'html', 'port' ) . "/jump_to_message?view=$slot"; ! if ( $self->user_config_( $userid, 'xpl_angle' ) ) { $xpl .= '>'; } *************** *** 3571,3574 **** --- 3628,3632 ---- if ( defined( $id ) ) { my $result = $self->set_password_for_user( $session, $id, $password ); + $self->log_( 1, "Password initialized for user '$user' by user $userid" ); if ( $result == 1 ) { return (0, $password); *************** *** 3610,3613 **** --- 3668,3672 ---- if ( defined( $id ) ) { my $result = $self->set_password_for_user( $session, $id, $password ); + $self->log_( 1, "Password changed for user '$user' by user $userid" ); if ( $result == 1 ) { return 0; *************** *** 4588,4592 **** # Pass language parameter to add_stopword() ! # TODO : hard-coded 1 return $self->{parser__}->{mangle__}->add_stopword( $stopword, $self->user_module_config_( 1, 'html', 'language' ) ); --- 4647,4651 ---- # Pass language parameter to add_stopword() ! # TODO : hardcoded 1 return $self->{parser__}->{mangle__}->add_stopword( $stopword, $self->user_module_config_( 1, 'html', 'language' ) ); *************** *** 4602,4606 **** # Pass language parameter to remove_stopword() ! # TODO : hard-coded 1 return $self->{parser__}->{mangle__}->remove_stopword( $stopword, $self->user_module_config_( 1, 'html', 'language' ) ); --- 4661,4665 ---- # Pass language parameter to remove_stopword() ! # TODO : hardcoded 1 return $self->{parser__}->{mangle__}->remove_stopword( $stopword, $self->user_module_config_( 1, 'html', 'language' ) ); |
From: naoki i. <am...@us...> - 2008-04-06 08:27:05
|
Update of /cvsroot/popfile/engine/skins/default In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv14448/skins/default Modified Files: pop3-chain-panel.thtml users-page.thtml Log Message: Change Log 1. There's no need to create account if pop3 transparent proxy server is used 2. Add a new option to use SSL when using pop3 transparent proxy 3. Add a new test for get_session_key_from_token with pop3 transparent proxy Proxy/POP3.pm Classifier/Bayes.pm skins/default/pop3-chain-panel.thtml languages/English.msg tests/TestBayes.tst Memo: If the pop3 transparent proxy server is defined (e.g. mail.example.com), POPFile will accept 'USER username' command and act as if the user 'username' has an account 'use...@ma...'. 4. insert.pl now supports multiuser mode insert.pl Classifier/Bayes.pm New command line options: insert.pl - insert mail messages into a specific bucket of the specific user Usage: insert.pl [<user>] <bucket> <messages> <user> The name of the user (multiuser mode only) <bucket> The name of the bucket <messages> Filename of message(s) to insert 5. A new session key is generated in the single user mode to avoid releasing administrator's session key Proxy/POP3.pm Classifier/Bayes.pm tests/TestBayes.tst 6. Merged a patch to solve the sqlite3 (DBD::SQLite 1.x) issues POPFile/History.pm 7. Fixed a bug that POP3.pm had not passed get_slot_fields no session keys Proxy/POP3.pm 8. New tips for deleting accounts from user skins/users-page.thtml languages/English.msg 9. New XMLRPC APIs (Ticket #39) POPFile/API.pm New APIs get_user_name_from_session initialize_users_password (ADMIN ONLY) change_users_password (ADMIN ONLY) set_password_for_user get_user_name_from_id 10. Update language file languages/Nihongo.msg Current state of the test suite: TestBayesScript PASS TestBayes PASS TestConfiguration PASS * TestHistory PASS * TestHTML PASS * TestHTTP PASS TestIMAP not tested yet TestInsertScript PASS * TestLogger PASS TestMailParse PASS TestModule PASS TestMQ PASS TestMutex PASS TestPipeScript PASS TestPOP3 fail (horribly) TestProxy PASS TestWordMangle PASS TestXMLRPC PASS (but child process does not terminate) * : needs to add tests for multi user support TODO 1. multi user mode tests are needed tests/TestConfiguration.tst tests/TestHistory.tst tests/TestHTML.tst tests/TestInsertScript.tst Index: users-page.thtml =================================================================== RCS file: /cvsroot/popfile/engine/skins/default/users-page.thtml,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -d -r1.10 -r1.11 *** users-page.thtml 30 Mar 2008 05:33:58 -0000 1.10 --- users-page.thtml 6 Apr 2008 08:27:08 -0000 1.11 *************** *** 125,129 **** </td> <td align="center"> ! <input type="submit" class="submit deleteButton" name="delete" onClick="return confirmClick('<TMPL_VAR NAME="Localize_tip_Users_Remove">')" value="<TMPL_VAR NAME="Localize_Remove">" /> </td> </tr> --- 125,129 ---- </td> <td align="center"> ! <input type="submit" class="submit deleteButton" name="delete" onClick="return confirmClick('<TMPL_VAR NAME="Localize_tip_Accounts_Remove">')" value="<TMPL_VAR NAME="Localize_Remove">" /> </td> </tr> Index: pop3-chain-panel.thtml =================================================================== RCS file: /cvsroot/popfile/engine/skins/default/pop3-chain-panel.thtml,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** pop3-chain-panel.thtml 22 May 2005 11:13:50 -0000 1.8 --- pop3-chain-panel.thtml 6 Apr 2008 08:27:08 -0000 1.9 *************** *** 5,12 **** <br /> <input type="text" name="server" id="securitySecurePOP3Server" value="<TMPL_VAR NAME="POP3_Chain_Secure_Server">" /> ! <input type="submit" class="submit" name="update_server" value="<TMPL_VAR NAME="Localize_Apply">" /> ! </form> - <form action="<TMPL_VAR NAME="Configuration_Action">" method="post"> <label class="securityLabel" for="securitySecurePOP3Port"> <TMPL_VAR NAME="Localize_Security_SecurePort">: --- 5,10 ---- <br /> <input type="text" name="server" id="securitySecurePOP3Server" value="<TMPL_VAR NAME="POP3_Chain_Secure_Server">" /> ! <br /> <label class="securityLabel" for="securitySecurePOP3Port"> <TMPL_VAR NAME="Localize_Security_SecurePort">: *************** *** 14,17 **** <br /> <input type="text" name="sport" id="securitySecurePOP3Port" value="<TMPL_VAR NAME="POP3_Chain_Secure_Port">" /> ! <input type="submit" class="submit" name="update_sport" value="<TMPL_VAR NAME="Localize_Apply">" /> </form> \ No newline at end of file --- 12,24 ---- <br /> <input type="text" name="sport" id="securitySecurePOP3Port" value="<TMPL_VAR NAME="POP3_Chain_Secure_Port">" /> ! <br /> ! ! <label class="securityLabel" for "securitySecurePOP3SSL"> ! <TMPL_VAR NAME="Localize_Security_SecureServerUseSSL"> ! </label> ! ! <input type="checkbox" name="sssl" id="securitySecurePOP3SSL" value="UseSSL" <TMPL_IF NAME="POP3_Chain_Secure_SSL">checked</TMPL_IF>" /> ! <br /> ! ! <input type="submit" class="submit" name="update_server" value="<TMPL_VAR NAME="Localize_Apply">" /> </form> \ No newline at end of file |
From: naoki i. <am...@us...> - 2008-04-06 08:27:05
|
Update of /cvsroot/popfile/engine/tests In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv14448/tests Modified Files: TestBayes.tst Log Message: Change Log 1. There's no need to create account if pop3 transparent proxy server is used 2. Add a new option to use SSL when using pop3 transparent proxy 3. Add a new test for get_session_key_from_token with pop3 transparent proxy Proxy/POP3.pm Classifier/Bayes.pm skins/default/pop3-chain-panel.thtml languages/English.msg tests/TestBayes.tst Memo: If the pop3 transparent proxy server is defined (e.g. mail.example.com), POPFile will accept 'USER username' command and act as if the user 'username' has an account 'use...@ma...'. 4. insert.pl now supports multiuser mode insert.pl Classifier/Bayes.pm New command line options: insert.pl - insert mail messages into a specific bucket of the specific user Usage: insert.pl [<user>] <bucket> <messages> <user> The name of the user (multiuser mode only) <bucket> The name of the bucket <messages> Filename of message(s) to insert 5. A new session key is generated in the single user mode to avoid releasing administrator's session key Proxy/POP3.pm Classifier/Bayes.pm tests/TestBayes.tst 6. Merged a patch to solve the sqlite3 (DBD::SQLite 1.x) issues POPFile/History.pm 7. Fixed a bug that POP3.pm had not passed get_slot_fields no session keys Proxy/POP3.pm 8. New tips for deleting accounts from user skins/users-page.thtml languages/English.msg 9. New XMLRPC APIs (Ticket #39) POPFile/API.pm New APIs get_user_name_from_session initialize_users_password (ADMIN ONLY) change_users_password (ADMIN ONLY) set_password_for_user get_user_name_from_id 10. Update language file languages/Nihongo.msg Current state of the test suite: TestBayesScript PASS TestBayes PASS TestConfiguration PASS * TestHistory PASS * TestHTML PASS * TestHTTP PASS TestIMAP not tested yet TestInsertScript PASS * TestLogger PASS TestMailParse PASS TestModule PASS TestMQ PASS TestMutex PASS TestPipeScript PASS TestPOP3 fail (horribly) TestProxy PASS TestWordMangle PASS TestXMLRPC PASS (but child process does not terminate) * : needs to add tests for multi user support TODO 1. multi user mode tests are needed tests/TestConfiguration.tst tests/TestHistory.tst tests/TestHTML.tst tests/TestInsertScript.tst Index: TestBayes.tst =================================================================== RCS file: /cvsroot/popfile/engine/tests/TestBayes.tst,v retrieving revision 1.61 retrieving revision 1.62 diff -C2 -d -r1.61 -r1.62 *** TestBayes.tst 5 Apr 2008 16:50:46 -0000 1.61 --- TestBayes.tst 6 Apr 2008 08:27:08 -0000 1.62 *************** *** 45,48 **** --- 45,49 ---- 'Classifier/Bayes' => 1, 'Classifier/WordMangle' => 1, + 'Proxy/POP3' => 1, 'POPFile/Configuration' => 1 ); *************** *** 50,54 **** $POPFile->CORE_initialize(); $POPFile->CORE_config( 1 ); - $POPFile->CORE_start(); my $b = $POPFile->get_module( 'Classifier/Bayes' ); --- 51,54 ---- *************** *** 56,59 **** --- 56,63 ---- my $l = $POPFile->get_module( 'POPFile/Logger' ); + $b->module_config_( 'pop3', 'port', 9110 ); + + $POPFile->CORE_start(); + # Test the unclassified_probability parameter *************** *** 137,156 **** my $session2 = $b->get_session_key_from_token( $session, 'smtp', 'token' ); ! test_assert( $session2 eq $session ); $session2 = $b->get_session_key_from_token( $session, 'nntp', 'token' ); ! test_assert( $session2 eq $session ); $session2 = $b->get_session_key_from_token( $session, 'pop', 'token' ); ! test_assert( $session2 eq $session ); $session2 = $b->get_session_key_from_token( $session, 'pop3', 'token' ); ! test_assert( $session2 eq $session ); $b->global_config_( 'single_user', 0 ); $session2 = $b->get_session_key_from_token( $session, 'smtp', 'token' ); ! test_assert( $session2 eq $session ); $session2 = $b->get_session_key_from_token( $session, 'nntp', 'token' ); ! test_assert( $session2 eq $session ); $session2 = $b->get_session_key_from_token( $session, 'pop', 'token' ); ! test_assert( $session2 eq $session ); $session2 = $b->get_session_key_from_token( $session, 'pop3', 'token' ); test_assert( !defined( $session2 ) ); --- 141,160 ---- my $session2 = $b->get_session_key_from_token( $session, 'smtp', 'token' ); ! test_assert( $b->is_admin_session( $session2 ) ); $session2 = $b->get_session_key_from_token( $session, 'nntp', 'token' ); ! test_assert( $b->is_admin_session( $session2 ) ); $session2 = $b->get_session_key_from_token( $session, 'pop', 'token' ); ! test_assert( $b->is_admin_session( $session2 ) ); $session2 = $b->get_session_key_from_token( $session, 'pop3', 'token' ); ! test_assert( $b->is_admin_session( $session2 ) ); $b->global_config_( 'single_user', 0 ); $session2 = $b->get_session_key_from_token( $session, 'smtp', 'token' ); ! test_assert( $b->is_admin_session( $session2 ) ); $session2 = $b->get_session_key_from_token( $session, 'nntp', 'token' ); ! test_assert( $b->is_admin_session( $session2 ) ); $session2 = $b->get_session_key_from_token( $session, 'pop', 'token' ); ! test_assert( $b->is_admin_session( $session2 ) ); $session2 = $b->get_session_key_from_token( $session, 'pop3', 'token' ); test_assert( !defined( $session2 ) ); *************** *** 165,171 **** my $session1 = $b->get_session_key_from_token( $session, 'pop3', 'fooz:bar' ); ! test_assert( !defined( $session1 ) ); $session1 = $b->get_session_key_from_token( $session, 'pop3', 'foo:bar' ); ! test_assert( defined( $session1 ) ); # get_user_parameter_list --- 169,195 ---- my $session1 = $b->get_session_key_from_token( $session, 'pop3', 'fooz:bar' ); ! test_assert( !defined( $session1 ) ); $session1 = $b->get_session_key_from_token( $session, 'pop3', 'foo:bar' ); ! test_assert( defined( $session1 ) ); ! $b->release_session_key( $session1 ); ! ! # transparent proxy ! ! $session1 = $b->get_session_key_from_token( $session, 'pop3', 'example.com:testuser' ); ! test_assert( !defined( $session1 ) ); ! ! $b->module_config_( 'pop3', 'secure_server', 'example.com' ); ! $b->module_config_( 'pop3', 'secure_port', '110' ); ! ! $session1 = $b->get_session_key_from_token( $session, 'pop3', 'example.com:testuser' ); ! test_assert( defined( $session1 ) ); ! ! $session1 = $b->get_session_key_from_token( $session, 'pop3', 'fooz:bar' ); ! test_assert( !defined( $session1 ) ); ! ! $session1 = $b->get_session_key_from_token( $session, 'pop3', 'foo:bar' ); ! test_assert( defined( $session1 ) ); ! ! $b->module_config_( 'pop3', 'secure_server', '' ); # get_user_parameter_list |
From: naoki i. <am...@us...> - 2008-04-06 08:27:05
|
Update of /cvsroot/popfile/engine In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv14448 Modified Files: insert.pl Log Message: Change Log 1. There's no need to create account if pop3 transparent proxy server is used 2. Add a new option to use SSL when using pop3 transparent proxy 3. Add a new test for get_session_key_from_token with pop3 transparent proxy Proxy/POP3.pm Classifier/Bayes.pm skins/default/pop3-chain-panel.thtml languages/English.msg tests/TestBayes.tst Memo: If the pop3 transparent proxy server is defined (e.g. mail.example.com), POPFile will accept 'USER username' command and act as if the user 'username' has an account 'use...@ma...'. 4. insert.pl now supports multiuser mode insert.pl Classifier/Bayes.pm New command line options: insert.pl - insert mail messages into a specific bucket of the specific user Usage: insert.pl [<user>] <bucket> <messages> <user> The name of the user (multiuser mode only) <bucket> The name of the bucket <messages> Filename of message(s) to insert 5. A new session key is generated in the single user mode to avoid releasing administrator's session key Proxy/POP3.pm Classifier/Bayes.pm tests/TestBayes.tst 6. Merged a patch to solve the sqlite3 (DBD::SQLite 1.x) issues POPFile/History.pm 7. Fixed a bug that POP3.pm had not passed get_slot_fields no session keys Proxy/POP3.pm 8. New tips for deleting accounts from user skins/users-page.thtml languages/English.msg 9. New XMLRPC APIs (Ticket #39) POPFile/API.pm New APIs get_user_name_from_session initialize_users_password (ADMIN ONLY) change_users_password (ADMIN ONLY) set_password_for_user get_user_name_from_id 10. Update language file languages/Nihongo.msg Current state of the test suite: TestBayesScript PASS TestBayes PASS TestConfiguration PASS * TestHistory PASS * TestHTML PASS * TestHTTP PASS TestIMAP not tested yet TestInsertScript PASS * TestLogger PASS TestMailParse PASS TestModule PASS TestMQ PASS TestMutex PASS TestPipeScript PASS TestPOP3 fail (horribly) TestProxy PASS TestWordMangle PASS TestXMLRPC PASS (but child process does not terminate) * : needs to add tests for multi user support TODO 1. multi user mode tests are needed tests/TestConfiguration.tst tests/TestHistory.tst tests/TestHTML.tst tests/TestInsertScript.tst Index: insert.pl =================================================================== RCS file: /cvsroot/popfile/engine/insert.pl,v retrieving revision 1.41 retrieving revision 1.42 diff -C2 -d -r1.41 -r1.42 *** insert.pl 6 Feb 2006 15:09:54 -0000 1.41 --- insert.pl 6 Apr 2008 08:27:07 -0000 1.42 *************** *** 44,57 **** $POPFile->CORE_initialize(); ! my $bucket = shift @ARGV; ! ! my @files; ! ! if ($^O =~ /linux/) { ! @files = @ARGV[0 .. $#ARGV]; ! } else { ! @files = map { glob } @ARGV[0 .. $#ARGV]; ! } ! @ARGV = (); --- 44,48 ---- $POPFile->CORE_initialize(); ! my @argv_backup = @ARGV; @ARGV = (); *************** *** 63,66 **** --- 54,70 ---- $c->config_( 'piddir', $c->config_( 'piddir' ) . 'insert.pl.' ); + my $multiuser_mode = ( $c->global_config_( 'single_user' ) != 1 ); + + my $user = shift @argv_backup if ( $multiuser_mode ); + my $bucket = shift @argv_backup; + + my @files; + + if ($^O =~ /linux/) { + @files = @argv_backup[0 .. $#argv_backup]; + } else { + @files = map { glob } @argv_backup[0 .. $#argv_backup]; + } + $POPFile->CORE_start(); *************** *** 69,73 **** my $b = $POPFile->get_module('Classifier::Bayes'); ! my $session = $b->get_session_key( 'admin', '' ); # Check for the existence of each file first because the API --- 73,77 ---- my $b = $POPFile->get_module('Classifier::Bayes'); ! my $session = $b->get_administrator_session_key(); # Check for the existence of each file first because the API *************** *** 82,101 **** } if ( $code == 0 ) { ! if ( !$b->is_bucket( $session, $bucket ) ) { print STDERR "Error: Bucket `$bucket' does not exist, insert aborted.\n"; $code = 1; } else { ! $b->add_messages_to_bucket( $session, $bucket, @files ); print "Added ", $#files+1, " files to `$bucket'\n"; } } $b->release_session_key( $session ); $POPFile->CORE_stop(); } } else { ! print "insert.pl - insert mail messages into a specific bucket\n\n"; ! print "Usage: insert.pl <bucket> <messages>\n"; print " <bucket> The name of the bucket\n"; print " <messages> Filename of message(s) to insert\n"; --- 86,124 ---- } + # Multiuser support + + my $user_session; + + if ( $multiuser_mode ) { + + # Get user's session id + + $user_session = $b->get_session_key_from_token( $session, 'insert', $user ); + if ( !defined($user_session) ) { + print STDERR "Error: User `$user' does not exist, insert aborted.\n"; + $code = 1; + } + } else { + $user_session = $session; + } + if ( $code == 0 ) { ! if ( !$b->is_bucket( $user_session, $bucket ) ) { print STDERR "Error: Bucket `$bucket' does not exist, insert aborted.\n"; $code = 1; } else { ! $b->add_messages_to_bucket( $user_session, $bucket, @files ); print "Added ", $#files+1, " files to `$bucket'\n"; } } + $b->release_session_key( $user_session ) if ( $multiuser_mode && defined($user_session) ); $b->release_session_key( $session ); $POPFile->CORE_stop(); } } else { ! print "insert.pl - insert mail messages into a specific bucket of the specific user\n\n"; ! print "Usage: insert.pl [<user>] <bucket> <messages>\n"; ! print " <user> The name of the user (multiuser mode only)\n"; print " <bucket> The name of the bucket\n"; print " <messages> Filename of message(s) to insert\n"; |
From: naoki i. <am...@us...> - 2008-04-06 08:27:05
|
Update of /cvsroot/popfile/engine/UI In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv14448/UI Modified Files: HTML.pm Log Message: Change Log 1. There's no need to create account if pop3 transparent proxy server is used 2. Add a new option to use SSL when using pop3 transparent proxy 3. Add a new test for get_session_key_from_token with pop3 transparent proxy Proxy/POP3.pm Classifier/Bayes.pm skins/default/pop3-chain-panel.thtml languages/English.msg tests/TestBayes.tst Memo: If the pop3 transparent proxy server is defined (e.g. mail.example.com), POPFile will accept 'USER username' command and act as if the user 'username' has an account 'use...@ma...'. 4. insert.pl now supports multiuser mode insert.pl Classifier/Bayes.pm New command line options: insert.pl - insert mail messages into a specific bucket of the specific user Usage: insert.pl [<user>] <bucket> <messages> <user> The name of the user (multiuser mode only) <bucket> The name of the bucket <messages> Filename of message(s) to insert 5. A new session key is generated in the single user mode to avoid releasing administrator's session key Proxy/POP3.pm Classifier/Bayes.pm tests/TestBayes.tst 6. Merged a patch to solve the sqlite3 (DBD::SQLite 1.x) issues POPFile/History.pm 7. Fixed a bug that POP3.pm had not passed get_slot_fields no session keys Proxy/POP3.pm 8. New tips for deleting accounts from user skins/users-page.thtml languages/English.msg 9. New XMLRPC APIs (Ticket #39) POPFile/API.pm New APIs get_user_name_from_session initialize_users_password (ADMIN ONLY) change_users_password (ADMIN ONLY) set_password_for_user get_user_name_from_id 10. Update language file languages/Nihongo.msg Current state of the test suite: TestBayesScript PASS TestBayes PASS TestConfiguration PASS * TestHistory PASS * TestHTML PASS * TestHTTP PASS TestIMAP not tested yet TestInsertScript PASS * TestLogger PASS TestMailParse PASS TestModule PASS TestMQ PASS TestMutex PASS TestPipeScript PASS TestPOP3 fail (horribly) TestProxy PASS TestWordMangle PASS TestXMLRPC PASS (but child process does not terminate) * : needs to add tests for multi user support TODO 1. multi user mode tests are needed tests/TestConfiguration.tst tests/TestHistory.tst tests/TestHTML.tst tests/TestInsertScript.tst Index: HTML.pm =================================================================== RCS file: /cvsroot/popfile/engine/UI/HTML.pm,v retrieving revision 1.385 retrieving revision 1.386 diff -C2 -d -r1.385 -r1.386 *** HTML.pm 5 Apr 2008 16:50:45 -0000 1.385 --- HTML.pm 6 Apr 2008 08:27:08 -0000 1.386 *************** *** 216,219 **** --- 216,221 ---- # translated will still appear + # TODO : hardcoded 1 + $self->load_language( 'English' ); if ( $self->user_config_( 1, 'language' ) ne 'English' ) { *************** *** 224,227 **** --- 226,231 ---- # wordtable_format option. + # TODO : hardcoded 1 + $self->classifier_()->wmformat( $self->user_config_( 1, 'wordtable_format' ) ); |
From: naoki i. <am...@us...> - 2008-04-06 08:27:05
|
Update of /cvsroot/popfile/engine/Proxy In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv14448/Proxy Modified Files: POP3.pm Log Message: Change Log 1. There's no need to create account if pop3 transparent proxy server is used 2. Add a new option to use SSL when using pop3 transparent proxy 3. Add a new test for get_session_key_from_token with pop3 transparent proxy Proxy/POP3.pm Classifier/Bayes.pm skins/default/pop3-chain-panel.thtml languages/English.msg tests/TestBayes.tst Memo: If the pop3 transparent proxy server is defined (e.g. mail.example.com), POPFile will accept 'USER username' command and act as if the user 'username' has an account 'use...@ma...'. 4. insert.pl now supports multiuser mode insert.pl Classifier/Bayes.pm New command line options: insert.pl - insert mail messages into a specific bucket of the specific user Usage: insert.pl [<user>] <bucket> <messages> <user> The name of the user (multiuser mode only) <bucket> The name of the bucket <messages> Filename of message(s) to insert 5. A new session key is generated in the single user mode to avoid releasing administrator's session key Proxy/POP3.pm Classifier/Bayes.pm tests/TestBayes.tst 6. Merged a patch to solve the sqlite3 (DBD::SQLite 1.x) issues POPFile/History.pm 7. Fixed a bug that POP3.pm had not passed get_slot_fields no session keys Proxy/POP3.pm 8. New tips for deleting accounts from user skins/users-page.thtml languages/English.msg 9. New XMLRPC APIs (Ticket #39) POPFile/API.pm New APIs get_user_name_from_session initialize_users_password (ADMIN ONLY) change_users_password (ADMIN ONLY) set_password_for_user get_user_name_from_id 10. Update language file languages/Nihongo.msg Current state of the test suite: TestBayesScript PASS TestBayes PASS TestConfiguration PASS * TestHistory PASS * TestHTML PASS * TestHTTP PASS TestIMAP not tested yet TestInsertScript PASS * TestLogger PASS TestMailParse PASS TestModule PASS TestMQ PASS TestMutex PASS TestPipeScript PASS TestPOP3 fail (horribly) TestProxy PASS TestWordMangle PASS TestXMLRPC PASS (but child process does not terminate) * : needs to add tests for multi user support TODO 1. multi user mode tests are needed tests/TestConfiguration.tst tests/TestHistory.tst tests/TestHTML.tst tests/TestInsertScript.tst Index: POP3.pm =================================================================== RCS file: /cvsroot/popfile/engine/Proxy/POP3.pm,v retrieving revision 1.118 retrieving revision 1.119 diff -C2 -d -r1.118 -r1.119 *** POP3.pm 5 Apr 2008 16:50:45 -0000 1.118 --- POP3.pm 6 Apr 2008 08:27:07 -0000 1.119 *************** *** 94,97 **** --- 94,98 ---- $self->config_( 'secure_server', '' ); $self->config_( 'secure_port', 110 ); + $self->config_( 'secure_ssl', 0 ); # Only accept connections from the local machine for POP3 *************** *** 196,200 **** $s =~ s/(\$|\@|\[|\]|\(|\)|\||\?|\*|\.|\^|\+)/\\$1/; ! my $transparent = "^USER ([^$s])+\$"; my $user_command = "USER ([^$s]+)($s(\\d+))?$s([^$s]+)($s([^$s]+))?"; my $apop_command = "APOP ([^$s]+)($s(\\d+))?$s([^$s]+) (.*?)"; --- 197,201 ---- $s =~ s/(\$|\@|\[|\]|\(|\)|\||\?|\*|\.|\^|\+)/\\$1/; ! my $transparent = "^USER ([^$s]+)\$"; my $user_command = "USER ([^$s]+)($s(\\d+))?$s([^$s]+)($s([^$s]+))?"; my $apop_command = "APOP ([^$s]+)($s(\\d+))?$s([^$s]+) (.*?)"; *************** *** 239,243 **** if ( $self->config_( 'secure_server' ) ne '' ) { $token = $self->config_( 'secure_server' ). ":$1"; ! if ( $mail = $self->verify_connected_( $mail, $client, $self->config_( 'secure_server' ), $self->config_( 'secure_port' ) ) ) { last if ($self->echo_response_($mail, $client, $command) == 2 ); } else { --- 240,249 ---- if ( $self->config_( 'secure_server' ) ne '' ) { $token = $self->config_( 'secure_server' ). ":$1"; ! $self->log_( 2, "Set transparent proxy token : '$token'" ); ! ! if ( $mail = $self->verify_connected_( $mail, $client, ! $self->config_( 'secure_server' ), ! $self->config_( 'secure_port' ), ! $self->config_( 'secure_ssl' ) ) ) { last if ($self->echo_response_($mail, $client, $command) == 2 ); } else { *************** *** 347,350 **** --- 353,357 ---- $session = $self->get_session_key_( $token ); if ( !defined( $session ) ) { + $self->tee_( $client, "-ERR Unknown account $token$eol" ); last; } *************** *** 352,364 **** $self->tee_( $client, $response ); } ! } else { ! last if ($self->echo_response_($mail, $client, ! $command) == 2 ); ! $session = $self->get_session_key_( $token ); ! if ( !defined( $session ) ) { ! last; ! } ! } ! next; } --- 359,372 ---- $self->tee_( $client, $response ); } ! } else { ! last if ($self->echo_response_($mail, $client, ! $command) == 2 ); ! $session = $self->get_session_key_( $token ); ! if ( !defined( $session ) ) { ! $self->tee_( $client, "-ERR Unknown account $token$eol" ); ! last; ! } ! } ! next; } *************** *** 381,385 **** if ( $command =~ /AUTH ([^ ]+)/ ) { if ( $self->config_( 'secure_server' ) ne '' ) { ! if ( $mail = $self->verify_connected_( $mail, $client, $self->config_( 'secure_server' ), $self->config_( 'secure_port' ) ) ) { # Loop until we get -ERR or +OK --- 389,396 ---- if ( $command =~ /AUTH ([^ ]+)/ ) { if ( $self->config_( 'secure_server' ) ne '' ) { ! if ( $mail = $self->verify_connected_( $mail, $client, ! $self->config_( 'secure_server' ), ! $self->config_( 'secure_port' ), ! $self->config_( 'secure_ssl' ) ) ) { # Loop until we get -ERR or +OK *************** *** 405,409 **** if ( $command =~ /AUTH/ ) { if ( $self->config_( 'secure_server' ) ne '' ) { ! if ( $mail = $self->verify_connected_( $mail, $client, $self->config_( 'secure_server' ), $self->config_( 'secure_port' ) ) ) { my $response = $self->echo_response_($mail, $client, "AUTH" ); last if ( $response == 2 ); --- 416,423 ---- if ( $command =~ /AUTH/ ) { if ( $self->config_( 'secure_server' ) ne '' ) { ! if ( $mail = $self->verify_connected_( $mail, $client, ! $self->config_( 'secure_server' ), ! $self->config_( 'secure_port' ), ! $self->config_( 'secure_ssl' ) ) ) { my $response = $self->echo_response_($mail, $client, "AUTH" ); last if ( $response == 2 ); *************** *** 537,541 **** if ( $command =~ /CAPA/i ) { if ( $mail || $self->config_( 'secure_server' ) ne '' ) { ! if ( $mail || ( $mail = $self->verify_connected_( $mail, $client, $self->config_( 'secure_server' ), $self->config_( 'secure_port' ) ) ) ) { my $response = $self->echo_response_($mail, $client, "CAPA" ); last if ( $response == 2 ); --- 551,558 ---- if ( $command =~ /CAPA/i ) { if ( $mail || $self->config_( 'secure_server' ) ne '' ) { ! if ( $mail || ( $mail = $self->verify_connected_( $mail, $client, ! $self->config_( 'secure_server' ), ! $self->config_( 'secure_port' ), ! $self->config_( 'secure_ssl' ) ) ) ) { my $response = $self->echo_response_($mail, $client, "CAPA" ); last if ( $response == 2 ); *************** *** 604,608 **** my ( $id, $from, $to, $cc, $subject, $date, $hash, $inserted, $bucket, $reclassified ) = ! $self->history_()->get_slot_fields( $downloaded{$count} ); if ( $bucket ne 'unknown class' ) { --- 621,625 ---- my ( $id, $from, $to, $cc, $subject, $date, $hash, $inserted, $bucket, $reclassified ) = ! $self->history_()->get_slot_fields( $downloaded{$count}, $session ); if ( $bucket ne 'unknown class' ) { *************** *** 721,724 **** --- 738,742 ---- $templ->param( 'POP3_Chain_Secure_Server' => $self->config_( 'secure_server' ) ); $templ->param( 'POP3_Chain_Secure_Port' => $self->config_( 'secure_port' ) ); + $templ->param( 'POP3_Chain_Secure_SSL' => ( $self->config_( 'secure_ssl' ) == 1 ) ); } else { $self->SUPER::configure_item( $name, $templ, $language ); *************** *** 788,791 **** --- 806,810 ---- if ( defined( $$form{server} ) ) { $self->config_( 'secure_server', $$form{server} ); + $status_message .= "\n" if ( defined( $status_message ) ); $status_message .= sprintf( $$language{Security_SecureServerUpdate}, $self->config_( 'secure_server' ) ); } *************** *** 794,797 **** --- 813,817 ---- if ( ( $$form{sport} =~ /^\d+$/ ) && ( $$form{sport} >= 1 ) && ( $$form{sport} < 65536 ) ) { $self->config_( 'secure_port', $$form{sport} ); + $status_message .= "\n" if ( defined( $status_message ) ); $status_message .= sprintf( $$language{Security_SecurePortUpdate}, $self->config_( 'secure_port' ) ); } else { *************** *** 800,803 **** --- 820,835 ---- } + if ( defined($$form{sssl}) ) { + if ( $$form{sssl} eq 'UseSSL' ) { + $self->config_( 'secure_ssl', 1 ); + $status_message .= "\n" if ( defined( $status_message ) ); + $status_message .= $$language{Security_SecureServerUseSSLOn}; + } else { + $self->config_( 'secure_ssl', 0 ); + $status_message .= "\n" if ( defined( $status_message ) ); + $status_message .= $$language{Security_SecureServerUseSSLOff}; + } + } + return( $status_message, $error_message ); } |
From: naoki i. <am...@us...> - 2008-04-05 16:51:12
|
Update of /cvsroot/popfile/engine/Classifier In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv9657/Classifier Modified Files: Bayes.pm MailParse.pm Log Message: Change Log 1. Added new subroutine Classifier/Bayes.pm is_admin_session check if the session is admin's 2. Use db_()->quote instead of hardcoded single quotes ("'") Classifier/Bayes.pm 3. Fixed almost of the test scripts to pass Classifier/Bayes.pm Classifier/MailParse.pm POPFile/History.pm Proxy/POP3.pm UI/HTML.pm UI/HTTP.pm tests/TestBayes.tst tests/TestBayesScript.tst tests/TestConfiguration.tst tests/TestHTML.script tests/TestHTML.tst tests/TestHistory.tst tests/TestMailParse.tst tests/TestMailParse015.clr tests/TestMailParse019.clr tests/TestNihongo002.wrd tests/TestNihongo008.wrd tests/TestNihongo016.wrd tests/TestNihongo017.wrd tests/TestNihongo021.qrn 4. Added new tests for the new subroutines tests/TestBayes.tst get_user_id_from_session get_user_name_from_session create_user (with cloning) initialize_users_password change_users_password get_user_name_from_id is_admin_session 5. Added new tests for the Japanese parsers (internal/MeCab) tests/TestMailParse.tst 6. make test now outputs the test results in STDERR instead of STDOUT 7. Snip long results tests.pl Current state of the test suite: TestBayesScript PASS TestBayes PASS TestConfiguration PASS * TestHistory PASS * TestHTML PASS * TestHTTP PASS TestIMAP not tested yet TestInsertScript PASS TestLogger PASS TestMailParse PASS TestModule PASS TestMQ PASS TestMutex PASS TestPipeScript PASS TestPOP3 fail (horribly) TestProxy PASS TestWordMangle PASS TestXMLRPC PASS (but child process does not terminate) * : needs to add tests for multi user support TODO 1. multi user mode tests are needed tests/TestConfiguration tests/TestHistory tests/HTML Index: Bayes.pm =================================================================== RCS file: /cvsroot/popfile/engine/Classifier/Bayes.pm,v retrieving revision 1.360 retrieving revision 1.361 diff -C2 -d -r1.360 -r1.361 *** Bayes.pm 5 Apr 2008 11:02:20 -0000 1.360 --- Bayes.pm 5 Apr 2008 16:50:45 -0000 1.361 *************** *** 329,338 **** if ( ( $nihongo_parser eq 'kakasi' ) && ( $^O eq 'MSWin32' ) && ! ( ( ( $self->user_module_config_( 1, 'pop3', 'enabled' ) ) && ! ( $self->user_module_config_( 1, 'pop3', 'force_fork' ) ) ) || ! ( ( $self->user_module_config_( 1, 'nntp', 'enabled' ) ) && ! ( $self->user_module_config_( 1, 'nntp', 'force_fork' ) ) ) || ! ( ( $self->user_module_config_( 1, 'smtp', 'enabled' ) ) && ! ( $self->user_module_config_( 1, 'smtp', 'force_fork' ) ) ) ) ) { $self->{parser__}->{need_kakasi_mutex__} = 1; --- 329,338 ---- if ( ( $nihongo_parser eq 'kakasi' ) && ( $^O eq 'MSWin32' ) && ! ( ( ( $self->module_config_( 'pop3', 'enabled' ) ) && ! ( $self->module_config_( 'pop3', 'force_fork' ) ) ) || ! ( ( $self->module_config_( 'nntp', 'enabled' ) ) && ! ( $self->module_config_( 'nntp', 'force_fork' ) ) ) || ! ( ( $self->module_config_( 'smtp', 'enabled' ) ) && ! ( $self->module_config_( 'smtp', 'force_fork' ) ) ) ) ) { $self->{parser__}->{need_kakasi_mutex__} = 1; *************** *** 1728,1732 **** # Verify that the user has an administrator session set up ! if ( $self->get_user_parameter( $session, 'GLOBAL_can_admin' ) != 1 ) { return undef; } --- 1728,1732 ---- # Verify that the user has an administrator session set up ! if ( !$self->is_admin_session( $session ) ) { return undef; } *************** *** 2816,2822 **** # Check that this user is an administrator ! my $can_admin = $self->get_user_parameter( $session, 'GLOBAL_can_admin' ); ! ! if ( $can_admin != 1 ) { return undef; } --- 2816,2820 ---- # Check that this user is an administrator ! if ( !$self->is_admin_session( $session ) ) { return undef; } *************** *** 2855,2861 **** # Check that this user is an administrator ! my $can_admin = $self->get_user_parameter( $session, 'GLOBAL_can_admin' ); ! ! if ( $can_admin != 1 ) { return 0; } --- 2853,2857 ---- # Check that this user is an administrator ! if ( !$self->is_admin_session( $session ) ) { return 0; } *************** *** 2900,2910 **** # Check that this user is an administrator ! my $can_admin = $self->get_user_parameter( $session, 'GLOBAL_can_admin' ); ! ! if ( $can_admin != 1 ) { return 0; } ! my $result = $self->db_()->do( "delete from accounts where account = '$module:$account';" ); return defined( $result ); --- 2896,2905 ---- # Check that this user is an administrator ! if ( !$self->is_admin_session( $session ) ) { return 0; } ! my $quoted_account = $self->db_()->quote( "$module:$account" ); ! my $result = $self->db_()->do( "delete from accounts where account = $quoted_account;" ); return defined( $result ); *************** *** 2957,2960 **** --- 2952,2956 ---- my $userid = $self->valid_session_key__( $session ); return undef if ( !defined( $userid ) ); + return undef if ( !defined( $self->{db_bucketid__}{$userid}{$bucket} ) ); return $self->{db_bucketid__}{$userid}{$bucket}{id}; *************** *** 2984,2988 **** } ! return ''; } --- 2980,2984 ---- } ! return undef; } *************** *** 3374,3380 **** # Check that this user is an administrator ! my $can_admin = $self->get_user_parameter( $session, 'GLOBAL_can_admin' ); ! ! if ( $can_admin != 1 ) { return ( undef, undef ); } --- 3370,3374 ---- # Check that this user is an administrator ! if ( !$self->is_admin_session( $session ) ) { return ( undef, undef ); } *************** *** 3390,3394 **** my $password_hash = md5_hex( $new_user . '__popfile__' . $password ); ! $self->db_()->do( "insert into users ( name, password ) values ( '$new_user', '$password_hash' );" ); my $id = $self->get_user_id( $session, $new_user ); --- 3384,3390 ---- my $password_hash = md5_hex( $new_user . '__popfile__' . $password ); ! my $quoted_user = $self->db_()->quote( $new_user ); ! my $quoted_hash = $self->db_()->quote( $password_hash ); ! $self->db_()->do( "insert into users ( name, password ) values ( $quoted_user, $quoted_hash );" ); my $id = $self->get_user_id( $session, $new_user ); *************** *** 3433,3437 **** $h = $self->db_()->prepare( ! "select bucket1.id, bucket2.id from buckets as bucket1, buckets as bucket2 where bucket1.userid = $id and bucket1.name = bucket2.name and bucket2.userid = $clid;" ); $h->execute; --- 3429,3433 ---- $h = $self->db_()->prepare( ! "select bucket1.id, bucket2.id from buckets as bucket1, buckets as bucket2 where bucket1.userid = $id and bucket1.name = bucket2.name and bucket2.userid = $clid;" ); $h->execute; *************** *** 3458,3462 **** my $val = $self->db_()->quote( $bucket_params{$bucketid}{$btid} ); $self->db_()->do( ! "insert into bucket_params ( bucketid, btid, val ) values ( $bucketid, $btid, $val );" ); } --- 3454,3458 ---- my $val = $self->db_()->quote( $bucket_params{$bucketid}{$btid} ); $self->db_()->do( ! "insert into bucket_params ( bucketid, btid, val ) values ( $bucketid, $btid, $val );" ); } *************** *** 3522,3528 **** # Check that this user is an administrator ! my $can_admin = $self->get_user_parameter( $session, 'GLOBAL_can_admin' ); ! ! if ( $can_admin != 1 ) { return undef; } --- 3518,3522 ---- # Check that this user is an administrator ! if ( !$self->is_admin_session( $session ) ) { return undef; } *************** *** 3533,3539 **** if ( defined( $id ) ) { ! my ( $val, $def ) = $self->get_user_parameter_from_id( $id,'GLOBAL_can_admin' ); if ( $val == 0 ) { ! $self->db_()->do( "delete from users where name = '$user';" ); return 0; } else { --- 3527,3534 ---- if ( defined( $id ) ) { ! my ( $val, $def ) = $self->get_user_parameter_from_id( $id, 'GLOBAL_can_admin' ); if ( $val == 0 ) { ! my $quoted_user = $self->db_()->quote( $user ); ! $self->db_()->do( "delete from users where name = $quoted_user;" ); return 0; } else { *************** *** 3567,3573 **** # Check that this user is an administrator ! my $can_admin = $self->get_user_parameter( $session, 'GLOBAL_can_admin' ); ! ! if ( $can_admin != 1 ) { return undef; } --- 3562,3566 ---- # Check that this user is an administrator ! if ( !$self->is_admin_session( $session ) ) { return undef; } *************** *** 3609,3615 **** # Check that this user is an administrator ! my $can_admin = $self->get_user_parameter( $session, 'GLOBAL_can_admin' ); ! ! if ( $can_admin != 1 ) { return undef; } --- 3602,3606 ---- # Check that this user is an administrator ! if ( !$self->is_admin_session( $session ) ) { return undef; } *************** *** 3645,3655 **** # Lookup the user name from the session key ! my $user; ! my $h = $self->db_()->prepare( "select name from users where id = $self->{api_sessions__}{$session};" ); ! $h->execute; ! if ( my $row = $h->fetchrow_arrayref ) { ! $h->finish; ! $user = $row->[0]; ! } else { return 0; } --- 3636,3641 ---- # Lookup the user name from the session key ! my $user = $self->get_user_name_from_session( $session ); ! if ( !defined( $user ) ) { return 0; } *************** *** 3682,3686 **** my ( $self, $session, $password ) = @_; ! my $userid = $self->{api_sessions__}{$session}; return $self->set_password_for_user( $session, $userid, $password ); --- 3668,3673 ---- my ( $self, $session, $password ) = @_; ! my $userid = $self->valid_session_key__( $session ); ! return 0 if ( !defined( $userid ) ); return $self->set_password_for_user( $session, $userid, $password ); *************** *** 3704,3716 **** my ( $self, $session, $userid, $password ) = @_; ! # Lookup the user name from the session key ! my $user; ! my $h = $self->db_()->prepare( "select name from users where id = $userid;" ); ! $h->execute; ! if ( my $row = $h->fetchrow_arrayref ) { ! $h->finish; ! $user = $row->[0]; ! } else { return 0; } --- 3691,3711 ---- my ( $self, $session, $userid, $password ) = @_; ! # Get user id for the session ! my $current_userid = $self->valid_session_key__( $session ); ! return 0 if ( !defined( $current_userid ) ); ! ! if ( $current_userid != $userid ) { ! # If the current user id is not the specified user id, check can_admin ! ! if ( !$self->is_admin_session( $session ) ) { ! return 0; ! } ! } ! ! # Lookup the user name from the user id ! ! my $user = $self->get_user_name_from_id( $session, $userid ); ! if ( !defined( $user ) ) { return 0; } *************** *** 3718,3722 **** my $hash = md5_hex( $user . '__popfile__' . $password ); ! $self->db_()->do( "update users set password = '$hash' where id = $userid;" ); return 1; --- 3713,3718 ---- my $hash = md5_hex( $user . '__popfile__' . $password ); ! my $quoted_hash = $self->db_()->quote( $hash ); ! $self->db_()->do( "update users set password = $quoted_hash where id = $userid;" ); return 1; *************** *** 3741,3747 **** # Check that this user is an administrator ! my $can_admin = $self->get_user_parameter( $session, 'GLOBAL_can_admin' ); ! ! if ( $can_admin != 1 ) { return undef; } --- 3737,3741 ---- # Check that this user is an administrator ! if ( !$self->is_admin_session( $session ) ) { return undef; } *************** *** 3774,3780 **** # Check that this user is an administrator ! my $can_admin = $self->get_user_parameter( $session, 'GLOBAL_can_admin' ); ! ! if ( $can_admin != 1 ) { return undef; } --- 3768,3772 ---- # Check that this user is an administrator ! if ( !$self->is_admin_session( $session ) ) { return undef; } *************** *** 3824,3834 **** # Check that this user is an administrator ! my $can_admin = $self->get_user_parameter( $session, 'GLOBAL_can_admin' ); ! ! if ( $can_admin != 1 ) { return undef; } ! my $h = $self->db_()->prepare( "select id from users where name = '$user';" ); $h->execute; if ( my $row = $h->fetchrow_arrayref ) { --- 3816,3825 ---- # Check that this user is an administrator ! if ( !$self->is_admin_session( $session ) ) { return undef; } ! my $quoted_user = $self->db_()->quote( $user ); ! my $h = $self->db_()->prepare( "select id from users where name = $quoted_user;" ); $h->execute; if ( my $row = $h->fetchrow_arrayref ) { *************** *** 3842,3845 **** --- 3833,3854 ---- #---------------------------------------------------------------------------- # + # is_admin_session + # + # Returns TRUE if the session is admin's + # + # $session The valid session ID + # + #---------------------------------------------------------------------------- + sub is_admin_session + { + my ( $self, $session ) = @_; + + my $result = $self->get_user_parameter( $session, 'GLOBAL_can_admin' ); + + return ( defined($result) ? ( $result == 1 ) : undef ); + } + + #---------------------------------------------------------------------------- + # # get_user_parameter_from_id # *************** *** 4127,4134 **** } $self->db_()->do( # PROFILE BLOCK START ! "delete from buckets where ! buckets.userid = $userid and ! buckets.name = '$bucket' and buckets.pseudo = 0;" ); # PROFILE BLOCK STOP $self->db_update_cache__( $session ); --- 4136,4144 ---- } + my $quoted_bucket = $self->db_()->quote( $bucket ); $self->db_()->do( # PROFILE BLOCK START ! "delete from buckets where ! buckets.userid = $userid and ! buckets.name = $quoted_bucket and buckets.pseudo = 0;" ); # PROFILE BLOCK STOP $self->db_update_cache__( $session ); *************** *** 4162,4165 **** --- 4172,4180 ---- } + if ( defined( $self->{db_bucketid__}{$userid}{$new_bucket} ) ) { + $self->log_( 0, "Bucket named $new_bucket already exists" ); + return 0; + } + my $id = $self->db_()->quote( $self->{db_bucketid__}{$userid}{$old_bucket}{id} ); $new_bucket = $self->db_()->quote( $new_bucket ); *************** *** 4311,4320 **** my $bucketid = $self->{db_bucketid__}{$userid}{$bucket}{id}; ! my $h = $self->db_()->prepare( "select magnet_types.mtype from magnet_types, magnets, buckets ! where magnet_types.id = magnets.mtid and ! magnets.bucketid = buckets.id and ! buckets.id = $bucketid ! group by magnet_types.mtype ! order by magnet_types.mtype;" ); $h->execute; --- 4326,4336 ---- my $bucketid = $self->{db_bucketid__}{$userid}{$bucket}{id}; ! my $h = $self->db_()->prepare( ! "select magnet_types.mtype from magnet_types, magnets, buckets ! where magnet_types.id = magnets.mtid and ! magnets.bucketid = buckets.id and ! buckets.id = $bucketid ! group by magnet_types.mtype ! order by magnet_types.mtype;" ); $h->execute; *************** *** 4393,4401 **** my $bucketid = $self->{db_bucketid__}{$userid}{$bucket}{id}; ! my $h = $self->db_()->prepare( "select magnets.val from magnets, magnet_types ! where magnets.bucketid = $bucketid and ! magnets.id != 0 and ! magnet_types.id = magnets.mtid and ! magnet_types.mtype = '$type' order by magnets.val;" ); $h->execute; --- 4409,4418 ---- my $bucketid = $self->{db_bucketid__}{$userid}{$bucket}{id}; ! my $h = $self->db_()->prepare( ! "select magnets.val from magnets, magnet_types ! where magnets.bucketid = $bucketid and ! magnets.id != 0 and ! magnet_types.id = magnets.mtid and ! magnet_types.mtype = '$type' order by magnets.val;" ); $h->execute; *************** *** 4428,4433 **** my $bucketid = $self->{db_bucketid__}{$userid}{$bucket}{id}; ! my $result = $self->db_()->selectrow_arrayref("select magnet_types.id from magnet_types ! where magnet_types.mtype = '$type';" ); my $mtid = $result->[0]; --- 4445,4451 ---- my $bucketid = $self->{db_bucketid__}{$userid}{$bucket}{id}; ! my $result = $self->db_()->selectrow_arrayref( ! "select magnet_types.id from magnet_types ! where magnet_types.mtype = '$type';" ); my $mtid = $result->[0]; *************** *** 4488,4493 **** my $bucketid = $self->{db_bucketid__}{$userid}{$bucket}{id}; ! my $result = $self->db_()->selectrow_arrayref("select magnet_types.id from magnet_types ! where magnet_types.mtype = '$type';" ); my $mtid = $result->[0]; --- 4506,4512 ---- my $bucketid = $self->{db_bucketid__}{$userid}{$bucket}{id}; ! my $result = $self->db_()->selectrow_arrayref( ! "select magnet_types.id from magnet_types ! where magnet_types.mtype = '$type';" ); my $mtid = $result->[0]; *************** *** 4535,4542 **** return undef if ( !defined( $userid ) ); ! my $result = $self->db_()->selectrow_arrayref( "select count(*) from magnets, buckets ! where buckets.userid = $userid and ! magnets.id != 0 and ! magnets.bucketid = buckets.id;" ); if ( defined( $result ) ) { --- 4554,4562 ---- return undef if ( !defined( $userid ) ); ! my $result = $self->db_()->selectrow_arrayref( ! "select count(*) from magnets, buckets ! where buckets.userid = $userid and ! magnets.id != 0 and ! magnets.bucketid = buckets.id;" ); if ( defined( $result ) ) { Index: MailParse.pm =================================================================== RCS file: /cvsroot/popfile/engine/Classifier/MailParse.pm,v retrieving revision 1.230 retrieving revision 1.231 diff -C2 -d -r1.230 -r1.231 *** MailParse.pm 27 Nov 2007 14:44:56 -0000 1.230 --- MailParse.pm 5 Apr 2008 16:50:45 -0000 1.231 *************** *** 350,354 **** # from hh hh hh format ! $self->{htmlcolordistance__} = $self->compute_rgb_distance( $self->{htmlfontcolor__}, $self->{htmlbackcolor__} ); } --- 350,357 ---- # from hh hh hh format ! if ( $self->{htmlfontcolor__} ne '' && $self->{htmlbackcolor__} ne '' ) { ! $self->{htmlcolordistance__} = $self->compute_rgb_distance( ! $self->{htmlfontcolor__}, $self->{htmlbackcolor__} ); ! } } *************** *** 830,834 **** $original = $1; $attribute = $2; ! $value = $5 || $6; $quote = ''; $end_quote = '[\> \t\&\n]'; --- 833,837 ---- $original = $1; $attribute = $2; ! $value = $5 || $6 || ''; $quote = ''; $end_quote = '[\> \t\&\n]'; *************** *** 2398,2405 **** $found = 0 if ($error); ! if ( defined($r) && ( 0 <= $r) && ($r <= 255) && # PROFILE BLOCK START defined($g) && ( 0 <= $g) && ($g <= 255) && ! defined($b) && ( 0 <= $b) && ($b <= 255) && ! $found ) { # PROFILE BLOCK STOP if (wantarray) { return ( $r, $g, $b ); --- 2401,2408 ---- $found = 0 if ($error); ! if ( $found && # PROFILE BLOCK START ! defined($r) && ( 0 <= $r) && ($r <= 255) && defined($g) && ( 0 <= $g) && ($g <= 255) && ! defined($b) && ( 0 <= $b) && ($b <= 255) ) { # PROFILE BLOCK STOP if (wantarray) { return ( $r, $g, $b ); |
From: naoki i. <am...@us...> - 2008-04-05 16:51:12
|
Update of /cvsroot/popfile/engine/Proxy In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv9657/Proxy Modified Files: POP3.pm Log Message: Change Log 1. Added new subroutine Classifier/Bayes.pm is_admin_session check if the session is admin's 2. Use db_()->quote instead of hardcoded single quotes ("'") Classifier/Bayes.pm 3. Fixed almost of the test scripts to pass Classifier/Bayes.pm Classifier/MailParse.pm POPFile/History.pm Proxy/POP3.pm UI/HTML.pm UI/HTTP.pm tests/TestBayes.tst tests/TestBayesScript.tst tests/TestConfiguration.tst tests/TestHTML.script tests/TestHTML.tst tests/TestHistory.tst tests/TestMailParse.tst tests/TestMailParse015.clr tests/TestMailParse019.clr tests/TestNihongo002.wrd tests/TestNihongo008.wrd tests/TestNihongo016.wrd tests/TestNihongo017.wrd tests/TestNihongo021.qrn 4. Added new tests for the new subroutines tests/TestBayes.tst get_user_id_from_session get_user_name_from_session create_user (with cloning) initialize_users_password change_users_password get_user_name_from_id is_admin_session 5. Added new tests for the Japanese parsers (internal/MeCab) tests/TestMailParse.tst 6. make test now outputs the test results in STDERR instead of STDOUT 7. Snip long results tests.pl Current state of the test suite: TestBayesScript PASS TestBayes PASS TestConfiguration PASS * TestHistory PASS * TestHTML PASS * TestHTTP PASS TestIMAP not tested yet TestInsertScript PASS TestLogger PASS TestMailParse PASS TestModule PASS TestMQ PASS TestMutex PASS TestPipeScript PASS TestPOP3 fail (horribly) TestProxy PASS TestWordMangle PASS TestXMLRPC PASS (but child process does not terminate) * : needs to add tests for multi user support TODO 1. multi user mode tests are needed tests/TestConfiguration tests/TestHistory tests/HTML Index: POP3.pm =================================================================== RCS file: /cvsroot/popfile/engine/Proxy/POP3.pm,v retrieving revision 1.117 retrieving revision 1.118 diff -C2 -d -r1.117 -r1.118 *** POP3.pm 30 Mar 2008 10:22:37 -0000 1.117 --- POP3.pm 5 Apr 2008 16:50:45 -0000 1.118 *************** *** 748,752 **** if ( $name eq 'pop3_configuration' ) { if ( defined($$form{pop3_port}) ) { ! if ( ( $$form{pop3_port} >= 1 ) && ( $$form{pop3_port} < 65536 ) ) { $self->config_( 'port', $$form{pop3_port} ); $status_message = sprintf( $$language{Configuration_POP3Update}, $self->config_( 'port' ) ); --- 748,752 ---- if ( $name eq 'pop3_configuration' ) { if ( defined($$form{pop3_port}) ) { ! if ( ( $$form{pop3_port} =~ /^\d+$/ ) && ( $$form{pop3_port} >= 1 ) && ( $$form{pop3_port} < 65536 ) ) { $self->config_( 'port', $$form{pop3_port} ); $status_message = sprintf( $$language{Configuration_POP3Update}, $self->config_( 'port' ) ); *************** *** 792,796 **** if ( defined($$form{sport}) ) { ! if ( ( $$form{sport} >= 1 ) && ( $$form{sport} < 65536 ) ) { $self->config_( 'secure_port', $$form{sport} ); $status_message .= sprintf( $$language{Security_SecurePortUpdate}, $self->config_( 'secure_port' ) ); --- 792,796 ---- if ( defined($$form{sport}) ) { ! if ( ( $$form{sport} =~ /^\d+$/ ) && ( $$form{sport} >= 1 ) && ( $$form{sport} < 65536 ) ) { $self->config_( 'secure_port', $$form{sport} ); $status_message .= sprintf( $$language{Security_SecurePortUpdate}, $self->config_( 'secure_port' ) ); |
From: naoki i. <am...@us...> - 2008-04-05 16:51:12
|
Update of /cvsroot/popfile/engine/skins/default In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv9657/skins/default Modified Files: common-middle.thtml Log Message: Change Log 1. Added new subroutine Classifier/Bayes.pm is_admin_session check if the session is admin's 2. Use db_()->quote instead of hardcoded single quotes ("'") Classifier/Bayes.pm 3. Fixed almost of the test scripts to pass Classifier/Bayes.pm Classifier/MailParse.pm POPFile/History.pm Proxy/POP3.pm UI/HTML.pm UI/HTTP.pm tests/TestBayes.tst tests/TestBayesScript.tst tests/TestConfiguration.tst tests/TestHTML.script tests/TestHTML.tst tests/TestHistory.tst tests/TestMailParse.tst tests/TestMailParse015.clr tests/TestMailParse019.clr tests/TestNihongo002.wrd tests/TestNihongo008.wrd tests/TestNihongo016.wrd tests/TestNihongo017.wrd tests/TestNihongo021.qrn 4. Added new tests for the new subroutines tests/TestBayes.tst get_user_id_from_session get_user_name_from_session create_user (with cloning) initialize_users_password change_users_password get_user_name_from_id is_admin_session 5. Added new tests for the Japanese parsers (internal/MeCab) tests/TestMailParse.tst 6. make test now outputs the test results in STDERR instead of STDOUT 7. Snip long results tests.pl Current state of the test suite: TestBayesScript PASS TestBayes PASS TestConfiguration PASS * TestHistory PASS * TestHTML PASS * TestHTTP PASS TestIMAP not tested yet TestInsertScript PASS TestLogger PASS TestMailParse PASS TestModule PASS TestMQ PASS TestMutex PASS TestPipeScript PASS TestPOP3 fail (horribly) TestProxy PASS TestWordMangle PASS TestXMLRPC PASS (but child process does not terminate) * : needs to add tests for multi user support TODO 1. multi user mode tests are needed tests/TestConfiguration tests/TestHistory tests/HTML Index: common-middle.thtml =================================================================== RCS file: /cvsroot/popfile/engine/skins/default/common-middle.thtml,v retrieving revision 1.25 retrieving revision 1.26 diff -C2 -d -r1.25 -r1.26 *** common-middle.thtml 30 Mar 2008 10:22:38 -0000 1.25 --- common-middle.thtml 5 Apr 2008 16:50:46 -0000 1.26 *************** *** 26,34 **** <br /> <TMPL_IF NAME="Header_If_Message"> ! <table class="shellStatusMessage"><tr class="shellStatusRow"><td><TMPL_VAR NAME="Header_Message" ESCAPE=HTML></td></tr></table> <br /> </TMPL_IF> <TMPL_IF NAME="Header_If_Error"> ! <table class="shellErrorMessage"><tr class="shellErrorRow"><td><TMPL_VAR NAME="Header_Error" ESCAPE=HTML></td></tr></table> <br /> </TMPL_IF> --- 26,34 ---- <br /> <TMPL_IF NAME="Header_If_Message"> ! <table class="shellStatusMessage"><tr class="shellStatusRow"><td><TMPL_VAR NAME="Header_Message"></td></tr></table> <br /> </TMPL_IF> <TMPL_IF NAME="Header_If_Error"> ! <table class="shellErrorMessage"><tr class="shellErrorRow"><td><TMPL_VAR NAME="Header_Error"></td></tr></table> <br /> </TMPL_IF> |
From: naoki i. <am...@us...> - 2008-04-05 16:51:12
|
Update of /cvsroot/popfile/engine/POPFile In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv9657/POPFile Modified Files: History.pm Log Message: Change Log 1. Added new subroutine Classifier/Bayes.pm is_admin_session check if the session is admin's 2. Use db_()->quote instead of hardcoded single quotes ("'") Classifier/Bayes.pm 3. Fixed almost of the test scripts to pass Classifier/Bayes.pm Classifier/MailParse.pm POPFile/History.pm Proxy/POP3.pm UI/HTML.pm UI/HTTP.pm tests/TestBayes.tst tests/TestBayesScript.tst tests/TestConfiguration.tst tests/TestHTML.script tests/TestHTML.tst tests/TestHistory.tst tests/TestMailParse.tst tests/TestMailParse015.clr tests/TestMailParse019.clr tests/TestNihongo002.wrd tests/TestNihongo008.wrd tests/TestNihongo016.wrd tests/TestNihongo017.wrd tests/TestNihongo021.qrn 4. Added new tests for the new subroutines tests/TestBayes.tst get_user_id_from_session get_user_name_from_session create_user (with cloning) initialize_users_password change_users_password get_user_name_from_id is_admin_session 5. Added new tests for the Japanese parsers (internal/MeCab) tests/TestMailParse.tst 6. make test now outputs the test results in STDERR instead of STDOUT 7. Snip long results tests.pl Current state of the test suite: TestBayesScript PASS TestBayes PASS TestConfiguration PASS * TestHistory PASS * TestHTML PASS * TestHTTP PASS TestIMAP not tested yet TestInsertScript PASS TestLogger PASS TestMailParse PASS TestModule PASS TestMQ PASS TestMutex PASS TestPipeScript PASS TestPOP3 fail (horribly) TestProxy PASS TestWordMangle PASS TestXMLRPC PASS (but child process does not terminate) * : needs to add tests for multi user support TODO 1. multi user mode tests are needed tests/TestConfiguration tests/TestHistory tests/HTML Index: History.pm =================================================================== RCS file: /cvsroot/popfile/engine/POPFile/History.pm,v retrieving revision 1.48 retrieving revision 1.49 diff -C2 -d -r1.48 -r1.49 *** History.pm 30 Mar 2008 10:22:37 -0000 1.48 --- History.pm 5 Apr 2008 16:50:45 -0000 1.49 *************** *** 1209,1213 **** if ( $bucket ne 'unknown_class' ) { ! my ( $slot, $file ) = $self->reserve_slot(); rename $msg, $file; my @message = ( $session, $slot, $bucket, 0 ); --- 1209,1213 ---- if ( $bucket ne 'unknown_class' ) { ! my ( $slot, $file ) = $self->reserve_slot( $session, 1 ); rename $msg, $file; my @message = ( $session, $slot, $bucket, 0 ); |
From: naoki i. <am...@us...> - 2008-04-05 16:51:12
|
Update of /cvsroot/popfile/engine/UI In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv9657/UI Modified Files: HTML.pm HTTP.pm Log Message: Change Log 1. Added new subroutine Classifier/Bayes.pm is_admin_session check if the session is admin's 2. Use db_()->quote instead of hardcoded single quotes ("'") Classifier/Bayes.pm 3. Fixed almost of the test scripts to pass Classifier/Bayes.pm Classifier/MailParse.pm POPFile/History.pm Proxy/POP3.pm UI/HTML.pm UI/HTTP.pm tests/TestBayes.tst tests/TestBayesScript.tst tests/TestConfiguration.tst tests/TestHTML.script tests/TestHTML.tst tests/TestHistory.tst tests/TestMailParse.tst tests/TestMailParse015.clr tests/TestMailParse019.clr tests/TestNihongo002.wrd tests/TestNihongo008.wrd tests/TestNihongo016.wrd tests/TestNihongo017.wrd tests/TestNihongo021.qrn 4. Added new tests for the new subroutines tests/TestBayes.tst get_user_id_from_session get_user_name_from_session create_user (with cloning) initialize_users_password change_users_password get_user_name_from_id is_admin_session 5. Added new tests for the Japanese parsers (internal/MeCab) tests/TestMailParse.tst 6. make test now outputs the test results in STDERR instead of STDOUT 7. Snip long results tests.pl Current state of the test suite: TestBayesScript PASS TestBayes PASS TestConfiguration PASS * TestHistory PASS * TestHTML PASS * TestHTTP PASS TestIMAP not tested yet TestInsertScript PASS TestLogger PASS TestMailParse PASS TestModule PASS TestMQ PASS TestMutex PASS TestPipeScript PASS TestPOP3 fail (horribly) TestProxy PASS TestWordMangle PASS TestXMLRPC PASS (but child process does not terminate) * : needs to add tests for multi user support TODO 1. multi user mode tests are needed tests/TestConfiguration tests/TestHistory tests/HTML Index: HTML.pm =================================================================== RCS file: /cvsroot/popfile/engine/UI/HTML.pm,v retrieving revision 1.384 retrieving revision 1.385 diff -C2 -d -r1.384 -r1.385 *** HTML.pm 31 Mar 2008 15:30:27 -0000 1.384 --- HTML.pm 5 Apr 2008 16:50:45 -0000 1.385 *************** *** 34,37 **** --- 34,38 ---- use IO::Socket; use IO::Select; + use Digest::MD5 qw( md5_hex ); use HTML::Template; use Date::Format; *************** *** 1264,1270 **** # Tell the user anything the dynamic UI was interested in sharing ! $self->log_( 3, "dynamic security UI $name had status/error $status_message/$error_message") if (defined $status_message || defined $error_message); ! $self->status_message__($templ,$status_message) if ( defined( $status_message )); ! $self->error_message__($templ, $error_message) if ( defined( $error_message )); } } --- 1265,1276 ---- # Tell the user anything the dynamic UI was interested in sharing ! if ( defined( $status_message ) ) { ! $self->log_( 3, "dynamic security UI $name had status $status_message"); ! $self->status_message__($templ,$status_message); ! } ! if ( defined( $error_message ) ) { ! $self->log_( 3, "dynamic security UI $name had error $error_message"); ! $self->error_message__($templ, $error_message); ! } } } *************** *** 1280,1286 **** # Tell the user anything the dynamic UI was interested in sharing ! $self->log_( 3, "dynamic chain UI $name had status/error $status_message/$error_message") if (defined $status_message || defined $error_message); ! $self->status_message__($templ,$status_message) if ( defined( $status_message )); ! $self->error_message__($templ, $error_message) if ( defined( $error_message )); } --- 1286,1297 ---- # Tell the user anything the dynamic UI was interested in sharing ! if ( defined( $status_message ) ) { ! $self->log_( 3, "dynamic chain UI $name had status $status_message"); ! $self->status_message__($templ,$status_message); ! } ! if ( defined( $error_message ) ) { ! $self->log_( 3, "dynamic chain UI $name had error $error_message"); ! $self->error_message__($templ, $error_message); ! } } *************** *** 1899,1903 **** if ( exists( $magnets{$current_mtext} ) ) { $found = 1; ! $error_message .= sprintf( $self->{language__}{Magnet_Error1}, "$mtype: $current_mtext", $bucket ) . '<br>'; last; } --- 1910,1914 ---- if ( exists( $magnets{$current_mtext} ) ) { $found = 1; ! $error_message .= sprintf( $self->{language__}{Magnet_Error1}, "$mtype: $current_mtext", $bucket ) . "\n"; last; } *************** *** 1912,1916 **** if ( ( $mtext =~ /\Q$from\E/ ) || ( $from =~ /\Q$mtext\E/ ) ) { $found = 1; ! $error_message .= sprintf( $self->{language__}{Magnet_Error2}, "$mtype: $current_mtext", "$mtype: $from", $bucket ) . '<br>'; last; } --- 1923,1927 ---- if ( ( $mtext =~ /\Q$from\E/ ) || ( $from =~ /\Q$mtext\E/ ) ) { $found = 1; ! $error_message .= sprintf( $self->{language__}{Magnet_Error2}, "$mtype: $current_mtext", "$mtype: $from", $bucket ) . "\n"; last; } *************** *** 1944,1948 **** $self->classifier_()->create_magnet( $session, $mbucket, $mtype, $current_mtext ); if ( !defined( $self->{form_}{update} ) ) { ! $status_message .= sprintf( $self->{language__}{Magnet_Error3}, "$mtype: $current_mtext", $mbucket ) . '<br>'; } } --- 1955,1959 ---- $self->classifier_()->create_magnet( $session, $mbucket, $mtype, $current_mtext ); if ( !defined( $self->{form_}{update} ) ) { ! $status_message .= sprintf( $self->{language__}{Magnet_Error3}, "$mtype: $current_mtext", $mbucket ) . "\n"; } } *************** *** 2380,2384 **** my $form_param = ( $self->{form_}{"${bucket}_$variable"} ) ? 1 : 0; ! if ( $form_param ne $bucket_param ) { $self->set_bucket_parameter__( $session, $bucket, $variable, $form_param ); } --- 2391,2395 ---- my $form_param = ( $self->{form_}{"${bucket}_$variable"} ) ? 1 : 0; ! if ( defined($form_param) && ( $form_param ne $bucket_param ) ) { $self->set_bucket_parameter__( $session, $bucket, $variable, $form_param ); } *************** *** 2392,2396 **** my $form_color = $self->{form_}{"${bucket}_color"}; ! if ( $form_color ne $bucket_color ) { $self->set_bucket_parameter__( $session, $bucket, 'color', $form_color ); } --- 2403,2407 ---- my $form_color = $self->{form_}{"${bucket}_color"}; ! if ( defined($form_color) && ( $form_color ne $bucket_color ) ) { $self->set_bucket_parameter__( $session, $bucket, 'color', $form_color ); } *************** *** 2582,2586 **** my ( $self, $templ, $start_message, $stop_message, $session ) = @_; ! $templ->param( 'History_Navigator_Fields' => $self->print_form_fields_(0,1,('session','filter','search','sort','negate' ) ) ); if ( $start_message != 0 ) { --- 2593,2597 ---- my ( $self, $templ, $start_message, $stop_message, $session ) = @_; ! $templ->param( 'History_Navigator_Fields' => $self->print_form_fields_(0,1,( 'filter','search','sort','negate' ) ) ); if ( $start_message != 0 ) { *************** *** 2610,2614 **** $row_data{History_Navigator_If_This_Page} = 1; } else { ! $row_data{History_Navigator_Fields} = $self->print_form_fields_(0,1,('session','filter','search','sort','negate')); } --- 2621,2625 ---- $row_data{History_Navigator_If_This_Page} = 1; } else { ! $row_data{History_Navigator_Fields} = $self->print_form_fields_(0,1,('filter','search','sort','negate')); } *************** *** 3519,3522 **** --- 3530,3539 ---- my ( $self, $templ, $message ) = @_; + $message =~ s/&/&/g; + $message =~ s/</</g; + $message =~ s/>/>/g; + $message =~ s/\"/"/g; + $message =~ s/\n/<br \/>/g; + my $old = $templ->param( 'Header_Message' ) || ''; $templ->param( 'Header_If_Message' => 1 ); *************** *** 3539,3543 **** my ( $self, $templ, $message ) = @_; ! $message =~ s/\n/<br \/>/; my $old = $templ->param( 'Header_Error' ) || ''; --- 3556,3564 ---- my ( $self, $templ, $message ) = @_; ! $message =~ s/&/&/g; ! $message =~ s/</</g; ! $message =~ s/>/>/g; ! $message =~ s/\"/"/g; ! $message =~ s/\n/<br \/>/g; my $old = $templ->param( 'Header_Error' ) || ''; Index: HTTP.pm =================================================================== RCS file: /cvsroot/popfile/engine/UI/HTTP.pm,v retrieving revision 1.37 retrieving revision 1.38 diff -C2 -d -r1.37 -r1.38 *** HTTP.pm 2 Dec 2007 17:27:47 -0000 1.37 --- HTTP.pm 5 Apr 2008 16:50:46 -0000 1.38 *************** *** 413,417 **** $self->log_( 1, $text ); ! print $client "HTTP/1.0 200 OK$eol"; print $client "Content-Type: text/html$eol"; print $client "Content-Length: "; --- 413,420 ---- $self->log_( 1, $text ); ! my $error_code = 500; ! $error_code = $error if ( $error eq '404' ); ! ! print $client "HTTP/1.0 $error_code Error$eol"; print $client "Content-Type: text/html$eol"; print $client "Content-Length: "; |
From: naoki i. <am...@us...> - 2008-04-05 16:51:11
|
Update of /cvsroot/popfile/engine In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv9657 Modified Files: tests.pl Log Message: Change Log 1. Added new subroutine Classifier/Bayes.pm is_admin_session check if the session is admin's 2. Use db_()->quote instead of hardcoded single quotes ("'") Classifier/Bayes.pm 3. Fixed almost of the test scripts to pass Classifier/Bayes.pm Classifier/MailParse.pm POPFile/History.pm Proxy/POP3.pm UI/HTML.pm UI/HTTP.pm tests/TestBayes.tst tests/TestBayesScript.tst tests/TestConfiguration.tst tests/TestHTML.script tests/TestHTML.tst tests/TestHistory.tst tests/TestMailParse.tst tests/TestMailParse015.clr tests/TestMailParse019.clr tests/TestNihongo002.wrd tests/TestNihongo008.wrd tests/TestNihongo016.wrd tests/TestNihongo017.wrd tests/TestNihongo021.qrn 4. Added new tests for the new subroutines tests/TestBayes.tst get_user_id_from_session get_user_name_from_session create_user (with cloning) initialize_users_password change_users_password get_user_name_from_id is_admin_session 5. Added new tests for the Japanese parsers (internal/MeCab) tests/TestMailParse.tst 6. make test now outputs the test results in STDERR instead of STDOUT 7. Snip long results tests.pl Current state of the test suite: TestBayesScript PASS TestBayes PASS TestConfiguration PASS * TestHistory PASS * TestHTML PASS * TestHTTP PASS TestIMAP not tested yet TestInsertScript PASS TestLogger PASS TestMailParse PASS TestModule PASS TestMQ PASS TestMutex PASS TestPipeScript PASS TestPOP3 fail (horribly) TestProxy PASS TestWordMangle PASS TestXMLRPC PASS (but child process does not terminate) * : needs to add tests for multi user support TODO 1. multi user mode tests are needed tests/TestConfiguration tests/TestHistory tests/HTML Index: tests.pl =================================================================== RCS file: /cvsroot/popfile/engine/tests.pl,v retrieving revision 1.50 retrieving revision 1.51 diff -C2 -d -r1.50 -r1.51 *** tests.pl 6 Feb 2006 15:09:54 -0000 1.50 --- tests.pl 5 Apr 2008 16:50:44 -0000 1.51 *************** *** 111,115 **** } $test_failures += 1; ! print "Test fail at $file:$line ($test) ($context)\n"; } else { # print "Test pass at $file:$line ($test) ($context)\n"; --- 111,116 ---- } $test_failures += 1; ! print "Test fail at $file:$line ($test)"; ! print " ($context)\n" if ( defined($context) ); } else { # print "Test pass at $file:$line ($test) ($context)\n"; *************** *** 168,172 **** $expected = '' unless (defined($expected)); ! if ( !( $expected =~ /[^0-9]/ ) && !( $test =~ /[^0-9]/ )) { # This int() and is so that we don't get bitten by odd --- 169,174 ---- $expected = '' unless (defined($expected)); ! if ( ( $expected ne '' ) && ( $test ne '' ) && ! !( $expected =~ /[^0-9]/ ) && !( $test =~ /[^0-9]/ ) ) { # This int() and is so that we don't get bitten by odd *************** *** 184,187 **** --- 186,194 ---- $expected =~ s/\012/0x0A/; + # snip long result + + $test = substr( $test, 0, 100 ) . '...' if ( length( $test ) > 100 ); + $test = substr( $expected, 0, 100 ) . '...' if ( length( $expected ) > 100 ); + test_report( $result, "expecting [$expected] and got [$test]", $file, $line, $context ); *************** *** 212,215 **** --- 219,227 ---- my $result = ( $test =~ /$expected/m ); + # snip long result + + $test = substr( $test, 0, 100 ) . '...' if ( length( $test ) > 100 ); + $test = substr( $expected, 0, 100 ) . '...' if ( length( $expected ) > 100 ); + test_report( $result, "expecting to match [$expected] and got [$test]", $file, $line, $context ); *************** *** 284,301 **** if ( !defined( $ran ) ) { ! print "Error in $test: $@"; $code = 1; } if ( $test_failures > $current_error_count ) { ! print "failed (" . ( $test_count - $current_test_count ) . " ok, " . ( $test_failures - $current_error_count ) . " failed)\n"; ! print $fail_messages . "\n"; $code = 1; } else { ! print "ok (" . ( $test_count - $current_test_count ) . " ok)"; } } } ! print "\n\n$test_count tests, " . ( $test_count - $test_failures ) . " ok, $test_failures failed\n\n"; exit $code; --- 296,314 ---- if ( !defined( $ran ) ) { ! print STDERR "Error in $test: $@"; $code = 1; } if ( $test_failures > $current_error_count ) { ! print STDERR "failed (" . ( $test_count - $current_test_count ) . " ok, " . ( $test_failures - $current_error_count ) . " failed)\n"; ! print STDERR $fail_messages . "\n"; $code = 1; } else { ! print STDERR "ok (" . ( $test_count - $current_test_count ) . " ok)"; } } } ! print STDERR "\n\n$test_count tests, " . ( $test_count - $test_failures ) . " ok, $test_failures failed\n\n"; ! print "\n"; exit $code; |