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
|
From: naoki i. <am...@us...> - 2008-04-18 12:48:47
|
Update of /cvsroot/popfile/engine/Proxy In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv18130/Proxy Modified Files: POP3.pm Log Message: Fixed typos Index: POP3.pm =================================================================== RCS file: /cvsroot/popfile/engine/Proxy/POP3.pm,v retrieving revision 1.121 retrieving revision 1.122 diff -C2 -d -r1.121 -r1.122 *** POP3.pm 18 Apr 2008 12:41:49 -0000 1.121 --- POP3.pm 18 Apr 2008 12:48:52 -0000 1.122 *************** *** 792,796 **** $status_message =~ s/\n$// if ( defined( $status_message ) ); ! $error_message =~ s/\n// if ( defined( $error_message) ); return( $status_message, $error_message ); --- 792,796 ---- $status_message =~ s/\n$// if ( defined( $status_message ) ); ! $error_message =~ s/\n$// if ( defined( $error_message) ); return( $status_message, $error_message ); *************** *** 836,840 **** $status_message =~ s/\n$// if ( defined( $status_message ) ); ! $error_message =~ s/\n// if ( defined( $error_message) ); return( $status_message, $error_message ); --- 836,840 ---- $status_message =~ s/\n$// if ( defined( $status_message ) ); ! $error_message =~ s/\n$// if ( defined( $error_message) ); return( $status_message, $error_message ); |
From: naoki i. <am...@us...> - 2008-04-18 12:41:47
|
Update of /cvsroot/popfile/engine/skins/default In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv14105/skins/default Modified Files: administration-page.thtml common-bottom.thtml Log Message: Change Log 1. Added 'Current active user sessions' section in the administration tab ( in the multiuser mode only ) 2. New function get_current_sessions() UI/HTML.pm Classifier/Bayes.pm POPFile/API.pm skins/default/administration-page.thtml languages/English.msg languages/Nihongo.msg This will allow administrators to check the current users' activities. NOTE : The administrator's session ( got by get_administrator_session_key ) is not be shown. 3. In the multiuser mode, the login user name is shown at the bottom of the UI UI/HTML.pm The login user name is shown instead of the last login user name. 4. XML-RPC stealth/server setting is now configured correctly UI/XMLRPC.pm 5. Add some status messages in the UI UI/HTML.pm UI/XMLRPC.pm Proxy/POP3.pm Proxy/SMTP.pm Proxy/NNTP.pm languages/English.msg languages/Nihongo.msg tests/TestHTML.script Magnet tab Administration tab 6. Avoid redirect to logout or shutdown page from the password page UI/HTML.pm 7. Password page for the single user mode is restored UI/HTML.pm 8. Update language file languages/Nihongo.msg 9. Minor changes of the skins skins/default/common-bottom.thtml skins/default/administration-page.thtml Current state of the test suite: TestBayesScript PASS TestBayes PASS TestConfiguration PASS * TestHistory PASS TestHTML PASS * TestHTTP PASS TestIMAP PASS TestInsertScript PASS * TestLogger PASS TestMailParse PASS TestModule PASS TestMQ PASS TestMutex PASS TestPipeScript PASS TestPOP3 PASS TestProxy PASS TestWordMangle PASS TestXMLRPC PASS * : TODO : needs to add tests for multi user support Index: common-bottom.thtml =================================================================== RCS file: /cvsroot/popfile/engine/skins/default/common-bottom.thtml,v retrieving revision 1.17 retrieving revision 1.18 diff -C2 -d -r1.17 -r1.18 *** common-bottom.thtml 17 Apr 2008 15:13:05 -0000 1.17 --- common-bottom.thtml 18 Apr 2008 12:41:49 -0000 1.18 *************** *** 13,17 **** <table class="footer" summary=""> <tr> ! <td class="footerBody"> <a class="bottomLink" href="http://getpopfile.org/" title="<TMPL_VAR NAME="Localize_tip_Footer_HomePage">"> <TMPL_VAR NAME="Localize_Footer_HomePage"></a> --- 13,17 ---- <table class="footer" summary=""> <tr> ! <td class="footerBody" width="30%"> <a class="bottomLink" href="http://getpopfile.org/" title="<TMPL_VAR NAME="Localize_tip_Footer_HomePage">"> <TMPL_VAR NAME="Localize_Footer_HomePage"></a> *************** *** 24,30 **** <br /> </td> ! <td class="footerBody"> <a class="bottomLink" href="http://getpopfile.org/"> ! <img src="<TMPL_VAR NAME="Skin_Root">otto.png" border="0" alt="" /></a> <br /> <span title="<TMPL_VAR NAME="Localize_tip_Footer_Version">"><TMPL_VAR NAME="Common_Bottom_Version"></span> --- 24,30 ---- <br /> </td> ! <td class="footerBody" width="40%"> <a class="bottomLink" href="http://getpopfile.org/"> ! <img src="<TMPL_VAR NAME="Skin_Root">otto.png" border="0" title="<TMPL_VAR NAME="Localize_tip_Footer_HomePage">" alt="<TMPL_VAR NAME="Localize_tip_Footer_HomePage">" /></a> <br /> <span title="<TMPL_VAR NAME="Localize_tip_Footer_Version">"><TMPL_VAR NAME="Common_Bottom_Version"></span> *************** *** 32,36 **** <span title="<TMPL_VAR NAME="Localize_tip_Footer_Login">">(<TMPL_VAR NAME="Common_Bottom_Date"> - <TMPL_VAR NAME="Common_Bottom_LastLogin">)</span> </td> ! <td class="footerBody"> <a class="bottomLink" href="http://getpopfile.org/wiki/<TMPL_VAR NAME="Localize_RequestFeatureLink">" title="<TMPL_VAR NAME="Localize_tip_Footer_RFE">"> <TMPL_VAR NAME="Localize_Footer_RequestFeature"></a> --- 32,36 ---- <span title="<TMPL_VAR NAME="Localize_tip_Footer_Login">">(<TMPL_VAR NAME="Common_Bottom_Date"> - <TMPL_VAR NAME="Common_Bottom_LastLogin">)</span> </td> ! <td class="footerBody" width="30%"> <a class="bottomLink" href="http://getpopfile.org/wiki/<TMPL_VAR NAME="Localize_RequestFeatureLink">" title="<TMPL_VAR NAME="Localize_tip_Footer_RFE">"> <TMPL_VAR NAME="Localize_Footer_RequestFeature"></a> Index: administration-page.thtml =================================================================== RCS file: /cvsroot/popfile/engine/skins/default/administration-page.thtml,v retrieving revision 1.16 retrieving revision 1.17 diff -C2 -d -r1.16 -r1.17 *** administration-page.thtml 17 Apr 2008 15:13:05 -0000 1.16 --- administration-page.thtml 18 Apr 2008 12:41:49 -0000 1.17 *************** *** 61,65 **** <td class="settingsPanel" width="33%" valign="top"> <div class="securityUpdateWidget"> ! <h2 class="configuration"><TMPL_VAR NAME="Localize_Security_UpdateTitle"></h2> <form class="securitySwitch" action="<TMPL_VAR NAME="Configuration_Action">" method="post"> <input type="checkbox" id="securityUpdateCheck" name="update_check" <TMPL_IF NAME="Security_If_Update_Check">checked</TMPL_IF> /> --- 61,65 ---- <td class="settingsPanel" width="33%" valign="top"> <div class="securityUpdateWidget"> ! <h2 class="configuration"><TMPL_VAR NAME="Localize_Security_UpdateTitle">/<TMPL_VAR NAME="Localize_Security_StatsTitle"></h2> <form class="securitySwitch" action="<TMPL_VAR NAME="Configuration_Action">" method="post"> <input type="checkbox" id="securityUpdateCheck" name="update_check" <TMPL_IF NAME="Security_If_Update_Check">checked</TMPL_IF> /> *************** *** 75,79 **** <input type="submit" class="submit" name="privacy" value="<TMPL_VAR NAME="Localize_Apply">" /> <br /><br /> - <i><TMPL_VAR NAME="Localize_Security_ExplainUpdate"></i> </form> <hr /> --- 75,78 ---- *************** *** 126,129 **** --- 125,160 ---- </TMPL_IF> + <TMPL_IF NAME="If_Single_User"><TMPL_ELSE> + <hr /> + + <h2 class="configuration"><TMPL_VAR NAME="Localize_Configuration_CurrentSessions"></h2> + <TMPL_IF NAME="Configuration_If_Show_CurrentSessions"> + <table width="100%" summary=""> + <tr> + <th align="left"><TMPL_VAR NAME="Localize_Configuration_CurrentSessions_UserName"></th> + <th align="left"><TMPL_VAR NAME="Localize_Configuration_CurrentSessions_LastUsed"></th> + <th align="left"><TMPL_VAR NAME="Localize_Configuration_CurrentSessions_IdleTime"></th> + </tr> + + <TMPL_LOOP NAME="Configuration_Loop_CurrentSessions"> + <TMPL_IF NAME="__odd__"> + <tr class="rowOdd"> + <TMPL_ELSE> + <tr class="rowEven"> + </TMPL_IF> + <td aligh="left" ><TMPL_VAR NAME="CurrentSessions_UserName"></td> + <td align="left" ><TMPL_VAR NAME="CurrentSessions_LastUsed"></td> + <td align="right"><TMPL_VAR NAME="CurrentSessions_IdleTime"></td> + </tr> + </TMPL_LOOP> + + </table> + <br/> + </TMPL_IF> + + <form action="/administration" method="post"> + <input type="submit" class="submit" name="refresh_current_sessions" value="<TMPL_VAR NAME="Localize_Refresh">" /> + </form> + </TMPL_IF> </td> |
From: naoki i. <am...@us...> - 2008-04-18 12:41:46
|
Update of /cvsroot/popfile/engine/UI In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv14105/UI Modified Files: HTML.pm XMLRPC.pm Log Message: Change Log 1. Added 'Current active user sessions' section in the administration tab ( in the multiuser mode only ) 2. New function get_current_sessions() UI/HTML.pm Classifier/Bayes.pm POPFile/API.pm skins/default/administration-page.thtml languages/English.msg languages/Nihongo.msg This will allow administrators to check the current users' activities. NOTE : The administrator's session ( got by get_administrator_session_key ) is not be shown. 3. In the multiuser mode, the login user name is shown at the bottom of the UI UI/HTML.pm The login user name is shown instead of the last login user name. 4. XML-RPC stealth/server setting is now configured correctly UI/XMLRPC.pm 5. Add some status messages in the UI UI/HTML.pm UI/XMLRPC.pm Proxy/POP3.pm Proxy/SMTP.pm Proxy/NNTP.pm languages/English.msg languages/Nihongo.msg tests/TestHTML.script Magnet tab Administration tab 6. Avoid redirect to logout or shutdown page from the password page UI/HTML.pm 7. Password page for the single user mode is restored UI/HTML.pm 8. Update language file languages/Nihongo.msg 9. Minor changes of the skins skins/default/common-bottom.thtml skins/default/administration-page.thtml Current state of the test suite: TestBayesScript PASS TestBayes PASS TestConfiguration PASS * TestHistory PASS TestHTML PASS * TestHTTP PASS TestIMAP PASS TestInsertScript PASS * TestLogger PASS TestMailParse PASS TestModule PASS TestMQ PASS TestMutex PASS TestPipeScript PASS TestPOP3 PASS TestProxy PASS TestWordMangle PASS TestXMLRPC PASS * : TODO : needs to add tests for multi user support Index: HTML.pm =================================================================== RCS file: /cvsroot/popfile/engine/UI/HTML.pm,v retrieving revision 1.390 retrieving revision 1.391 diff -C2 -d -r1.390 -r1.391 *** HTML.pm 17 Apr 2008 15:13:05 -0000 1.390 --- HTML.pm 18 Apr 2008 12:41:49 -0000 1.391 *************** *** 43,47 **** use MIME::Base64; use Crypt::CBC; - use Digest::MD5 qw( md5_hex ); # This is used to get the hostname of the current machine --- 43,46 ---- *************** *** 489,493 **** $self->global_config_( 'single_user' ) ) { ! $session = $self->classifier_()->get_single_user_session_key(); if ( defined ( $session ) ) { # $self->{sessions__}{$session}{lastused} = time; --- 488,494 ---- $self->global_config_( 'single_user' ) ) { ! # If admin has a password, then redirect to the password page ! ! $session = $self->classifier_()->get_session_key( 'admin', '' ); if ( defined ( $session ) ) { # $self->{sessions__}{$session}{lastused} = time; *************** *** 1234,1237 **** --- 1235,1239 ---- # Read the CGI parameters and set the configuration vars accordingly # Server / Stealth mode + if ( defined $self->{form_}->{apply_stealth} ) { my $current_single_user = $self->global_config_( 'single_user' ); *************** *** 1240,1246 **** --- 1242,1250 ---- if ( $self->{form_}->{ serveropt_html } ) { $self->config_( 'local', 0 ); + $self->status_message__( $templ, $self->language($session)->{Security_ServerModeUpdateUI} ); } else { $self->config_( 'local', 1 ); + $self->status_message__( $templ, $self->language($session)->{Security_StealthModeUpdateUI} ); } *************** *** 1252,1271 **** } } # Privacy options elsif ( $self->{form_}->{privacy} ) { ! $self->user_config_( $user, 'send_stats', $self->{form_}->{send_stats} ? 1 : 0 ); ! $self->user_config_( $user, 'update_check', $self->{form_}->{update_check} ? 1 : 0 ); } # Logger options elsif ( $self->{form_}->{submit_debug} ) { ! $self->module_config_( 'logger', 'level', $self->{form_}->{level} ); if ( ( defined($self->{form_}->{debug}) ) && ! ( ( $self->{form_}{debug} >= 1 ) && ! ( $self->{form_}{debug} <= 4 ) ) ) { ! $self->global_config_( 'debug', $self->{form_}{debug}-1 ); } } # HTML module options elsif ( $self->{form_}->{update_modules} ) { if ( defined($self->{form_}{ui_port}) ) { --- 1256,1312 ---- } } + # Privacy options + elsif ( $self->{form_}->{privacy} ) { ! if ( $self->{form_}->{send_stats} ) { ! $self->user_config_( $user, 'send_stats', 1 ); ! $self->status_message__( $templ, $self->language($session)->{Security_StatsOn} . "\n" . ! $self->language($session)->{Security_ExplainStats} ); ! } else { ! $self->user_config_( $user, 'send_stats', 0 ); ! $self->status_message__( $templ, $self->language($session)->{Security_StatsOff} ); ! } ! if ( $self->{form_}->{update_check} ) { ! $self->user_config_( $user, 'update_check', 1 ); ! $self->status_message__( $templ, $self->language($session)->{Security_UpdateOn} . "\n" . ! $self->language($session)->{Security_ExplainUpdate} ); ! } else { ! $self->user_config_( $user, 'update_check', 0 ); ! $self->status_message__( $templ, $self->language($session)->{Security_UpdateOff} ); ! } } + # Logger options + elsif ( $self->{form_}->{submit_debug} ) { ! my $logger_level = $self->{form_}->{level}; ! ! $self->module_config_( 'logger', 'level', $logger_level ); ! $self->status_message__( ! $templ, ! sprintf( $self->language($session)->{Configuration_Logger_LevelUpdate}, ! $self->language($session)->{"Configuration_Logger_Level$logger_level"} ) ); if ( ( defined($self->{form_}->{debug}) ) && ! ( ( $self->{form_}{debug} >= 1 ) && ! ( $self->{form_}{debug} <= 4 ) ) ) { ! my $debug = $self->{form_}{debug} - 1; ! my %debug_options = ( ! 0 => 'Configuration_None', ! 1 => 'Configuration_ToFile', ! 2 => 'Configuration_ToScreen', ! 3 => 'Configuration_ToScreenFile' ); ! ! $self->global_config_( 'debug', $debug ); ! $self->status_message__( ! $templ, ! sprintf( $self->language($session)->{Configuration_LoggerOutputUpdate}, ! $self->language($session)->{$debug_options{$debug}} ) ); } } + # HTML module options + elsif ( $self->{form_}->{update_modules} ) { if ( defined($self->{form_}{ui_port}) ) { *************** *** 1293,1296 **** --- 1334,1338 ---- # Set the template parameters + #$templ->param( 'Security_If_Password_Updated' => ( defined($self->{form_}{password} ) ) ); $templ->param( 'Configuration_UI_Port' => $self->config_( 'port' ) ); *************** *** 1317,1327 **** # 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); } } --- 1359,1370 ---- # 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 ); } } *************** *** 1338,1348 **** # 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); } } --- 1381,1392 ---- # 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 ); } } *************** *** 1397,1406 **** # Tell the user anything the dynamic UI was interested in sharing if ( defined( $status_message )) { ! $self->status_message__($templ,$status_message); $self->log_( 2, "dynamic config UI $name had status $status_message"); } if ( defined( $error_message )) { ! $self->error_message__($templ, $error_message); $self->log_( 2, "dynamic config UI $name had error $error_message"); } --- 1441,1451 ---- # Tell the user anything the dynamic UI was interested in sharing + if ( defined( $status_message )) { ! $self->status_message__( $templ, $status_message ); $self->log_( 2, "dynamic config UI $name had status $status_message"); } if ( defined( $error_message )) { ! $self->error_message__( $templ, $error_message ); $self->log_( 2, "dynamic config UI $name had error $error_message"); } *************** *** 1437,1440 **** --- 1482,1516 ---- } + # Current active sessions + + $templ->param( 'Configuration_If_Show_CurrentSessions' => 1); + my $active_sessions = $self->classifier_()->get_current_sessions( $session ); + my @active_sessions_data; + my $current_time = time; + my $odd = 1; + foreach my $active_session (@{$active_sessions}) { + my %row; + $row{CurrentSessions_UserName} = + $self->classifier_()->get_user_name_from_id( $session, $active_session->{userid} ); + $row{CurrentSessions_LastUsed} = + $self->pretty_date__( $active_session->{lastused}, 0, $session ); + my $idletime = $current_time - $active_session->{lastused}; + my $h = int( $idletime / 3600 ); + my $m = int( ( $idletime % 3600 ) / 60 ); + my $s = $idletime % 60; + if ( $h > 0 ) { + $row{CurrentSessions_IdleTime} = + sprintf( "%d:%02d:%02d", $h, $m, $s ); + } elsif ( $m > 0 ) { + $row{CurrentSessions_IdleTime} = + sprintf( "%02d:%02d", $m, $s ); + } else { + $row{CurrentSessions_IdleTime} = + sprintf( ":%02d", $s ); + } + push( @active_sessions_data, \%row ); + } + $templ->param( 'Configuration_Loop_CurrentSessions' => \@active_sessions_data ); + # If the single user mode (POPFile classic) is enabled or disabled # we should reflesh the UI *************** *** 1959,1965 **** $page, $session ); - my $error_message = ''; - my $status_message = ''; - if ( defined( $self->{form_}{delete} ) ) { for my $i ( 1 .. $self->{form_}{count} ) { --- 2035,2038 ---- *************** *** 1971,1974 **** --- 2044,2051 ---- $self->classifier_()->delete_magnet( $session, $mbucket, $mtype, $mtext ); + $self->status_message__( + $templ, + sprintf( $self->language($session)->{Magnet_RemovedMagnets}, + "$mtype: $mtext", $mbucket ) ); } } *************** *** 2033,2037 **** if ( exists( $magnets{$current_mtext} ) ) { $found = 1; ! $error_message .= sprintf( $self->language($session)->{Magnet_Error1}, "$mtype: $current_mtext", $bucket ) . "\n"; last; } --- 2110,2117 ---- if ( exists( $magnets{$current_mtext} ) ) { $found = 1; ! $self->error_message__( ! $templ, ! sprintf( $self->language($session)->{Magnet_Error1}, ! "$mtype: $current_mtext", $bucket ) ); last; } *************** *** 2046,2050 **** if ( ( $mtext =~ /\Q$from\E/ ) || ( $from =~ /\Q$mtext\E/ ) ) { $found = 1; ! $error_message .= sprintf( $self->language($session)->{Magnet_Error2}, "$mtype: $current_mtext", "$mtype: $from", $bucket ) . "\n"; last; } --- 2126,2133 ---- if ( ( $mtext =~ /\Q$from\E/ ) || ( $from =~ /\Q$mtext\E/ ) ) { $found = 1; ! $self->error_message__( ! $templ, ! sprintf( $self->language($session)->{Magnet_Error2}, ! "$mtype: $current_mtext", "$mtype: $from", $bucket ) ); last; } *************** *** 2078,2082 **** $self->classifier_()->create_magnet( $session, $mbucket, $mtype, $current_mtext ); if ( !defined( $self->{form_}{update} ) ) { ! $status_message .= sprintf( $self->language($session)->{Magnet_Error3}, "$mtype: $current_mtext", $mbucket ) . "\n"; } } --- 2161,2168 ---- $self->classifier_()->create_magnet( $session, $mbucket, $mtype, $current_mtext ); if ( !defined( $self->{form_}{update} ) ) { ! $self->status_message__( ! $templ, ! sprintf( $self->language($session)->{Magnet_Error3}, ! "$mtype: $current_mtext", $mbucket ) ); } } *************** *** 2086,2098 **** } - # Show error/status message - - if ( $error_message ne '' ) { - $self->error_message__( $templ, $error_message ); - } - if ( $status_message ne '' ) { - $self->status_message__( $templ, $status_message ); - } - # Current Magnets panel --- 2172,2175 ---- *************** *** 3412,3415 **** --- 3489,3497 ---- $self->history_()->get_slot_fields( $self->{form_}{view}, $session ); + if ( !defined($id) ) { + $self->http_redirect_( $client, "/history", $session ); + return 1; + } + my ( $header, $value ); if ( $magnet ne '' ) { *************** *** 3418,3426 **** } - if ( !defined($id) ) { - $self->http_redirect_( $client, "/history", $session ); - return 1; - } - my $mail_file = $self->history_()->get_slot_file( $self->{form_}{view} ); my $start_message = $self->{form_}{start_message} || 0; --- 3500,3503 ---- *************** *** 3614,3617 **** --- 3691,3702 ---- my $single_user = $self->global_config_( 'single_user' ); + if ( defined( $url ) ) { + # If the URL is '/logout' or '/shutdown', remove it + + if ( ( $url eq '/logout' ) || ( $url eq '/shutdown' ) ) { + $url = '/'; + } + } + $templ->param( 'Header_If_Password' => 1 ); $templ->param( 'Next_Url' => $url ); *************** *** 3708,3715 **** --- 3793,3802 ---- my $user = 1; + my $username = ''; my $can_admin = 0; if ( defined( $session ) ) { $user = $self->{sessions__}{$session}{user}; + $username = $self->classifier_()->get_user_name_from_session( $session ); $can_admin = $self->classifier_()->is_admin_session( $session ); } *************** *** 3743,3747 **** my %fixups = ( 'Skin_Root' => $root, ! 'Common_Bottom_LastLogin' => $self->{last_login__}, 'Common_Bottom_Version' => $self->version(), 'If_Show_Bucket_Help' => --- 3830,3837 ---- my %fixups = ( 'Skin_Root' => $root, ! 'Common_Bottom_LastLogin' => ! ( $self->global_config_( 'single_user' ) ? ! $self->{last_login__} : ! $username ), 'Common_Bottom_Version' => $self->version(), 'If_Show_Bucket_Help' => Index: XMLRPC.pm =================================================================== RCS file: /cvsroot/popfile/engine/UI/XMLRPC.pm,v retrieving revision 1.23 retrieving revision 1.24 diff -C2 -d -r1.23 -r1.24 *** XMLRPC.pm 20 Feb 2006 02:22:57 -0000 1.23 --- XMLRPC.pm 18 Apr 2008 12:41:49 -0000 1.24 *************** *** 257,266 **** if ( $name eq 'xmlrpc_local' ) { ! if ( $self->config_( 'local' ) == 1 ) { ! $templ->param( 'XMLRPC_local_on' => 1 ); ! } ! else { ! $templ->param( 'XMLRPC_local_on' => 0 ); ! } } } --- 257,262 ---- if ( $name eq 'xmlrpc_local' ) { ! $templ->param( 'XMLRPC_local_on' => $self->config_( 'local' ) ); ! return $self->config_( 'local' ); } } *************** *** 289,293 **** if ( $name eq 'xmlrpc_port' ) { if ( defined($$form{xmlrpc_port}) ) { ! if ( ( $$form{xmlrpc_port} >= 1 ) && ( $$form{xmlrpc_port} < 65536 ) ) { $self->config_( 'port', $$form{xmlrpc_port} ); $status = sprintf( $$language{Configuration_XMLRPCUpdate}, $self->config_( 'port' ) ); --- 285,289 ---- if ( $name eq 'xmlrpc_port' ) { if ( defined($$form{xmlrpc_port}) ) { ! if ( ( $$form{xmlrpc_port} =~ /^\d+$/ ) && ( $$form{xmlrpc_port} >= 1 ) && ( $$form{xmlrpc_port} < 65536 ) ) { $self->config_( 'port', $$form{xmlrpc_port} ); $status = sprintf( $$language{Configuration_XMLRPCUpdate}, $self->config_( 'port' ) ); *************** *** 299,303 **** if ( $name eq 'xmlrpc_local' ) { ! $self->config_( 'local', $$form{xmlrpc_local}-1 ) if ( defined($$form{xmlrpc_local}) ); } --- 295,308 ---- if ( $name eq 'xmlrpc_local' ) { ! if ( $$form{serveropt_xmlrpc} ) { ! $self->config_( 'local', 0 ); ! $status = $$language{Security_ServerModeUpdateXMLRPC}; ! } ! else { ! $self->config_( 'local', 1 ); ! $status = $$language{Security_StealthModeUpdateXMLRPC}; ! } ! ! return( $status, $error ); } |
From: naoki i. <am...@us...> - 2008-04-18 12:41:46
|
Update of /cvsroot/popfile/engine/POPFile In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv14105/POPFile Modified Files: API.pm Log Message: Change Log 1. Added 'Current active user sessions' section in the administration tab ( in the multiuser mode only ) 2. New function get_current_sessions() UI/HTML.pm Classifier/Bayes.pm POPFile/API.pm skins/default/administration-page.thtml languages/English.msg languages/Nihongo.msg This will allow administrators to check the current users' activities. NOTE : The administrator's session ( got by get_administrator_session_key ) is not be shown. 3. In the multiuser mode, the login user name is shown at the bottom of the UI UI/HTML.pm The login user name is shown instead of the last login user name. 4. XML-RPC stealth/server setting is now configured correctly UI/XMLRPC.pm 5. Add some status messages in the UI UI/HTML.pm UI/XMLRPC.pm Proxy/POP3.pm Proxy/SMTP.pm Proxy/NNTP.pm languages/English.msg languages/Nihongo.msg tests/TestHTML.script Magnet tab Administration tab 6. Avoid redirect to logout or shutdown page from the password page UI/HTML.pm 7. Password page for the single user mode is restored UI/HTML.pm 8. Update language file languages/Nihongo.msg 9. Minor changes of the skins skins/default/common-bottom.thtml skins/default/administration-page.thtml Current state of the test suite: TestBayesScript PASS TestBayes PASS TestConfiguration PASS * TestHistory PASS TestHTML PASS * TestHTTP PASS TestIMAP PASS TestInsertScript PASS * TestLogger PASS TestMailParse PASS TestModule PASS TestMQ PASS TestMutex PASS TestPipeScript PASS TestPOP3 PASS TestProxy PASS TestWordMangle PASS TestXMLRPC PASS * : TODO : needs to add tests for multi user support Index: API.pm =================================================================== RCS file: /cvsroot/popfile/engine/POPFile/API.pm,v retrieving revision 1.16 retrieving revision 1.17 diff -C2 -d -r1.16 -r1.17 *** API.pm 16 Apr 2008 13:08:04 -0000 1.16 --- API.pm 18 Apr 2008 12:41:49 -0000 1.17 *************** *** 126,129 **** --- 126,130 ---- sub get_bucket_word_prefixes { [ shift->{c}->get_bucket_word_prefixes( @_ ) ]; } sub get_user_parameter_list { [ shift->{c}->get_bucket_word_list( @_ ) ]; } + sub get_current_sessions { [ shift->{c}->get_current_sessions( @_ ) ]; } sub create_user { [ shift->{c}->create_user( @_ ) ]; } |
From: naoki i. <am...@us...> - 2008-04-18 12:41:46
|
Update of /cvsroot/popfile/engine/Classifier In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv14105/Classifier Modified Files: Bayes.pm Log Message: Change Log 1. Added 'Current active user sessions' section in the administration tab ( in the multiuser mode only ) 2. New function get_current_sessions() UI/HTML.pm Classifier/Bayes.pm POPFile/API.pm skins/default/administration-page.thtml languages/English.msg languages/Nihongo.msg This will allow administrators to check the current users' activities. NOTE : The administrator's session ( got by get_administrator_session_key ) is not be shown. 3. In the multiuser mode, the login user name is shown at the bottom of the UI UI/HTML.pm The login user name is shown instead of the last login user name. 4. XML-RPC stealth/server setting is now configured correctly UI/XMLRPC.pm 5. Add some status messages in the UI UI/HTML.pm UI/XMLRPC.pm Proxy/POP3.pm Proxy/SMTP.pm Proxy/NNTP.pm languages/English.msg languages/Nihongo.msg tests/TestHTML.script Magnet tab Administration tab 6. Avoid redirect to logout or shutdown page from the password page UI/HTML.pm 7. Password page for the single user mode is restored UI/HTML.pm 8. Update language file languages/Nihongo.msg 9. Minor changes of the skins skins/default/common-bottom.thtml skins/default/administration-page.thtml Current state of the test suite: TestBayesScript PASS TestBayes PASS TestConfiguration PASS * TestHistory PASS TestHTML PASS * TestHTTP PASS TestIMAP PASS TestInsertScript PASS * TestLogger PASS TestMailParse PASS TestModule PASS TestMQ PASS TestMutex PASS TestPipeScript PASS TestPOP3 PASS TestProxy PASS TestWordMangle PASS TestXMLRPC PASS * : TODO : needs to add tests for multi user support Index: Bayes.pm =================================================================== RCS file: /cvsroot/popfile/engine/Classifier/Bayes.pm,v retrieving revision 1.367 retrieving revision 1.368 diff -C2 -d -r1.367 -r1.368 *** Bayes.pm 17 Apr 2008 15:13:04 -0000 1.367 --- Bayes.pm 18 Apr 2008 12:41:49 -0000 1.368 *************** *** 1939,1942 **** --- 1939,1973 ---- #---------------------------------------------------------------------------- # + # get_current_sessions + # + # Gets the current active user session list (ADMIN ONLY) + # + # $session Valid administrator session + # + # Returns current active sessions as an array + # + #---------------------------------------------------------------------------- + sub get_current_sessions + { + my ( $self, $session ) = @_; + + return undef if ( !$self->is_admin_session( $session ) ); + + my @result; + foreach my $current_session ( keys %{$self->{api_sessions__}} ) { + next if ( defined( $self->{api_sessions__}{$current_session}{notexpired} ) ); + + my %row; + $row{session} = $current_session; + $row{userid} = $self->{api_sessions__}{$current_session}{userid}; + $row{lastused} = $self->{api_sessions__}{$current_session}{lastused}; + push ( @result, \%row ); + } + + return \@result; + } + + #---------------------------------------------------------------------------- + # # get_top_bucket__ # *************** *** 3000,3003 **** --- 3031,3035 ---- # Returns 1 if the account was added successfully, or 0 for an error, # -1 if another user already has that account associated with it + # # ---------------------------------------------------------------------------- sub add_account *************** *** 3478,3482 **** # If there is a non-default value for this parameter then return it. ! $self->{db_get_bucket_parameter__}->execute( $self->{db_bucketid__}{$userid}{$bucket}{id}, $self->{db_parameterid__}{$parameter} ); my $result = $self->{db_get_bucket_parameter__}->fetchrow_arrayref; --- 3510,3516 ---- # If there is a non-default value for this parameter then return it. ! $self->{db_get_bucket_parameter__}->execute( ! $self->{db_bucketid__}{$userid}{$bucket}{id}, ! $self->{db_parameterid__}{$parameter} ); my $result = $self->{db_get_bucket_parameter__}->fetchrow_arrayref; *************** *** 3541,3545 **** 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 ); --- 3575,3580 ---- 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 ); *************** *** 3565,3569 **** # Clone user's parameters ! my $h = $self->db_()->prepare( "select utid, val from user_params where userid = ?;" ); $h->execute( $clid ); --- 3600,3605 ---- # Clone user's parameters ! my $h = $self->db_()->prepare( ! "select utid, val from user_params where userid = ?;" ); $h->execute( $clid ); *************** *** 3574,3579 **** $h->finish; ! $h = $self->db_()->prepare( "insert into user_params ( userid, utid, val ) ! values ( ?, ?, ? );" ); foreach my $utid (keys %add) { $h->execute( $id, $utid, $add{$utid} ); --- 3610,3616 ---- $h->finish; ! $h = $self->db_()->prepare( ! "insert into user_params ( userid, utid, val ) ! values ( ?, ?, ? );" ); foreach my $utid (keys %add) { $h->execute( $id, $utid, $add{$utid} ); *************** *** 3583,3587 **** # Clone buckets (optional) ! $h = $self->db_()->prepare( "select name, pseudo from buckets where userid = ?;" ); $h->execute( $clid ); my %buckets; --- 3620,3625 ---- # Clone buckets (optional) ! $h = $self->db_()->prepare( ! "select name, pseudo from buckets where userid = ?;" ); $h->execute( $clid ); my %buckets; *************** *** 3591,3596 **** $h->finish; ! $h = $self->db_()->prepare( "insert into buckets ( userid, name, pseudo ) ! values ( ?, ?, ? );" ); foreach my $name (keys %buckets) { $h->execute( $id, $name, $buckets{$name} ); --- 3629,3635 ---- $h->finish; ! $h = $self->db_()->prepare( ! "insert into buckets ( userid, name, pseudo ) ! values ( ?, ?, ? );" ); foreach my $name (keys %buckets) { $h->execute( $id, $name, $buckets{$name} ); *************** *** 3624,3629 **** $h->finish; ! $h = $self->db_()->prepare( "insert into bucket_params ( bucketid, btid, val) ! values ( ?, ?, ? );" ); foreach my $bucketid ( keys %bucket_params ) { foreach my $btid ( keys %{$bucket_params{$bucketid}} ) { --- 3663,3669 ---- $h->finish; ! $h = $self->db_()->prepare( ! "insert into bucket_params ( bucketid, btid, val) ! values ( ?, ?, ? );" ); foreach my $bucketid ( keys %bucket_params ) { foreach my $btid ( keys %{$bucket_params{$bucketid}} ) { *************** *** 3648,3653 **** $h->finish; ! $h = $self->db_()->prepare( "insert into magnets ( bucketid, mtid, val ) ! values ( ?, ?, ? );" ); foreach my $bucketid ( keys %magnets ) { foreach my $mtid ( keys %{$magnets{$bucketid}} ) { --- 3688,3694 ---- $h->finish; ! $h = $self->db_()->prepare( ! "insert into magnets ( bucketid, mtid, val ) ! values ( ?, ?, ? );" ); foreach my $bucketid ( keys %magnets ) { foreach my $mtid ( keys %{$magnets{$bucketid}} ) { *************** *** 3663,3668 **** if ( $copy_corpus ) { $h = $self->db_()->prepare( ! "select matrix.bucketid, matrix.wordid, matrix.times from matrix, buckets ! where matrix.bucketid = buckets.id and buckets.userid = ?;" ); $h->execute( $clid ); --- 3704,3709 ---- if ( $copy_corpus ) { $h = $self->db_()->prepare( ! "select matrix.bucketid, matrix.wordid, matrix.times from matrix, buckets ! where matrix.bucketid = buckets.id and buckets.userid = ?;" ); $h->execute( $clid ); *************** *** 3673,3678 **** $h->finish; ! $h = $self->db_()->prepare( "insert into matrix ( bucketid, wordid, times ) ! values ( ?, ?, ? );" ); foreach my $bucketid ( keys %matrix ) { foreach my $wordid ( keys %{$matrix{$bucketid}} ) { --- 3714,3720 ---- $h->finish; ! $h = $self->db_()->prepare( ! "insert into matrix ( bucketid, wordid, times ) ! values ( ?, ?, ? );" ); foreach my $bucketid ( keys %matrix ) { foreach my $wordid ( keys %{$matrix{$bucketid}} ) { *************** *** 3694,3698 **** # default settings ! $self->db_()->do( "insert into buckets ( name, pseudo, userid ) values ( 'unclassified', 1, $id );" ); # Copy the global language setting to the user's language setting --- 3736,3741 ---- # default settings ! $self->db_()->do( "insert into buckets ( name, pseudo, userid ) ! values ( 'unclassified', 1, $id );" ); # Copy the global language setting to the user's language setting *************** *** 3987,3991 **** if ( $current_userid != $userid ) { ! # If the current user id is not the specified user id, check can_admin if ( !$self->is_admin_session( $session ) ) { --- 4030,4035 ---- if ( $current_userid != $userid ) { ! # If the current user id is not the specified user id, check if the ! # user is admin if ( !$self->is_admin_session( $session ) ) { *************** *** 4133,4139 **** my ( $self, $session ) = @_; - # my ( $package, $filename, $line, $subroutine ) = caller; - # $self->log_( 1, "is_admin_session is called from $package @ $line to check the session key $session" ); - my $result = $self->get_user_parameter( $session, 'GLOBAL_can_admin' ); --- 4177,4180 ---- *************** *** 4175,4179 **** if ( !defined( $result ) ) { $self->{db_get_user_parameter_default__}->execute( # PROFILE BLOCK START ! $self->{db_user_parameterid__}{$parameter} ); # PROFILE BLOCK STOP $result = $self->{db_get_user_parameter_default__}->fetchrow_arrayref; $default = 1; --- 4216,4220 ---- if ( !defined( $result ) ) { $self->{db_get_user_parameter_default__}->execute( # PROFILE BLOCK START ! $self->{db_user_parameterid__}{$parameter} ); # PROFILE BLOCK STOP $result = $self->{db_get_user_parameter_default__}->fetchrow_arrayref; $default = 1; *************** *** 4898,4902 **** #---------------------------------------------------------------------------- # ! # add_stopword, remove_stopword # # Adds or removes a stop word --- 4939,4943 ---- #---------------------------------------------------------------------------- # ! # add_stopword, remove_stopword (ADMIN ONLY) # # Adds or removes a stop word *************** *** 4915,4918 **** --- 4956,4963 ---- return undef if ( !defined( $userid ) ); + if ( !$self->is_admin_session( $session ) ) { + return undef; + } + # Pass language parameter to add_stopword() *************** *** 4927,4930 **** --- 4972,4979 ---- return undef if ( !defined( $userid ) ); + if ( !$self->is_admin_session( $session ) ) { + return undef; + } + # Pass language parameter to remove_stopword() |
From: naoki i. <am...@us...> - 2008-04-18 12:41:46
|
Update of /cvsroot/popfile/engine/Proxy In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv14105/Proxy Modified Files: NNTP.pm POP3.pm SMTP.pm Log Message: Change Log 1. Added 'Current active user sessions' section in the administration tab ( in the multiuser mode only ) 2. New function get_current_sessions() UI/HTML.pm Classifier/Bayes.pm POPFile/API.pm skins/default/administration-page.thtml languages/English.msg languages/Nihongo.msg This will allow administrators to check the current users' activities. NOTE : The administrator's session ( got by get_administrator_session_key ) is not be shown. 3. In the multiuser mode, the login user name is shown at the bottom of the UI UI/HTML.pm The login user name is shown instead of the last login user name. 4. XML-RPC stealth/server setting is now configured correctly UI/XMLRPC.pm 5. Add some status messages in the UI UI/HTML.pm UI/XMLRPC.pm Proxy/POP3.pm Proxy/SMTP.pm Proxy/NNTP.pm languages/English.msg languages/Nihongo.msg tests/TestHTML.script Magnet tab Administration tab 6. Avoid redirect to logout or shutdown page from the password page UI/HTML.pm 7. Password page for the single user mode is restored UI/HTML.pm 8. Update language file languages/Nihongo.msg 9. Minor changes of the skins skins/default/common-bottom.thtml skins/default/administration-page.thtml Current state of the test suite: TestBayesScript PASS TestBayes PASS TestConfiguration PASS * TestHistory PASS TestHTML PASS * TestHTTP PASS TestIMAP PASS TestInsertScript PASS * TestLogger PASS TestMailParse PASS TestModule PASS TestMQ PASS TestMutex PASS TestPipeScript PASS TestPOP3 PASS TestProxy PASS TestWordMangle PASS TestXMLRPC PASS * : TODO : needs to add tests for multi user support Index: POP3.pm =================================================================== RCS file: /cvsroot/popfile/engine/Proxy/POP3.pm,v retrieving revision 1.120 retrieving revision 1.121 diff -C2 -d -r1.120 -r1.121 *** POP3.pm 17 Apr 2008 15:13:05 -0000 1.120 --- POP3.pm 18 Apr 2008 12:41:49 -0000 1.121 *************** *** 762,766 **** my ( $self, $name, $templ, $language, $form ) = @_; ! my ($status_message,$error_message); if ( $name eq 'pop3_configuration' ) { --- 762,766 ---- my ( $self, $name, $templ, $language, $form ) = @_; ! my ( $status_message , $error_message ); if ( $name eq 'pop3_configuration' ) { *************** *** 768,774 **** 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' ) ); } else { ! $error_message .= $$language{Configuration_Error3}; } } --- 768,774 ---- 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' ) ) . "\n"; } else { ! $error_message .= $$language{Configuration_Error3} . "\n"; } } *************** *** 777,785 **** if ( length($$form{pop3_separator}) == 1 ) { $self->config_( 'separator', $$form{pop3_separator} ); ! $status_message .= "\n" if ( defined( $status_message ) ); ! $status_message .= sprintf( $$language{Configuration_POP3SepUpdate}, $self->config_( 'separator' ) ); } else { ! $error_message .= "\n" if ( defined( $error_message ) ); ! $error_message .= $$language{Configuration_Error1}; } } --- 777,783 ---- if ( length($$form{pop3_separator}) == 1 ) { $self->config_( 'separator', $$form{pop3_separator} ); ! $status_message .= sprintf( $$language{Configuration_POP3SepUpdate}, $self->config_( 'separator' ) ) . "\n"; } else { ! $error_message .= $$language{Configuration_Error1} . "\n"; } } *************** *** 793,797 **** } ! return($status_message, $error_message); } --- 791,798 ---- } ! $status_message =~ s/\n$// if ( defined( $status_message ) ); ! $error_message =~ s/\n// if ( defined( $error_message) ); ! ! return( $status_message, $error_message ); } *************** *** 799,808 **** if ( $$form{serveropt_pop3} ) { $self->config_( 'local', 0 ); } else { $self->config_( 'local', 1 ); } ! return(undef, undef); } --- 800,811 ---- if ( $$form{serveropt_pop3} ) { $self->config_( 'local', 0 ); + $status_message = $$language{Security_ServerModeUpdatePOP3}; } else { $self->config_( 'local', 1 ); + $status_message = $$language{Security_StealthModeUpdatePOP3}; } ! return( $status_message, $error_message ); } *************** *** 810,815 **** 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' ) ); } --- 813,817 ---- if ( defined( $$form{server} ) ) { $self->config_( 'secure_server', $$form{server} ); ! $status_message .= sprintf( $$language{Security_SecureServerUpdate}, $self->config_( 'secure_server' ) ) . "\n"; } *************** *** 817,822 **** 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 { $error_message .= $$language{Security_Error1}; --- 819,823 ---- 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' ) ) . "\n"; } else { $error_message .= $$language{Security_Error1}; *************** *** 827,839 **** if ( $$form{sssl} ) { $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 ); } --- 828,841 ---- if ( $$form{sssl} ) { $self->config_( 'secure_ssl', 1 ); ! $status_message .= $$language{Security_SecureServerUseSSLOn} . "\n"; } else { $self->config_( 'secure_ssl', 0 ); ! $status_message .= $$language{Security_SecureServerUseSSLOff} . "\n"; } } + $status_message =~ s/\n$// if ( defined( $status_message ) ); + $error_message =~ s/\n// if ( defined( $error_message) ); + return( $status_message, $error_message ); } Index: NNTP.pm =================================================================== RCS file: /cvsroot/popfile/engine/Proxy/NNTP.pm,v retrieving revision 1.44 retrieving revision 1.45 diff -C2 -d -r1.44 -r1.45 *** NNTP.pm 17 Apr 2008 15:13:05 -0000 1.44 --- NNTP.pm 18 Apr 2008 12:41:49 -0000 1.45 *************** *** 487,494 **** if ( $form->{serveropt_nntp} ) { $self->config_( 'local', 0 ); } else { $self->config_( 'local', 1 ); } ! return( undef, undef); } --- 487,496 ---- if ( $form->{serveropt_nntp} ) { $self->config_( 'local', 0 ); + $status = $$language{Security_ServerModeUpdateNNTP}; } else { $self->config_( 'local', 1 ); + $status = $$language{Security_StealthModeUpdateNNTP}; } ! return( $status, $error ); } Index: SMTP.pm =================================================================== RCS file: /cvsroot/popfile/engine/Proxy/SMTP.pm,v retrieving revision 1.45 retrieving revision 1.46 diff -C2 -d -r1.45 -r1.46 *** SMTP.pm 17 Apr 2008 15:13:05 -0000 1.45 --- SMTP.pm 18 Apr 2008 12:41:49 -0000 1.46 *************** *** 403,408 **** --- 403,410 ---- if ( $form->{serveropt_smtp} ) { $self->config_( 'local', 0 ); + $status = $$language{Security_ServerModeUpdateSMTP}; } else { $self->config_( 'local', 1 ); + $status = $$language{Security_StealthModeUpdateSMTP}; } return ( $status, $error ); |
From: naoki i. <am...@us...> - 2008-04-18 12:41:45
|
Update of /cvsroot/popfile/engine/languages In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv14105/languages Modified Files: English.msg Nihongo.msg Log Message: Change Log 1. Added 'Current active user sessions' section in the administration tab ( in the multiuser mode only ) 2. New function get_current_sessions() UI/HTML.pm Classifier/Bayes.pm POPFile/API.pm skins/default/administration-page.thtml languages/English.msg languages/Nihongo.msg This will allow administrators to check the current users' activities. NOTE : The administrator's session ( got by get_administrator_session_key ) is not be shown. 3. In the multiuser mode, the login user name is shown at the bottom of the UI UI/HTML.pm The login user name is shown instead of the last login user name. 4. XML-RPC stealth/server setting is now configured correctly UI/XMLRPC.pm 5. Add some status messages in the UI UI/HTML.pm UI/XMLRPC.pm Proxy/POP3.pm Proxy/SMTP.pm Proxy/NNTP.pm languages/English.msg languages/Nihongo.msg tests/TestHTML.script Magnet tab Administration tab 6. Avoid redirect to logout or shutdown page from the password page UI/HTML.pm 7. Password page for the single user mode is restored UI/HTML.pm 8. Update language file languages/Nihongo.msg 9. Minor changes of the skins skins/default/common-bottom.thtml skins/default/administration-page.thtml Current state of the test suite: TestBayesScript PASS TestBayes PASS TestConfiguration PASS * TestHistory PASS TestHTML PASS * TestHTTP PASS TestIMAP PASS TestInsertScript PASS * TestLogger PASS TestMailParse PASS TestModule PASS TestMQ PASS TestMutex PASS TestPipeScript PASS TestPOP3 PASS TestProxy PASS TestWordMangle PASS TestXMLRPC PASS * : TODO : needs to add tests for multi user support Index: Nihongo.msg =================================================================== RCS file: /cvsroot/popfile/engine/languages/Nihongo.msg,v retrieving revision 1.27 retrieving revision 1.28 diff -C2 -d -r1.27 -r1.28 *** Nihongo.msg 17 Apr 2008 15:49:57 -0000 1.27 --- Nihongo.msg 18 Apr 2008 12:41:49 -0000 1.28 *************** *** 88,93 **** # means comma separated at the thousands) ! Locale_Thousands , ! Locale_Decimal . # The Locale_Date uses the format strings in Perl's Date::Format --- 88,93 ---- # means comma separated at the thousands) ! Locale_Thousands , ! Locale_Decimal . # The Locale_Date uses the format strings in Perl's Date::Format *************** *** 99,103 **** # 7 days from now, the second for all other dates ! Locale_Date %a %R | %D %R # The header and footer that appear on every UI page --- 99,103 ---- # 7 days from now, the second for all other dates ! Locale_Date %a %R | %D %R # The header and footer that appear on every UI page *************** *** 121,140 **** Footer_Wiki ¥É¥¥å¥á¥ó¥È ! Configuration_Error1 ¶èÀÚ¤êʸ»ú¤Ï1ʸ»ú¤À¤±¤Ë¤·¤Æ¤¯¤À¤µ¤¤¡£ ! Configuration_Error2 ¥æ¡¼¥¶¡¼¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹Íѥݡ¼¥ÈÈÖ¹æ¤Ï1¤«¤é65535¤Þ¤Ç¤Ë¤·¤Æ¤¯¤À¤µ¤¤¡£ ! Configuration_Error3 POP3 ¥Ý¡¼¥ÈÈÖ¹æ¤Ï1¤«¤é65535¤Þ¤Ç¤Ë¤·¤Æ¤¯¤À¤µ¤¤¡£ ! Configuration_Error4 ¥Ú¡¼¥¸¥µ¥¤¥º¤Ï1¤«¤é1000¤Þ¤Ç¤Ë¤·¤Æ¤¯¤À¤µ¤¤¡£ ! Configuration_Error5 ÍúÎò¤ò»Ä¤¹Æü¿ô¤Ï1¤«¤é366¤Þ¤Ç¤Ë¤·¤Æ¤¯¤À¤µ¤¤¡£ ! Configuration_Error6 TCP ¥¿¥¤¥à¥¢¥¦¥È¤Ï10¤«¤é300¤Ë¤·¤Æ¤¯¤À¤µ¤¤¡£ ! Configuration_Error7 XML RPC ¥Ý¡¼¥ÈÈÖ¹æ¤Ï1¤«¤é65535¤Þ¤Ç¤Ë¤·¤Æ¤¯¤À¤µ¤¤¡£ ! Configuration_Error8 SOCKS V ¥×¥í¥¥·¤Î¥Ý¡¼¥ÈÈÖ¹æ¤Ï1¤«¤é65535¤Þ¤Ç¤Ë¤·¤Æ¤¯¤À¤µ¤¤¡£ Configuration_POP3Port POP3 ¥Ý¡¼¥ÈÈÖ¹æ ! Configuration_POP3Update POP3 ¥Ý¡¼¥ÈÈÖ¹æ¤ò %s ¤ËÊѹ¹¤·¤Þ¤·¤¿¡£¤³¤ÎÊѹ¹¤Ï POPFile ¤òºÆµ¯Æ°¤¹¤ë¤Þ¤Ç͸ú¤Ë¤Ê¤ê¤Þ¤»¤ó¡£ ! Configuration_XMLRPCUpdate XML-RPC ¥Ý¡¼¥ÈÈÖ¹æ¤ò %s ¤ËÊѹ¹¤·¤Þ¤·¤¿¡£¤³¤ÎÊѹ¹¤Ï POPFile ¤òºÆµ¯Æ°¤¹¤ë¤Þ¤Ç͸ú¤Ë¤Ê¤ê¤Þ¤»¤ó¡£ Configuration_XMLRPCPort XML-RPC ¥Ý¡¼¥ÈÈÖ¹æ Configuration_SMTPPort SMTP ¥Ý¡¼¥ÈÈÖ¹æ ! Configuration_SMTPUpdate SMTP ¥Ý¡¼¥ÈÈÖ¹æ¤ò %s ¤ËÊѹ¹¤·¤Þ¤·¤¿¡£¤³¤ÎÊѹ¹¤Ï POPFile ¤òºÆµ¯Æ°¤¹¤ë¤Þ¤Ç͸ú¤Ë¤Ê¤ê¤Þ¤»¤ó¡£ Configuration_NNTPPort NNTP ¥Ý¡¼¥ÈÈÖ¹æ ! Configuration_NNTPUpdate NNTP ¥Ý¡¼¥ÈÈÖ¹æ¤ò %s ¤ËÊѹ¹¤·¤Þ¤·¤¿¡£¤³¤ÎÊѹ¹¤Ï POPFile ¤òºÆµ¯Æ°¤¹¤ë¤Þ¤Ç͸ú¤Ë¤Ê¤ê¤Þ¤»¤ó¡£ Configuration_POPFork POP3 Ʊ»þÀܳ¤Îµö²Ä Configuration_SMTPFork SMTP Ʊ»þÀܳ¤Îµö²Ä --- 121,140 ---- Footer_Wiki ¥É¥¥å¥á¥ó¥È ! Configuration_Error1 ¶èÀÚ¤êʸ»ú¤Ï 1 ʸ»ú¤À¤±¤Ë¤·¤Æ¤¯¤À¤µ¤¤¡£ ! Configuration_Error2 ¥æ¡¼¥¶¡¼¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹Íѥݡ¼¥ÈÈÖ¹æ¤Ï 1 ¤«¤é 65535 ¤Þ¤Ç¤Ë¤·¤Æ¤¯¤À¤µ¤¤¡£ ! Configuration_Error3 POP3 ¥Ý¡¼¥ÈÈÖ¹æ¤Ï 1 ¤«¤é 65535 ¤Þ¤Ç¤Ë¤·¤Æ¤¯¤À¤µ¤¤¡£ ! Configuration_Error4 1 ¥Ú¡¼¥¸¤Ëɽ¼¨¤¹¤ë¥á¡¼¥ë¤Î¿ô¤Ï 1 ¤«¤é 1000 ¤Þ¤Ç¤Ë¤·¤Æ¤¯¤À¤µ¤¤¡£ ! Configuration_Error5 ÍúÎò¤ò»Ä¤¹Æü¿ô¤Ï 1 ¤«¤é 366 ¤Þ¤Ç¤Ë¤·¤Æ¤¯¤À¤µ¤¤¡£ ! Configuration_Error6 TCP ¥³¥Í¥¯¥·¥ç¥ó¥¿¥¤¥à¥¢¥¦¥È¤ÎÉÿô¤Ï 10 ¤«¤é 300 ¤Ë¤·¤Æ¤¯¤À¤µ¤¤¡£ ! Configuration_Error7 XML RPC ¥Ý¡¼¥ÈÈÖ¹æ¤Ï 1 ¤«¤é 65535 ¤Þ¤Ç¤Ë¤·¤Æ¤¯¤À¤µ¤¤¡£ ! Configuration_Error8 SOCKS V ¥×¥í¥¥·¤Î¥Ý¡¼¥ÈÈÖ¹æ¤Ï 1 ¤«¤é 65535 ¤Þ¤Ç¤Ë¤·¤Æ¤¯¤À¤µ¤¤¡£ Configuration_POP3Port POP3 ¥Ý¡¼¥ÈÈÖ¹æ ! Configuration_POP3Update POP3 ¥Ý¡¼¥ÈÈÖ¹æ¤ò ¡Ö%s¡×¤ËÊѹ¹¤·¤Þ¤·¤¿¡£¤³¤ÎÊѹ¹¤Ï POPFile ¤òºÆµ¯Æ°¤¹¤ë¤Þ¤Ç͸ú¤Ë¤Ê¤ê¤Þ¤»¤ó¡£ ! Configuration_XMLRPCUpdate XML-RPC ¥Ý¡¼¥ÈÈÖ¹æ¤ò ¡Ö%s¡×¤ËÊѹ¹¤·¤Þ¤·¤¿¡£¤³¤ÎÊѹ¹¤Ï POPFile ¤òºÆµ¯Æ°¤¹¤ë¤Þ¤Ç͸ú¤Ë¤Ê¤ê¤Þ¤»¤ó¡£ Configuration_XMLRPCPort XML-RPC ¥Ý¡¼¥ÈÈÖ¹æ Configuration_SMTPPort SMTP ¥Ý¡¼¥ÈÈÖ¹æ ! Configuration_SMTPUpdate SMTP ¥Ý¡¼¥ÈÈÖ¹æ¤ò ¡Ö%s¡×¤ËÊѹ¹¤·¤Þ¤·¤¿¡£¤³¤ÎÊѹ¹¤Ï POPFile ¤òºÆµ¯Æ°¤¹¤ë¤Þ¤Ç͸ú¤Ë¤Ê¤ê¤Þ¤»¤ó¡£ Configuration_NNTPPort NNTP ¥Ý¡¼¥ÈÈÖ¹æ ! Configuration_NNTPUpdate NNTP ¥Ý¡¼¥ÈÈÖ¹æ¤ò ¡Ö%s¡×¤ËÊѹ¹¤·¤Þ¤·¤¿¡£¤³¤ÎÊѹ¹¤Ï POPFile ¤òºÆµ¯Æ°¤¹¤ë¤Þ¤Ç͸ú¤Ë¤Ê¤ê¤Þ¤»¤ó¡£ Configuration_POPFork POP3 Ʊ»þÀܳ¤Îµö²Ä Configuration_SMTPFork SMTP Ʊ»þÀܳ¤Îµö²Ä *************** *** 142,153 **** Configuration_POP3Separator POP3 ¥Û¥¹¥È̾¡¢¥Ý¡¼¥ÈÈֹ桢¥æ¡¼¥¶Ì¾¤Î¶èÀÚ¤êʸ»ú Configuration_NNTPSeparator NNTP ¥Û¥¹¥È̾¡¢¥Ý¡¼¥ÈÈֹ桢¥æ¡¼¥¶Ì¾¤Î¶èÀÚ¤êʸ»ú ! Configuration_POP3SepUpdate POP3 ¶èÀÚ¤êʸ»ú¤ò %s ¤ËÊѹ¹¤·¤Þ¤·¤¿¡£ ! Configuration_NNTPSepUpdate NNTP ¶èÀÚ¤êʸ»ú¤ò %s ¤ËÊѹ¹¤·¤Þ¤·¤¿¡£ Configuration_UI ¥æ¡¼¥¶¡¼¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹Íѥݡ¼¥ÈÈÖ¹æ ! Configuration_UIUpdate ¥æ¡¼¥¶¡¼¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹Íѥݡ¼¥ÈÈÖ¹æ¤ò %s ¤ËÊѹ¹¤·¤Þ¤·¤¿¡£¤³¤ÎÊѹ¹¤Ï POPFile ¤òºÆµ¯Æ°¤¹¤ë¤Þ¤Ç͸ú¤Ë¤Ê¤ê¤Þ¤»¤ó¡£ ! Configuration_History 1¥Ú¡¼¥¸¤Ëɽ¼¨¤¹¤ë¥á¡¼¥ë¤Î¿ô ! Configuration_HistoryUpdate 1¥Ú¡¼¥¸¤Ëɽ¼¨¤¹¤ë¥á¡¼¥ë¤Î¿ô¤ò %s ¤ËÊѹ¹¤·¤Þ¤·¤¿¡£ Configuration_Days ÍúÎò¤ò»Ä¤¹Æü¿ô ! Configuration_DaysUpdate ÍúÎò¤ò»Ä¤¹Æü¿ô¤ò %s ¤ËÊѹ¹¤·¤Þ¤·¤¿¡£ Configuration_UserInterface ¥æ¡¼¥¶¡¼¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹ Configuration_Skins ¥¹¥¥ó --- 142,153 ---- Configuration_POP3Separator POP3 ¥Û¥¹¥È̾¡¢¥Ý¡¼¥ÈÈֹ桢¥æ¡¼¥¶Ì¾¤Î¶èÀÚ¤êʸ»ú Configuration_NNTPSeparator NNTP ¥Û¥¹¥È̾¡¢¥Ý¡¼¥ÈÈֹ桢¥æ¡¼¥¶Ì¾¤Î¶èÀÚ¤êʸ»ú ! Configuration_POP3SepUpdate POP3 ¶èÀÚ¤êʸ»ú¤ò ¡Ö%s¡×¤ËÊѹ¹¤·¤Þ¤·¤¿¡£ ! Configuration_NNTPSepUpdate NNTP ¶èÀÚ¤êʸ»ú¤ò ¡Ö%s¡×¤ËÊѹ¹¤·¤Þ¤·¤¿¡£ Configuration_UI ¥æ¡¼¥¶¡¼¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹Íѥݡ¼¥ÈÈÖ¹æ ! Configuration_UIUpdate ¥æ¡¼¥¶¡¼¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹Íѥݡ¼¥ÈÈÖ¹æ¤ò ¡Ö%s¡×¤ËÊѹ¹¤·¤Þ¤·¤¿¡£¤³¤ÎÊѹ¹¤Ï POPFile ¤òºÆµ¯Æ°¤¹¤ë¤Þ¤Ç͸ú¤Ë¤Ê¤ê¤Þ¤»¤ó¡£ ! Configuration_History 1 ¥Ú¡¼¥¸¤Ëɽ¼¨¤¹¤ë¥á¡¼¥ë¤Î¿ô ! Configuration_HistoryUpdate 1 ¥Ú¡¼¥¸¤Ëɽ¼¨¤¹¤ë¥á¡¼¥ë¤Î¿ô¤ò ¡Ö%s¡×¤ËÊѹ¹¤·¤Þ¤·¤¿¡£ Configuration_Days ÍúÎò¤ò»Ä¤¹Æü¿ô ! Configuration_DaysUpdate ÍúÎò¤ò»Ä¤¹Æü¿ô¤ò ¡Ö%s¡×¤ËÊѹ¹¤·¤Þ¤·¤¿¡£ Configuration_UserInterface ¥æ¡¼¥¶¡¼¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹ Configuration_Skins ¥¹¥¥ó *************** *** 159,167 **** Configuration_TCPTimeout TCP ¥³¥Í¥¯¥·¥ç¥ó¥¿¥¤¥à¥¢¥¦¥È Configuration_TCPTimeoutSecs TCP ¥³¥Í¥¯¥·¥ç¥ó¥¿¥¤¥à¥¢¥¦¥È¤ÎÉÿô ! Configuration_TCPTimeoutUpdate TCP ¥³¥Í¥¯¥·¥ç¥ó¥¿¥¤¥à¥¢¥¦¥È¤ò %s ¤ËÊѹ¹¤·¤Þ¤·¤¿¡£ Configuration_ClassificationInsertion ÅŻҥ᡼¥ë¤Ø¤Î¥Æ¥¥¹¥ÈÁÞÆþµ¡Ç½ Configuration_SubjectLine ·ï̾¤ÎÊѹ¹ ! Configuration_XTCInsertion X-Text-Classification ¥Ø¥Ã¥À¡¼ ! Configuration_XPLInsertion X-POPFile-Link ¥Ø¥Ã¥À¡¼ Configuration_Logging ¥í¥° Configuration_None ¤Ê¤· --- 159,167 ---- Configuration_TCPTimeout TCP ¥³¥Í¥¯¥·¥ç¥ó¥¿¥¤¥à¥¢¥¦¥È Configuration_TCPTimeoutSecs TCP ¥³¥Í¥¯¥·¥ç¥ó¥¿¥¤¥à¥¢¥¦¥È¤ÎÉÿô ! Configuration_TCPTimeoutUpdate TCP ¥³¥Í¥¯¥·¥ç¥ó¥¿¥¤¥à¥¢¥¦¥È¤ÎÉÿô¤ò ¡Ö%s¡×¤ËÊѹ¹¤·¤Þ¤·¤¿¡£ Configuration_ClassificationInsertion ÅŻҥ᡼¥ë¤Ø¤Î¥Æ¥¥¹¥ÈÁÞÆþµ¡Ç½ Configuration_SubjectLine ·ï̾¤ÎÊѹ¹ ! Configuration_XTCInsertion X-Text-Classification<br>¥Ø¥Ã¥À¡¼ ! Configuration_XPLInsertion X-POPFile-Link<br>¥Ø¥Ã¥À¡¼ Configuration_Logging ¥í¥° Configuration_None ¤Ê¤· *************** *** 176,181 **** Configuration_SOCKSServer SOCKS V ¥×¥í¥¥· ¥µ¡¼¥Ð Configuration_SOCKSPort SOCKS V ¥×¥í¥¥· ¥Ý¡¼¥ÈÈÖ¹æ ! Configuration_SOCKSPortUpdate SOCKS V ¥×¥í¥¥·¤Î¥Ý¡¼¥ÈÈÖ¹æ¤ò %s ¤ËÊѹ¹¤·¤Þ¤·¤¿¡£ ! Configuration_SOCKSServerUpdate SOCKS V ¥×¥í¥¥·¤Î¥µ¡¼¥Ð¤ò %s ¤ËÊѹ¹¤·¤Þ¤·¤¿¡£ Configuration_Fields ÍúÎò¥¿¥Ö¹àÌܤòÄɲà Configuration_ChangePassword ¥Ñ¥¹¥ï¡¼¥É¤ÎÊѹ¹ --- 176,181 ---- Configuration_SOCKSServer SOCKS V ¥×¥í¥¥· ¥µ¡¼¥Ð Configuration_SOCKSPort SOCKS V ¥×¥í¥¥· ¥Ý¡¼¥ÈÈÖ¹æ ! Configuration_SOCKSPortUpdate SOCKS V ¥×¥í¥¥·¤Î¥Ý¡¼¥ÈÈÖ¹æ¤ò ¡Ö%s¡×¤ËÊѹ¹¤·¤Þ¤·¤¿¡£ ! Configuration_SOCKSServerUpdate SOCKS V ¥×¥í¥¥·¤Î¥µ¡¼¥Ð¤ò ¡Ö%s¡×¤ËÊѹ¹¤·¤Þ¤·¤¿¡£ Configuration_Fields ÍúÎò¥¿¥Ö¹àÌܤòÄɲà Configuration_ChangePassword ¥Ñ¥¹¥ï¡¼¥É¤ÎÊѹ¹ *************** *** 188,213 **** Configuration_Set_Password ¿·¤·¤¤¥Ñ¥¹¥ï¡¼¥É¤¬ÀßÄꤵ¤ì¤Þ¤·¤¿ Configuration_ConfigBar ÀßÄê¥Ð¡¼ ! Configuration_Logger_Level0 Äã ! Configuration_Logger_Level1 Ãæ ! Configuration_Logger_Level2 ¹â Configuration_Logger_Level ¥í¥°¥ì¥Ù¥ë: ! Advanced_Error1 '%s' ¤Ï´û¤Ë̵»ë¤¹¤ëñ¸ì¤Î¥ê¥¹¥È¤Ë´Þ¤Þ¤ì¤Æ¤¤¤Þ¤¹¡£ Advanced_Error2 ̵»ë¤¹¤ëñ¸ì¤Ë̵¸ú¤Êʸ»ú¤¬»È¤ï¤ì¤Æ¤¤¤Þ¤¹¡£ºÆÅÙÆþÎϤ·¤Æ²¼¤µ¤¤¡£ ! Advanced_Error3 '%s' ¤ò̵»ë¤¹¤ëñ¸ì¤Î¥ê¥¹¥È¤ËÄɲä·¤Þ¤·¤¿¡£ ! Advanced_Error4 '%s' ¤Ï̵»ë¤¹¤ëñ¸ì¤Î¥ê¥¹¥È¤Ë´Þ¤Þ¤ì¤Æ¤¤¤Þ¤»¤ó¡£ ! Advanced_Error5 '%s' ¤ò̵»ë¤¹¤ëñ¸ì¤Î¥ê¥¹¥È¤«¤éºï½ü¤·¤Þ¤·¤¿¡£ Advanced_StopWords ̵»ë¤¹¤ëñ¸ì Advanced_Message1 POPFile ¤Ï°Ê²¼¤ÎÉÑÈˤ˻Ȥï¤ì¤ëñ¸ì¤ò̵»ë¤·¤Þ¤¹¡£ Advanced_AddWord ñ¸ìÄɲà Advanced_RemoveWord ñ¸ìºï½ü ! Advanced_AllParameters POPFile Á´¥Ñ¥é¥á¡¼¥¿¡¼ Advanced_AllParametersNotes °Ê²¼¤Ï POPFile ¤ÎÁ´ÂÎŪ¤Ê¥Ñ¥é¥á¡¼¥¿¡¼¤ÎÁ´¥ê¥¹¥È¤Ç¤¹¡£ Advanced_Parameter ¥Ñ¥é¥á¡¼¥¿¡¼ Advanced_Value ÃÍ ! Advanced_Warning ¥¢¥É¥Ð¥ó¥¹¥É¡¦¥æ¡¼¥¶¡¼¤Ë¸Â¤ê¡¢É¬Í×»þ¡¢ÃͤòÊѹ¹¤·¤Æ¹¹¿·¥Ü¥¿¥ó¤ò¥¯¥ê¥Ã¥¯¤·¤Æ²¼¤µ¤¤¡£¥Ð¥ê¥Ç¥£¥Æ¥£¡¼¡ÊÂÅÅöÀ¡Ë¥Á¥§¥Ã¥¯¤Ï¹Ô¤¤¤Þ¤»¤ó¡£ÂÀ»ú¤Ë¤Ê¤Ã¤Æ¤¤¤ë¹àÌܤϽé´üÀßÄ꤫¤éÊѹ¹¤µ¤ì¤Æ¤¤¤Þ¤¹¡£¥ª¥×¥·¥ç¥ó¤Î¾ÜºÙ¤Ë¤Ä¤¤¤Æ¤Ï <a href="http://getpopfile.org/docs/JP:OptionReference">¥ª¥×¥·¥ç¥ó¡¦¥ê¥Õ¥¡¥ì¥ó¥¹</a> ¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£ Advanced_ConfigFile ÀßÄê¥Õ¥¡¥¤¥ë: Advanced_SingleUserModeParameters ¥·¥ó¥°¥ë¥æ¡¼¥¶¡¼¥â¡¼¥É¤Î¥Ñ¥é¥á¡¼¥¿¡¼ ! Advanced_SingleUserModeParametersNotes °Ê²¼¤Ï¥·¥ó¥°¥ë¥æ¡¼¥¶¡¼¥â¡¼¥É¤Î¥Ñ¥é¥á¡¼¥¿¤ÎÁ´¥ê¥¹¥È¤Ç¤¹¡£ Users_Create ¿·¤·¤¤¥æ¡¼¥¶¡¼¤ÎºîÀ® --- 188,219 ---- Configuration_Set_Password ¿·¤·¤¤¥Ñ¥¹¥ï¡¼¥É¤¬ÀßÄꤵ¤ì¤Þ¤·¤¿ Configuration_ConfigBar ÀßÄê¥Ð¡¼ ! Configuration_Logger_Level0 Äã ! Configuration_Logger_Level1 Ãæ ! Configuration_Logger_Level2 ¹â Configuration_Logger_Level ¥í¥°¥ì¥Ù¥ë: + Configuration_LoggerOutputUpdate ¥í¥°½ÐÎϤò ¡Ö%s¡× ¤ËÀßÄꤷ¤Þ¤·¤¿ + Configuration_Logger_LevelUpdate ¥í¥°¥ì¥Ù¥ë¤ò ¡Ö%s¡× ¤ËÀßÄꤷ¤Þ¤·¤¿ + Configuration_CurrentSessions ¸½ºß͸ú¤Ê¥æ¡¼¥¶¡¼¥»¥Ã¥·¥ç¥ó + Configuration_CurrentSessions_UserName ¥æ¡¼¥¶¡¼ + Configuration_CurrentSessions_LastUsed ºÇ½ª¥¢¥¯¥»¥¹ + Configuration_CurrentSessions_IdleTime ÂÔµ¡»þ´Ö ! Advanced_Error1 ¡Ö%s¡× ¤Ï´û¤Ë̵»ë¤¹¤ëñ¸ì¤Î¥ê¥¹¥È¤Ë´Þ¤Þ¤ì¤Æ¤¤¤Þ¤¹¡£ Advanced_Error2 ̵»ë¤¹¤ëñ¸ì¤Ë̵¸ú¤Êʸ»ú¤¬»È¤ï¤ì¤Æ¤¤¤Þ¤¹¡£ºÆÅÙÆþÎϤ·¤Æ²¼¤µ¤¤¡£ ! Advanced_Error3 ¡Ö%s¡× ¤ò̵»ë¤¹¤ëñ¸ì¤Î¥ê¥¹¥È¤ËÄɲä·¤Þ¤·¤¿¡£ ! Advanced_Error4 ¡Ö%s¡× ¤Ï̵»ë¤¹¤ëñ¸ì¤Î¥ê¥¹¥È¤Ë´Þ¤Þ¤ì¤Æ¤¤¤Þ¤»¤ó¡£ ! Advanced_Error5 ¡Ö%s¡× ¤ò̵»ë¤¹¤ëñ¸ì¤Î¥ê¥¹¥È¤«¤éºï½ü¤·¤Þ¤·¤¿¡£ Advanced_StopWords ̵»ë¤¹¤ëñ¸ì Advanced_Message1 POPFile ¤Ï°Ê²¼¤ÎÉÑÈˤ˻Ȥï¤ì¤ëñ¸ì¤ò̵»ë¤·¤Þ¤¹¡£ Advanced_AddWord ñ¸ìÄɲà Advanced_RemoveWord ñ¸ìºï½ü ! Advanced_AllParameters POPFile ¤ÎÁ´ÂÎŪ¤Ê¥Ñ¥é¥á¡¼¥¿¡¼ Advanced_AllParametersNotes °Ê²¼¤Ï POPFile ¤ÎÁ´ÂÎŪ¤Ê¥Ñ¥é¥á¡¼¥¿¡¼¤ÎÁ´¥ê¥¹¥È¤Ç¤¹¡£ Advanced_Parameter ¥Ñ¥é¥á¡¼¥¿¡¼ Advanced_Value ÃÍ ! Advanced_Warning ¥¢¥É¥Ð¥ó¥¹¥É¡¦¥æ¡¼¥¶¡¼¤Ë¸Â¤ê¡¢É¬Í×»þ¡¢ÃͤòÊѹ¹¤·¤Æ¹¹¿·¥Ü¥¿¥ó¤ò¥¯¥ê¥Ã¥¯¤·¤Æ²¼¤µ¤¤¡£¥Ð¥ê¥Ç¥£¥Æ¥£¡¼¡ÊÂÅÅöÀ¡Ë¥Á¥§¥Ã¥¯¤Ï¹Ô¤¤¤Þ¤»¤ó¡£ÂÀ»ú¤Çɽ¼¨¤µ¤ì¤Æ¤¤¤ë¹àÌܤϽé´üÀßÄ꤫¤éÊѹ¹¤µ¤ì¤Æ¤¤¤Þ¤¹¡£¥ª¥×¥·¥ç¥ó¤Ë¤Ä¤¤¤Æ¤Î¾Ü¤·¤¤¾ðÊó¤Ë¤Ä¤¤¤Æ¤Ï <a href="http://getpopfile.org/docs/JP:OptionReference">¥ª¥×¥·¥ç¥ó¡¦¥ê¥Õ¥¡¥ì¥ó¥¹</a> ¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£ Advanced_ConfigFile ÀßÄê¥Õ¥¡¥¤¥ë: Advanced_SingleUserModeParameters ¥·¥ó¥°¥ë¥æ¡¼¥¶¡¼¥â¡¼¥É¤Î¥Ñ¥é¥á¡¼¥¿¡¼ ! Advanced_SingleUserModeParametersNotes °Ê²¼¤Ï¥·¥ó¥°¥ë¥æ¡¼¥¶¡¼¥â¡¼¥É¤Î¥Ñ¥é¥á¡¼¥¿¡¼¤ÎÁ´¥ê¥¹¥È¤Ç¤¹¡£ Users_Create ¿·¤·¤¤¥æ¡¼¥¶¡¼¤ÎºîÀ® *************** *** 228,247 **** Users_ResetPassword ¥Ñ¥¹¥ï¡¼¥É¤ò½é´ü²½¤¹¤ë Users_Parameters ¥Ñ¥é¥á¡¼¥¿¡¼ ! Users_Created ¥æ¡¼¥¶¡¼ '%s' ¤òºîÀ®¤·¤Þ¤·¤¿¡Ê½é´ü¥Ñ¥¹¥ï¡¼¥É¤Ï '%s'¡Ë ! Users_Not_Created ¥æ¡¼¥¶¡¼ '%s' ¤òºîÀ®¤Ç¤¤Þ¤»¤ó¤Ç¤·¤¿ ! Users_Created_And_Cloned ¥æ¡¼¥¶¡¼ '%s' ¤ò '%s' ¤ÎÀßÄê¤ò¥³¥Ô¡¼¤·¤ÆºîÀ®¤·¤Þ¤·¤¿¡Ê½é´ü¥Ñ¥¹¥ï¡¼¥É¤Ï '%s'¡Ë ! Users_Not_Created_Exists ¥æ¡¼¥¶¡¼ '%s' ¤ÏºîÀ®¤Ç¤¤Þ¤»¤ó¤Ç¤·¤¿¡£¤¹¤Ç¤Ë¸ºß¤·¤Æ¤¤¤Þ¤¹ ! Users_Created_Not_Cloned ¥æ¡¼¥¶¡¼ '%s' ¤òºîÀ®¤·¤Þ¤·¤¿¤¬¡¢'%s' ¤ÎÀßÄê¤Ï¥³¥Ô¡¼¤Ç¤¤Þ¤»¤ó¤Ç¤·¤¿¡Ê½é´ü¥Ñ¥¹¥ï¡¼¥É¤Ï '%s'¡Ë ! Users_Renamed ¥æ¡¼¥¶¡¼ '%s' ¤Î̾Á°¤ò '%s' ¤ËÊѹ¹¤·¤Þ¤·¤¿¡Ê½é´ü¥Ñ¥¹¥ï¡¼¥É¤Ï '%s'¡Ë ! Users_Rename_Failed_Exists ¥æ¡¼¥¶¡¼ '%s' ¤Î̾Á°¤ò '%s' ¤ËÊѹ¹¤Ç¤¤Þ¤»¤ó¤Ç¤·¤¿¡£¤¹¤Ç¤Ë¸ºß¤·¤Æ¤¤¤Þ¤¹ ! Users_Rename_Failed ¥æ¡¼¥¶¡¼ '%s' ¤Î̾Á°¤òÊѹ¹¤Ç¤¤Þ¤»¤ó¤Ç¤·¤¿¡£ ! Users_Removed ¥æ¡¼¥¶¡¼ '%s' ¤òºï½ü¤·¤Þ¤·¤¿ ! Users_Removed_Failed ¥æ¡¼¥¶¡¼ '%s' ¤òºï½ü¤Ç¤¤Þ¤»¤ó¤Ç¤·¤¿ ! Users_Removed_Failed_Admin ¥æ¡¼¥¶¡¼ '%s' ¤òºï½ü¤Ç¤¤Þ¤»¤ó¤Ç¤·¤¿¡£Àè¤Ë´ÉÍý¼Ô¸¢¸Â¤ò̵¸ú¤Ë¤·¤Æ¤¯¤À¤µ¤¤ ! Users_Changed_Password ¥æ¡¼¥¶¡¼ '%s' ¤Î¥Ñ¥¹¥ï¡¼¥É¤òÊѹ¹¤·¤Þ¤·¤¿ ! Users_Change_Password_Failed ¥æ¡¼¥¶¡¼ '%s' ¤Î¥Ñ¥¹¥ï¡¼¥É¤¬Êѹ¹¤Ç¤¤Þ¤»¤ó¤Ç¤·¤¿ ! Users_Change_Password_Failed_Mismatch ¥æ¡¼¥¶¡¼ '%s' ¤Î¥Ñ¥¹¥ï¡¼¥É¤¬Êѹ¹¤Ç¤¤Þ¤»¤ó¤Ç¤·¤¿¡£ ¿·¥Ñ¥¹¥ï¡¼¥É¤È¿·¥Ñ¥¹¥ï¡¼¥É¤Î³Îǧ¤ÏƱ°ì¤Ç¤Ê¤¯¤Æ¤Ï¤Ê¤ê¤Þ¤»¤ó ! Users_Reset_Password ¥æ¡¼¥¶¡¼ '%s' ¤Î¥Ñ¥¹¥ï¡¼¥É¤ò½é´ü²½¤·¤Þ¤·¤¿¡Ê¿·¤·¤¤½é´ü¥Ñ¥¹¥ï¡¼¥É¤Ï '%s'¡Ë ! Users_Reset_Password_Failed ¥æ¡¼¥¶¡¼ '%s' ¤Î¥Ñ¥¹¥ï¡¼¥É¤¬½é´ü²½¤Ç¤¤Þ¤»¤ó¤Ç¤·¤¿ Users_SingleUserMode ¥·¥ó¥°¥ë¥æ¡¼¥¶¡¼¥â¡¼¥É¡ÊPOPFile ¥¯¥é¥·¥Ã¥¯¡Ë Users_Accounts ´ØÏ¢¤Å¤±¤é¤ì¤¿ POP3 ¥¢¥«¥¦¥ó¥È --- 234,253 ---- Users_ResetPassword ¥Ñ¥¹¥ï¡¼¥É¤ò½é´ü²½¤¹¤ë Users_Parameters ¥Ñ¥é¥á¡¼¥¿¡¼ ! Users_Created ¥æ¡¼¥¶¡¼ ¡Ö%s¡× ¤òºîÀ®¤·¤Þ¤·¤¿¡Ê½é´ü¥Ñ¥¹¥ï¡¼¥É¤Ï ¡Ö%s¡×¡Ë ! Users_Not_Created ¥æ¡¼¥¶¡¼ ¡Ö%s¡× ¤òºîÀ®¤Ç¤¤Þ¤»¤ó¤Ç¤·¤¿ ! Users_Created_And_Cloned ¥æ¡¼¥¶¡¼ ¡Ö%s¡× ¤ò ¡Ö%s¡× ¤ÎÀßÄê¤ò¥³¥Ô¡¼¤·¤ÆºîÀ®¤·¤Þ¤·¤¿¡Ê½é´ü¥Ñ¥¹¥ï¡¼¥É¤Ï ¡Ö%s¡×¡Ë ! Users_Not_Created_Exists ¥æ¡¼¥¶¡¼ ¡Ö%s¡× ¤ÏºîÀ®¤Ç¤¤Þ¤»¤ó¤Ç¤·¤¿¡£¤¹¤Ç¤Ë¸ºß¤·¤Æ¤¤¤Þ¤¹ ! Users_Created_Not_Cloned ¥æ¡¼¥¶¡¼ ¡Ö%s¡× ¤òºîÀ®¤·¤Þ¤·¤¿¤¬¡¢¡Ö%s¡× ¤ÎÀßÄê¤Ï¥³¥Ô¡¼¤Ç¤¤Þ¤»¤ó¤Ç¤·¤¿¡Ê½é´ü¥Ñ¥¹¥ï¡¼¥É¤Ï ¡Ö%s¡×¡Ë ! Users_Renamed ¥æ¡¼¥¶¡¼ ¡Ö%s¡× ¤Î̾Á°¤ò ¡Ö%s¡× ¤ËÊѹ¹¤·¤Þ¤·¤¿¡Ê½é´ü¥Ñ¥¹¥ï¡¼¥É¤Ï ¡Ö%s¡×¡Ë ! Users_Rename_Failed_Exists ¥æ¡¼¥¶¡¼ ¡Ö%s¡× ¤Î̾Á°¤ò ¡Ö%s¡× ¤ËÊѹ¹¤Ç¤¤Þ¤»¤ó¤Ç¤·¤¿¡£¤¹¤Ç¤Ë¸ºß¤·¤Æ¤¤¤Þ¤¹ ! Users_Rename_Failed ¥æ¡¼¥¶¡¼ ¡Ö%s¡× ¤Î̾Á°¤òÊѹ¹¤Ç¤¤Þ¤»¤ó¤Ç¤·¤¿¡£ ! Users_Removed ¥æ¡¼¥¶¡¼ ¡Ö%s¡× ¤òºï½ü¤·¤Þ¤·¤¿ ! Users_Removed_Failed ¥æ¡¼¥¶¡¼ ¡Ö%s¡× ¤òºï½ü¤Ç¤¤Þ¤»¤ó¤Ç¤·¤¿ ! Users_Removed_Failed_Admin ¥æ¡¼¥¶¡¼ ¡Ö%s¡× ¤òºï½ü¤Ç¤¤Þ¤»¤ó¤Ç¤·¤¿¡£Àè¤Ë´ÉÍý¼Ô¸¢¸Â¤ò̵¸ú¤Ë¤·¤Æ¤¯¤À¤µ¤¤ ! Users_Changed_Password ¥æ¡¼¥¶¡¼ ¡Ö%s¡× ¤Î¥Ñ¥¹¥ï¡¼¥É¤òÊѹ¹¤·¤Þ¤·¤¿ ! Users_Change_Password_Failed ¥æ¡¼¥¶¡¼ ¡Ö%s¡× ¤Î¥Ñ¥¹¥ï¡¼¥É¤¬Êѹ¹¤Ç¤¤Þ¤»¤ó¤Ç¤·¤¿ ! Users_Change_Password_Failed_Mismatch ¥æ¡¼¥¶¡¼ ¡Ö%s¡× ¤Î¥Ñ¥¹¥ï¡¼¥É¤¬Êѹ¹¤Ç¤¤Þ¤»¤ó¤Ç¤·¤¿¡£ ¿·¥Ñ¥¹¥ï¡¼¥É¤È¿·¥Ñ¥¹¥ï¡¼¥É¤Î³Îǧ¤ÏƱ°ì¤Ç¤Ê¤¯¤Æ¤Ï¤Ê¤ê¤Þ¤»¤ó ! Users_Reset_Password ¥æ¡¼¥¶¡¼ ¡Ö%s¡× ¤Î¥Ñ¥¹¥ï¡¼¥É¤ò½é´ü²½¤·¤Þ¤·¤¿¡Ê¿·¤·¤¤½é´ü¥Ñ¥¹¥ï¡¼¥É¤Ï ¡Ö%s¡×¡Ë ! Users_Reset_Password_Failed ¥æ¡¼¥¶¡¼ ¡Ö%s¡× ¤Î¥Ñ¥¹¥ï¡¼¥É¤¬½é´ü²½¤Ç¤¤Þ¤»¤ó¤Ç¤·¤¿ Users_SingleUserMode ¥·¥ó¥°¥ë¥æ¡¼¥¶¡¼¥â¡¼¥É¡ÊPOPFile ¥¯¥é¥·¥Ã¥¯¡Ë Users_Accounts ´ØÏ¢¤Å¤±¤é¤ì¤¿ POP3 ¥¢¥«¥¦¥ó¥È *************** *** 262,268 **** History_ClassifyAs ʬÎàÀè History_MagnetUsed ¥Þ¥°¥Í¥Ã¥È»ÈÍÑ ! History_MagnetBecause <b>¥Þ¥°¥Í¥Ã¥È»ÈÍÑ</b><p><font color="%s">%s</font> ¤ËʬÎव¤ì¤Þ¤·¤¿¡£(¥Þ¥°¥Í¥Ã¥È %s ¤Î¤¿¤á)</p> ! History_ChangedTo Êѹ¹Àè <font color="%s">%s</font> ! History_Already <font color="%s">%s</font> ¤ËʬÎव¤ì¤Þ¤·¤¿ History_RemoveAll Á´¤Æºï½ü History_RemovePage ¤³¤Î¥Ú¡¼¥¸¤òºï½ü --- 268,274 ---- History_ClassifyAs ʬÎàÀè History_MagnetUsed ¥Þ¥°¥Í¥Ã¥È»ÈÍÑ ! History_MagnetBecause <b>¥Þ¥°¥Í¥Ã¥È»ÈÍÑ</b><p>¡Ö<font color="%s">%s</font>¡× ¤ËʬÎव¤ì¤Þ¤·¤¿¡£(¥Þ¥°¥Í¥Ã¥È ¡Ö%s¡×¤Î¤¿¤á)</p> ! History_ChangedTo Êѹ¹Àè ¡Ö<font color="%s">%s</font>¡× ! History_Already ¡Ö<font color="%s">%s</font>¡× ¤ËʬÎव¤ì¤Þ¤·¤¿ History_RemoveAll Á´¤Æºï½ü History_RemovePage ¤³¤Î¥Ú¡¼¥¸¤òºï½ü *************** *** 293,318 **** Password_Error2 ¥æ¡¼¥¶¡¼Ì¾¤Þ¤¿¤Ï¥Ñ¥¹¥ï¡¼¥É¤¬´Ö°ã¤Ã¤Æ¤¤¤Þ¤¹ ! Security_Error1 ǧ¾Ú¥Ý¡¼¥ÈÈÖ¹æ¤Ï1¤«¤é65535¤Þ¤Ç¤Ë¤·¤Æ¤¯¤À¤µ¤¤¡£ Security_Stealth ¥¹¥Æ¥ë¥¹¥â¡¼¥É/¥µ¡¼¥Ð¡¼¥ª¥Ú¥ì¡¼¥·¥ç¥ó Security_NoStealthMode ¤¤¤¤¤¨ (¥¹¥Æ¥ë¥¹¥â¡¼¥É) Security_StealthMode ¥¹¥Æ¥ë¥¹¥â¡¼¥É (¥ê¥â¡¼¥È¤«¤é¤ÎÀܳ¤ò¶Ø»ß) Security_ServerMode ¥µ¡¼¥Ð¡¼¥â¡¼¥É (¥ê¥â¡¼¥È¤«¤é¤ÎÀܳ¤òµö²Ä) ! Security_ExplainStats (POPFile ¤ÏËèÆü°ì²ó¡¢°Ê²¼¤Î»°¤Ä¤Î¥Ç¡¼¥¿¤ò www.usethesource.com ¾å¤Î¥¹¥¯¥ê¥×¥È¤ËÁ÷¤ê¤Þ¤¹¡£: bc (¥Ð¥±¥Ä¤ÎÁí¿ô)¡¢mc (POPFile ¤¬Ê¬Îष¤¿¥á¥Ã¥»¡¼¥¸¤ÎÁí¿ô)¡¢ec (ʬÎ२¥é¡¼¤ÎÁí¿ô)¡£¤³¤ì¤é¤Ï¥Õ¥¡¥¤¥ë¤ËµÏ¿¤µ¤ì¡¢POPFile ¤¬¤É¤Î¤è¤¦¤Ë»ÈÍѤµ¤ì¡¢¤É¤ÎÄøÅ٤θú²Ì¤ò¤¢¤²¤Æ¤¤¤ë¤Î¤«¤ò¼¨¤¹Åý·×¾ðÊó¤È¤·¤Æ¸ø³«¤µ¤»¤Æ¤¤¤¿¤À¤¤Þ¤¹¡£»ÈÍѤ·¤Æ¤¤¤Þ¤¹ Web ¥µ¡¼¥Ð¡¼¤Ï¤³¤ì¤é¤Î¥í¥°¥Õ¥¡¥¤¥ë¤òÌó¸ÞÆü´ÖÊݸ¤·¤¿¤¢¤È¡¢ºï½ü¤·¤Þ¤¹¡£¤³¤ì¤é¤ÎÅý·×Ãͤò IP ¥¢¥É¥ì¥¹¤È´ØÏ¢ÉÕ¤±¤ÆÊݸ¤·¤¿¤ê¤Ï¤¤¤Ã¤µ¤¤¤¤¤¿¤·¤Þ¤»¤ó¡£) ! Security_ExplainUpdate (POPFile ¤ÏËèÆü°ì²ó¡¢°Ê²¼¤Î»°¤Ä¤Î¥Ç¡¼¥¿¤ò www.usethesource.com ¾å¤Î¥¹¥¯¥ê¥×¥È¤ËÁ÷¤ê¤Þ¤¹¡£: ma (¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤Æ¤¤¤ë POPFile ¤Î¥á¥¸¥ã¡¼¥Ð¡¼¥¸¥ç¥óÈÖ¹æ)¡¢mi (¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤Æ¤¤¤ë POPFile ¤Î¥Þ¥¤¥Ê¡¼¥Ð¡¼¥¸¥ç¥óÈÖ¹æ)¡¢bn (¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤Æ¤¤¤ë POPFile ¤Î¥Ó¥ë¥ÉÈÖ¹æ)¡£¿·¤·¤¤¥Ð¡¼¥¸¥ç¥ó¤¬¥ê¥ê¡¼¥¹¤µ¤ì¤ë¤È¡¢POPFile ¤Ï¤½¤Î¾ðÊó¤ò¼õ¤±¤Æ¥Ú¡¼¥¸¤Î¾åÉô¤Ë¥°¥é¥Õ¥£¥Ã¥¯¤òɽ¼¨¤·¤Æ¤ªÃΤ餻¤·¤Þ¤¹¡£»ÈÍѤ·¤Æ¤¤¤Þ¤¹ Web ¥µ¡¼¥Ð¡¼¤Ï¤³¤ì¤é¤Î¥í¥°¥Õ¥¡¥¤¥ë¤òÌó¸ÞÆü´ÖÊݸ¤·¤¿¤¢¤È¡¢ºï½ü¤·¤Þ¤¹¡£¤³¤ì¤é¤Î¹¹¿·¥Á¥§¥Ã¥¯¤Ë»ÈÍѤ·¤¿¥Ç¡¼¥¿¤ò IP ¥¢¥É¥ì¥¹¤È´ØÏ¢ÉÕ¤±¤ÆÊݸ¤·¤¿¤ê¤Ï¤¤¤Ã¤µ¤¤¤¤¤¿¤·¤Þ¤»¤ó¡£) Security_PasswordTitle ¥æ¡¼¥¶¡¼¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¥Ñ¥¹¥ï¡¼¥É Security_Password ¥Ñ¥¹¥ï¡¼¥É ! Security_PasswordUpdate ¥Ñ¥¹¥ï¡¼¥É¤ò %s ¤ËÊѹ¹¤·¤Þ¤·¤¿ Security_AUTHTitle ¥ê¥â¡¼¥È¥µ¡¼¥Ð¡¼ Security_SecureServer ¥ê¥â¡¼¥È POP3 ¥µ¡¼¥Ð¡¼ (SPA/AUTH ¤Þ¤¿¤Ï Æ©²á¥×¥í¥¥·) ! Security_SecureServerUpdate ¥ê¥â¡¼¥È POP3 ¥µ¡¼¥Ð¡¼¤ò %s ¤ËÊѹ¹¤·¤Þ¤·¤¿¡£ 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 ¤òºÆµ¯Æ°¤¹¤ë¤Þ¤Ç͸ú¤Ë¤Ê¤ê¤Þ¤»¤ó¡£ Security_SMTPPort SMTP ¥Á¥§¡¼¥ó¥Ý¡¼¥ÈÈÖ¹æ ! Security_SMTPPortUpdate SMTP ¥Á¥§¡¼¥ó¥Ý¡¼¥ÈÈÖ¹æ¤ò %s ¤ËÊѹ¹¤·¤Þ¤·¤¿¡£¤³¤ÎÊѹ¹¤Ï POPFile ¤òºÆµ¯Æ°¤¹¤ë¤Þ¤Ç͸ú¤Ë¤Ê¤ê¤Þ¤»¤ó¡£ Security_POP3 ¥ê¥â¡¼¥È¥Þ¥·¥ó¤«¤é¤Î POP3 Àܳ¤òǧ¤á¤ë (POPFile ¤ÎºÆµ¯Æ°¤¬É¬Í×) Security_SMTP ¥ê¥â¡¼¥È¥Þ¥·¥ó¤«¤é¤Î SMTP Àܳ¤òǧ¤á¤ë (POPFile ¤ÎºÆµ¯Æ°¤¬É¬Í×) --- 299,324 ---- Password_Error2 ¥æ¡¼¥¶¡¼Ì¾¤Þ¤¿¤Ï¥Ñ¥¹¥ï¡¼¥É¤¬´Ö°ã¤Ã¤Æ¤¤¤Þ¤¹ ! Security_Error1 ǧ¾Ú¥Ý¡¼¥ÈÈÖ¹æ¤Ï 1 ¤«¤é 65535 ¤Þ¤Ç¤Ë¤·¤Æ¤¯¤À¤µ¤¤¡£ Security_Stealth ¥¹¥Æ¥ë¥¹¥â¡¼¥É/¥µ¡¼¥Ð¡¼¥ª¥Ú¥ì¡¼¥·¥ç¥ó Security_NoStealthMode ¤¤¤¤¤¨ (¥¹¥Æ¥ë¥¹¥â¡¼¥É) Security_StealthMode ¥¹¥Æ¥ë¥¹¥â¡¼¥É (¥ê¥â¡¼¥È¤«¤é¤ÎÀܳ¤ò¶Ø»ß) Security_ServerMode ¥µ¡¼¥Ð¡¼¥â¡¼¥É (¥ê¥â¡¼¥È¤«¤é¤ÎÀܳ¤òµö²Ä) ! Security_ExplainStats (¤³¤Î¥ª¥×¥·¥ç¥ó¤ò͸ú¤Ë¤¹¤ë¤È¡¢POPFile ¤ÏËèÆü°ì²ó°Ê²¼¤Î»°¤Ä¤Î¥Ç¡¼¥¿¤ò getpopfile.org ¾å¤Î¥¹¥¯¥ê¥×¥È¤ËÁ÷¤ê¤Þ¤¹¡£: bc (¥Ð¥±¥Ä¤ÎÁí¿ô)¡¢mc (POPFile ¤¬Ê¬Îष¤¿¥á¥Ã¥»¡¼¥¸¤ÎÁí¿ô)¡¢ec (ʬÎ२¥é¡¼¤ÎÁí¿ô)¡£¤³¤ì¤é¤Ï¥Õ¥¡¥¤¥ë¤ËµÏ¿¤µ¤ì¡¢POPFile ¤¬¤É¤Î¤è¤¦¤Ë»ÈÍѤµ¤ì¡¢¤É¤ÎÄøÅ٤θú²Ì¤ò¤¢¤²¤Æ¤¤¤ë¤Î¤«¤ò¼¨¤¹Åý·×¾ðÊó¤È¤·¤Æ¸ø³«¤µ¤»¤Æ¤¤¤¿¤À¤¤Þ¤¹¡£Web ¥µ¡¼¥Ð¡¼¤Ï¤³¤ì¤é¤Î¥í¥°¥Õ¥¡¥¤¥ë¤òÌó¸ÞÆü´ÖÊݸ¤·¤¿¤¢¤È¡¢ºï½ü¤·¤Þ¤¹¡£¤³¤ì¤é¤ÎÅý·×Ãͤò IP ¥¢¥É¥ì¥¹¤È´ØÏ¢ÉÕ¤±¤ÆÊݸ¤¹¤ë¤³¤È¤Ï¤¤¤Ã¤µ¤¤¤¢¤ê¤Þ¤»¤ó¡£) ! Security_ExplainUpdate (¤³¤Î¥ª¥×¥·¥ç¥ó¤ò͸ú¤Ë¤¹¤ë¤È¡¢POPFile ¤ÏËèÆü°ì²ó°Ê²¼¤Î»°¤Ä¤Î¥Ç¡¼¥¿¤ò getpopfile.org ¾å¤Î¥¹¥¯¥ê¥×¥È¤ËÁ÷¤ê¤Þ¤¹¡£: ma (¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤Æ¤¤¤ë POPFile ¤Î¥á¥¸¥ã¡¼¥Ð¡¼¥¸¥ç¥óÈÖ¹æ)¡¢mi (¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤Æ¤¤¤ë POPFile ¤Î¥Þ¥¤¥Ê¡¼¥Ð¡¼¥¸¥ç¥óÈÖ¹æ)¡¢bn (¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤Æ¤¤¤ë POPFile ¤Î¥Ó¥ë¥ÉÈÖ¹æ)¡£¿·¤·¤¤¥Ð¡¼¥¸¥ç¥ó¤¬¥ê¥ê¡¼¥¹¤µ¤ì¤ë¤È¡¢POPFile ¤Ï¤½¤Î¾ðÊó¤ò¼õ¤±¤Æ¥Ú¡¼¥¸¤Î¾åÉô¤Ë¥°¥é¥Õ¥£¥Ã¥¯¤òɽ¼¨¤·¤Æ¤ªÃΤ餻¤·¤Þ¤¹¡£Web ¥µ¡¼¥Ð¡¼¤Ï¤³¤ì¤é¤Î¥í¥°¥Õ¥¡¥¤¥ë¤òÌó¸ÞÆü´ÖÊݸ¤·¤¿¤¢¤È¡¢ºï½ü¤·¤Þ¤¹¡£¤³¤ì¤é¤Î¹¹¿·¥Á¥§¥Ã¥¯¤Ë»ÈÍѤ·¤¿¥Ç¡¼¥¿¤ò IP ¥¢¥É¥ì¥¹¤È´ØÏ¢ÉÕ¤±¤ÆÊݸ¤¹¤ë¤³¤È¤Ï¤¤¤Ã¤µ¤¤¤¢¤ê¤Þ¤»¤ó¡£) Security_PasswordTitle ¥æ¡¼¥¶¡¼¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¥Ñ¥¹¥ï¡¼¥É Security_Password ¥Ñ¥¹¥ï¡¼¥É ! Security_PasswordUpdate ¥Ñ¥¹¥ï¡¼¥É¤ò ¡Ö%s¡×¤ËÊѹ¹¤·¤Þ¤·¤¿ Security_AUTHTitle ¥ê¥â¡¼¥È¥µ¡¼¥Ð¡¼ Security_SecureServer ¥ê¥â¡¼¥È POP3 ¥µ¡¼¥Ð¡¼ (SPA/AUTH ¤Þ¤¿¤Ï Æ©²á¥×¥í¥¥·) ! Security_SecureServerUpdate ¥ê¥â¡¼¥È POP3 ¥µ¡¼¥Ð¡¼¤ò ¡Ö%s¡× ¤ËÊѹ¹¤·¤Þ¤·¤¿¡£ 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 ¤òºÆµ¯Æ°¤¹¤ë¤Þ¤Ç͸ú¤Ë¤Ê¤ê¤Þ¤»¤ó¡£ Security_SMTPPort SMTP ¥Á¥§¡¼¥ó¥Ý¡¼¥ÈÈÖ¹æ ! Security_SMTPPortUpdate SMTP ¥Á¥§¡¼¥ó¥Ý¡¼¥ÈÈÖ¹æ¤ò ¡Ö%s¡× ¤ËÊѹ¹¤·¤Þ¤·¤¿¡£¤³¤ÎÊѹ¹¤Ï POPFile ¤òºÆµ¯Æ°¤¹¤ë¤Þ¤Ç͸ú¤Ë¤Ê¤ê¤Þ¤»¤ó¡£ Security_POP3 ¥ê¥â¡¼¥È¥Þ¥·¥ó¤«¤é¤Î POP3 Àܳ¤òǧ¤á¤ë (POPFile ¤ÎºÆµ¯Æ°¤¬É¬Í×) Security_SMTP ¥ê¥â¡¼¥È¥Þ¥·¥ó¤«¤é¤Î SMTP Àܳ¤òǧ¤á¤ë (POPFile ¤ÎºÆµ¯Æ°¤¬É¬Í×) *************** *** 320,335 **** Security_UI ¥ê¥â¡¼¥È¥Þ¥·¥ó¤«¤é¤Î HTTP Àܳ(¥æ¡¼¥¶¡¼¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤ÎÍøÍÑ)¤òǧ¤á¤ë (POPFile ¤ÎºÆµ¯Æ°¤¬É¬Í×) Security_XMLRPC ¥ê¥â¡¼¥È¥Þ¥·¥ó¤«¤é¤Î XML-RPC Àܳ¤òǧ¤á¤ë (POPFile ¤ÎºÆµ¯Æ°¤¬É¬Í×) Security_UpdateTitle ¹¹¿·¼«Æ°¥Á¥§¥Ã¥¯ Security_Update POPFile ¤¬¹¹¿·¤µ¤ì¤Æ¤¤¤ë¤«¤É¤¦¤«ËèÆü¥Á¥§¥Ã¥¯¤¹¤ë Security_StatsTitle Åý·×¾ðÊó¥ì¥Ý¡¼¥È Security_Stats Åý·×¾ðÊó¤òËèÆüÁ÷¤ë ! Magnet_Error1 ¥Þ¥°¥Í¥Ã¥È '%s' ¤Ë¤Ï´û¤Ë¥Ð¥±¥Ä '%s' ¤ò³ä¤êÅö¤Æ¤Æ¤¤¤Þ¤¹¡£ ! Magnet_Error2 ¿·µ¬¥Þ¥°¥Í¥Ã¥È '%s' ¤Ï´û¤Ë¤¢¤ë¥Þ¥°¥Í¥Ã¥È '%s' (¥Ð¥±¥Ä '%s' ¤¬³ä¤êÅö¤Æ¤é¤ì¤Æ¤¤¤Þ¤¹) ¤È¾×ÆÍ¤¹¤ë¤¿¤á¡¢Àµ¤·¤¤½èÍý¤ò¤ª¤³¤Ê¤¦¤³¤È¤¬¤Ç¤¤Þ¤»¤ó¡£¿·µ¬¥Þ¥°¥Í¥Ã¥È¤ÏÄɲ䵤ì¤Þ¤»¤ó¤Ç¤·¤¿¡£ ! Magnet_Error3 ¿·µ¬¥Þ¥°¥Í¥Ã¥È '%s' ¤Ë¥Ð¥±¥Ä '%s' ¤ò³ä¤êÅö¤Æ¤Þ¤·¤¿¡£ Magnet_CurrentMagnets ¸½ºß¤Î¥Þ¥°¥Í¥Ã¥È Magnet_Message1 ¼¡¤Î¥Þ¥°¥Í¥Ã¥È¤Ë¤è¤ê¡¢¥á¡¼¥ë¤ò¾ï¤ËÆÃÄê¤Î¥Ð¥±¥Ä¤ËʬÎष¤Þ¤¹¡£ Magnet_CreateNew ¿·µ¬¥Þ¥°¥Í¥Ã¥ÈºîÀ® ! Magnet_Explanation <b>¥Þ¥°¥Í¥Ã¥È¤Ë¤Ï»°¤Ä¤Î¥¿¥¤¥×¤¬¤¢¤ê¤Þ¤¹:</b> <ul><li><b>º¹½Ð¿Í¤Î¥¢¥É¥ì¥¹¤Þ¤¿¤Ï̾Á°:</b> Îã: jo...@co... ¤Î¤è¤¦¤ËÆÃÄê¤Î¥¢¥É¥ì¥¹¤¬¥Þ¥Ã¥Á¤¹¤ë¡¢<br />company.com ¤Î¤è¤¦¤Ë company.com ¤Ë°¤¹¤ëÁ´¤Æ¤Î¿Í¤¿¤Á¤¬¥Þ¥Ã¥Á¤¹¤ë¡¢<br />John Doe ¤Î¤è¤¦¤ËÆÃÄê¤Î¿Í¤¬¥Þ¥Ã¥Á¤¹¤ë¡¢John ¤Î¤è¤¦¤ËJohn ¤È¤¤¤¦Ì¾Á°¤ò»ý¤ÄÁ´¤Æ¤Î¿Í¤¿¤Á¤¬¥Þ¥Ã¥Á¤¹¤ë¡£</li><li><b>°¸Àè¤Î¥¢¥É¥ì¥¹¤Þ¤¿¤Ï̾Á°:</b> From: magnet ¤ÈƱÍͤǤ¹¤¬¥á¡¼¥ë¤Î To: ¥¢¥É¥ì¥¹¤¬ÂоݤǤ¹¡£</li> <li><b>·ï̾¤Ë´Þ¤Þ¤ì¤ëñ¸ì:</b> Îã: hello ¤È¤¹¤ë¤È hello ¤ò·ï̾¤Ë´Þ¤àÁ´¤Æ¤Î¥á¥Ã¥»¡¼¥¸¤¬¥Þ¥Ã¥Á¤·¤Þ¤¹¡£</li></ul> Magnet_MagnetType ¥Þ¥°¥Í¥Ã¥È¥¿¥¤¥× Magnet_Value ÃÍ --- 326,356 ---- Security_UI ¥ê¥â¡¼¥È¥Þ¥·¥ó¤«¤é¤Î HTTP Àܳ(¥æ¡¼¥¶¡¼¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤ÎÍøÍÑ)¤òǧ¤á¤ë (POPFile ¤ÎºÆµ¯Æ°¤¬É¬Í×) Security_XMLRPC ¥ê¥â¡¼¥È¥Þ¥·¥ó¤«¤é¤Î XML-RPC Àܳ¤òǧ¤á¤ë (POPFile ¤ÎºÆµ¯Æ°¤¬É¬Í×) + Security_StealthModeUpdatePOP3 POPFile POP3 ¥×¥í¥¥· ¤Ï¾¤Î¥Þ¥·¥ó¤«¤é¤ÎÀܳ¤ò¡ÖµñÈݡפ·¤Þ¤¹¡£¤³¤ÎÊѹ¹¤Ï POPFile ¤òºÆµ¯Æ°¤¹¤ë¤Þ¤Ç͸ú¤Ë¤Ê¤ê¤Þ¤»¤ó¡£ + Security_ServerModeUpdatePOP3 POPFile POP3 ¥×¥í¥¥· ¤Ï¾¤Î¥Þ¥·¥ó¤«¤é¤ÎÀܳ¤ò¡Öµö²Ä¡×¤·¤Þ¤¹¡£¤³¤ÎÊѹ¹¤Ï POPFile ¤òºÆµ¯Æ°¤¹¤ë¤Þ¤Ç͸ú¤Ë¤Ê¤ê¤Þ¤»¤ó¡£ + Security_StealthModeUpdateSMTP POPFile SMTP ¥×¥í¥¥· ¤Ï¾¤Î¥Þ¥·¥ó¤«¤é¤ÎÀܳ¤ò¡ÖµñÈݡפ·¤Þ¤¹¡£¤³¤ÎÊѹ¹¤Ï POPFile ¤òºÆµ¯Æ°¤¹¤ë¤Þ¤Ç͸ú¤Ë¤Ê¤ê¤Þ¤»¤ó¡£ + Security_ServerModeUpdateSMTP POPFile SMTP ¥×¥í¥¥· ¤Ï¾¤Î¥Þ¥·¥ó¤«¤é¤ÎÀܳ¤ò¡Öµö²Ä¡×¤·¤Þ¤¹¡£¤³¤ÎÊѹ¹¤Ï POPFile ¤òºÆµ¯Æ°¤¹¤ë¤Þ¤Ç͸ú¤Ë¤Ê¤ê¤Þ¤»¤ó¡£ + Security_StealthModeUpdateNNTP POPFile NNTP ¥×¥í¥¥· ¤Ï¾¤Î¥Þ¥·¥ó¤«¤é¤ÎÀܳ¤ò¡ÖµñÈݡפ·¤Þ¤¹¡£¤³¤ÎÊѹ¹¤Ï POPFile ¤òºÆµ¯Æ°¤¹¤ë¤Þ¤Ç͸ú¤Ë¤Ê¤ê¤Þ¤»¤ó¡£ + Security_ServerModeUpdateNNTP POPFile NNTP ¥×¥í¥¥· ¤Ï¾¤Î¥Þ¥·¥ó¤«¤é¤ÎÀܳ¤ò¡Öµö²Ä¡×¤·¤Þ¤¹¡£¤³¤ÎÊѹ¹¤Ï POPFile ¤òºÆµ¯Æ°¤¹¤ë¤Þ¤Ç͸ú¤Ë¤Ê¤ê¤Þ¤»¤ó¡£ + Security_StealthModeUpdateUI POPFile UI (¥³¥ó¥È¥í¡¼¥ë¥»¥ó¥¿¡¼) ¤Ï¾¤Î¥Þ¥·¥ó¤«¤é¤ÎÀܳ¤ò¡ÖµñÈݡפ·¤Þ¤¹¡£¤³¤ÎÊѹ¹¤Ï POPFile ¤òºÆµ¯Æ°¤¹¤ë¤Þ¤Ç͸ú¤Ë¤Ê¤ê¤Þ¤»¤ó¡£ + Security_ServerModeUpdateUI POPFile UI (¥³¥ó¥È¥í¡¼¥ë¥»¥ó¥¿¡¼) ¤Ï¾¤Î¥Þ¥·¥ó¤«¤é¤ÎÀܳ¤ò¡Öµö²Ä¡×¤·¤Þ¤¹¡£¤³¤ÎÊѹ¹¤Ï POPFile ¤òºÆµ¯Æ°¤¹¤ë¤Þ¤Ç͸ú¤Ë¤Ê¤ê¤Þ¤»¤ó¡£ + Security_StealthModeUpdateXMLRPC POPFile XML-RPC ¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹ ¤Ï¾¤Î¥Þ¥·¥ó¤«¤é¤ÎÀܳ¤ò¡ÖµñÈݡפ·¤Þ¤¹¡£¤³¤ÎÊѹ¹¤Ï POPFile ¤òºÆµ¯Æ°¤¹¤ë¤Þ¤Ç͸ú¤Ë¤Ê¤ê¤Þ¤»¤ó¡£ + Security_ServerModeUpdateXMLRPC POPFile XML-RPC ¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹ ¤Ï¾¤Î¥Þ¥·¥ó¤«¤é¤ÎÀܳ¤ò¡Öµö²Ä¡×¤·¤Þ¤¹¡£¤³¤ÎÊѹ¹¤Ï POPFile ¤òºÆµ¯Æ°¤¹¤ë¤Þ¤Ç͸ú¤Ë¤Ê¤ê¤Þ¤»¤ó¡£ Security_UpdateTitle ¹¹¿·¼«Æ°¥Á¥§¥Ã¥¯ Security_Update POPFile ¤¬¹¹¿·¤µ¤ì¤Æ¤¤¤ë¤«¤É¤¦¤«ËèÆü¥Á¥§¥Ã¥¯¤¹¤ë Security_StatsTitle Åý·×¾ðÊó¥ì¥Ý¡¼¥È Security_Stats Åý·×¾ðÊó¤òËèÆüÁ÷¤ë + Security_UpdateOn POPFile ¤ÏËèÆü¹¹¿·¤µ¤ì¤Æ¤¤¤ë¤«¤É¤¦¤«¤ò¥Á¥§¥Ã¥¯¤·¤Þ¤¹¡£ + Security_UpdateOff POPFile ¤Ï¹¹¿·¤µ¤ì¤Æ¤¤¤ë¤«¤É¤¦¤«¤Î¥Á¥§¥Ã¥¯¤ò¤·¤Þ¤»¤ó + Security_StatsOn POPFile ¤ÏËèÆüÅý·×¾ðÊó¥ì¥Ý¡¼¥È¤òÁ÷¤ê¤Þ¤¹ + Security_StatsOff POPFile ¤ÏÅý·×¾ðÊó¥ì¥Ý¡¼¥È¤òÁ÷¤ê¤Þ¤»¤ó ! Magnet_Error1 ¥Þ¥°¥Í¥Ã¥È ¡Ö%s¡× ¤Ë¤Ï´û¤Ë¥Ð¥±¥Ä ¡Ö%s¡× ¤ò³ä¤êÅö¤Æ¤Æ¤¤¤Þ¤¹ ! Magnet_Error2 ¿·µ¬¥Þ¥°¥Í¥Ã¥È ¡Ö%s¡× ¤Ï´û¤Ë¤¢¤ë¥Þ¥°¥Í¥Ã¥È ¡Ö%s¡× (¥Ð¥±¥Ä ¡Ö%s¡× ¤¬³ä¤êÅö¤Æ¤é¤ì¤Æ¤¤¤Þ¤¹) ¤È¾×ÆÍ¤¹¤ë¤¿¤á¡¢Àµ¤·¤¤½èÍý¤ò¤ª¤³¤Ê¤¦¤³¤È¤¬¤Ç¤¤Þ¤»¤ó¡£¿·µ¬¥Þ¥°¥Í¥Ã¥È¤ÏÄɲ䵤ì¤Þ¤»¤ó¤Ç¤·¤¿ ! Magnet_Error3 ¿·µ¬¥Þ¥°¥Í¥Ã¥È ¡Ö%s¡× ¤Ë¥Ð¥±¥Ä ¡Ö%s¡× ¤ò³ä¤êÅö¤Æ¤Þ¤·¤¿ ! Magnet_RemovedMagnets ¥Þ¥°¥Í¥Ã¥È ¡Ö%s¡× ¤ò¥Ð¥±¥Ä ¡Ö%s¡× ¤«¤éºï½ü¤·¤Þ¤·¤¿ Magnet_CurrentMagnets ¸½ºß¤Î¥Þ¥°¥Í¥Ã¥È Magnet_Message1 ¼¡¤Î¥Þ¥°¥Í¥Ã¥È¤Ë¤è¤ê¡¢¥á¡¼¥ë¤ò¾ï¤ËÆÃÄê¤Î¥Ð¥±¥Ä¤ËʬÎष¤Þ¤¹¡£ Magnet_CreateNew ¿·µ¬¥Þ¥°¥Í¥Ã¥ÈºîÀ® ! Magnet_Explanation <b>¥Þ¥°¥Í¥Ã¥È¤Ë¤Ï»°¤Ä¤Î¥¿¥¤¥×¤¬¤¢¤ê¤Þ¤¹:</b> <ul><li><b>º¹½Ð¿Í¤Î¥¢¥É¥ì¥¹¤Þ¤¿¤Ï̾Á°:</b> Îã: jo...@co... ¤ÏÆÃÄê¤Î¥¢¥É¥ì¥¹¤Ë¥Þ¥Ã¥Á¤·¡¢<br />company.com ¤Ï company.com ¤Ë°¤¹¤ëÁ´¤Æ¤Î¿Í¤Ë¥Þ¥Ã¥Á¤·¡¢<br />John Doe ¤ÏÆÃÄê¤Î¿Í¤Ë¥Þ¥Ã¥Á¤·¡¢John ¤Ï John ¤È¤¤¤¦Ì¾Á°¤ÎÁ´¤Æ¤Î¿Í¤Ë¥Þ¥Ã¥Á¤·¤Þ¤¹¡£</li><li><b>°¸Àè/Cc¤Î¥¢¥É¥ì¥¹¤Þ¤¿¤Ï̾Á°:</b> º¹½Ð¿Í¤Î¥Þ¥°¥Í¥Ã¥È¤ÈƱÍͤǤ¹¤¬¥á¡¼¥ë¤Î°¸Àè¤Þ¤¿¤Ï Cc ¤¬Âоݤˤʤê¤Þ¤¹¡£</li> <li><b>·ï̾¤Ë´Þ¤Þ¤ì¤ëñ¸ì:</b> Îã: hello ¤Ï hello ¤ò·ï̾¤Ë´Þ¤àÁ´¤Æ¤Î¥á¥Ã¥»¡¼¥¸¤Ë¥Þ¥Ã¥Á¤·¤Þ¤¹¡£</li></ul> Magnet_MagnetType ¥Þ¥°¥Í¥Ã¥È¥¿¥¤¥× Magnet_Value ÃÍ *************** *** 339,347 **** Bucket_Error1 ¥Ð¥±¥Ä̾¤Ë¤Ï¥¢¥ë¥Õ¥¡¥Ù¥Ã¥È¤Î¾®Ê¸»ú(a ¤«¤é z ¤Þ¤Ç)¤« - (¥Ï¥¤¥Õ¥ó)¡¢¤Þ¤¿¤Ï _ (¥¢¥ó¥À¡¼¥¹¥³¥¢)¤·¤«»È¤¨¤Þ¤»¤ó¡£ ! Bucket_Error2 ¥Ð¥±¥Ä %s ¤Ï´û¤Ë¤¢¤ê¤Þ¤¹¡£ ! Bucket_Error3 ¥Ð¥±¥Ä %s ¤òºîÀ®¤·¤Þ¤·¤¿¡£ Bucket_Error4 ¥¹¥Ú¡¼¥¹¤ÏÆþÎϤ·¤Ê¤¤¤Ç¤¯¤À¤µ¤¤¡£ ! Bucket_Error5 ¥Ð¥±¥Ä %s ¤ò %s ¤ËÊѹ¹¤·¤Þ¤·¤¿¡£ ! Bucket_Error6 ¥Ð¥±¥Ä %s ¤òºï½ü¤·¤Þ¤·¤¿¡£ Bucket_Title ¥µ¥Þ¥ê¡¼ Bucket_BucketName ¥Ð¥±¥Ä̾ --- 360,368 ---- Bucket_Error1 ¥Ð¥±¥Ä̾¤Ë¤Ï¥¢¥ë¥Õ¥¡¥Ù¥Ã¥È¤Î¾®Ê¸»ú(a ¤«¤é z ¤Þ¤Ç)¤« - (¥Ï¥¤¥Õ¥ó)¡¢¤Þ¤¿¤Ï _ (¥¢¥ó¥À¡¼¥¹¥³¥¢)¤·¤«»È¤¨¤Þ¤»¤ó¡£ ! Bucket_Error2 ¥Ð¥±¥Ä ¡Ö%s¡×¤Ï´û¤Ë¤¢¤ê¤Þ¤¹¡£ ! Bucket_Error3 ¥Ð¥±¥Ä ¡Ö%s¡×¤òºîÀ®¤·¤Þ¤·¤¿¡£ Bucket_Error4 ¥¹¥Ú¡¼¥¹¤ÏÆþÎϤ·¤Ê¤¤¤Ç¤¯¤À¤µ¤¤¡£ ! Bucket_Error5 ¥Ð¥±¥Ä ¡Ö%s¡×¤ò ¡Ö%s¡×¤ËÊѹ¹¤·¤Þ¤·¤¿¡£ ! Bucket_Error6 ¥Ð¥±¥Ä ¡Ö%s¡×¤òºï½ü¤·¤Þ¤·¤¿¡£ Bucket_Title ¥µ¥Þ¥ê¡¼ Bucket_BucketName ¥Ð¥±¥Ä̾ *************** *** 363,368 **** Bucket_LastReset ºÇ¸å¤Î¥ê¥»¥Ã¥È Bucket_MessagesPerDay 1 Æü¤¢¤¿¤ê¤Î¥á¡¼¥ë¿ô ! Bucket_CurrentColor %s ¸½ºß¤Î¿§¤Ï %s ! Bucket_SetColorTo %s ¤Î¿§¤ò %s ¤ËÀßÄê Bucket_Maintenance ´ÉÍý Bucket_CreateBucket ¥Ð¥±¥ÄºîÀ® --- 384,389 ---- Bucket_LastReset ºÇ¸å¤Î¥ê¥»¥Ã¥È Bucket_MessagesPerDay 1 Æü¤¢¤¿¤ê¤Î¥á¡¼¥ë¿ô ! Bucket_CurrentColor ¡Ö%s¡×¸½ºß¤Î¿§¤Ï ¡Ö%s¡× ! Bucket_SetColorTo ¡Ö%s¡×¤Î¿§¤ò ¡Ö%s¡×¤ËÀßÄê Bucket_Maintenance ´ÉÍý Bucket_CreateBucket ¥Ð¥±¥ÄºîÀ® *************** *** 372,386 **** Bucket_LookupMessage ¥Ð¥±¥ÄÆâ¤Çñ¸ì¤ò¸¡ºº Bucket_LookupMessage2 ¸¡ºº·ë²Ì : ! Bucket_LookupMostLikely <b>%s</b> ¤Ï <font color="%s">%s</font> Æâ¤Ë¤¢¤ë²ÄǽÀ¤¬Â礤¤¤Ç¤¹¡£ ! Bucket_DoesNotAppear <p><b>%s</b> ¤Ï¤É¤Î¥Ð¥±¥Ä¤ÎÃæ¤Ë¤â¤¢¤ê¤Þ¤»¤ó¡£ Bucket_DisabledGlobally Á´¤Æ OFF Bucket_To ¤ò Bucket_Quarantine ³ÖÎ¥ ! SingleBucket_Title %s ¤Î¾ÜºÙ SingleBucket_WordCount ¥Ð¥±¥ÄÆâñ¸ì¿ô SingleBucket_TotalWordCount Áíñ¸ì¿ô SingleBucket_Percentage Áí¿ô¤ËÂФ¹¤ë³ä¹ç ! SingleBucket_WordTable %s ¤Îñ¸ìɽ SingleBucket_Message1 ¥¢¥¹¥¿¥ê¥¹¥¯ (*) ¤¬ÉÕ¤¤¤¿Ã±¸ì¤Ï¸½ºß¤Î POPFile ¥»¥Ã¥·¥ç¥óÃæ¤ÎʬÎà¤Ë»È¤ï¤ì¤Þ¤·¤¿¡£¤¹¤Ù¤Æ¤Î¥Ð¥±¥Ä¤ËÂФ¹¤ë³ÎΨ¤ò¸¡ºº¤¹¤ë¤Ë¤Ïñ¸ì¤ò¥¯¥ê¥Ã¥¯¤·¤Æ²¼¤µ¤¤¡£ SingleBucket_Unique ¸ÇÍñ¸ì¿ô %s --- 393,407 ---- Bucket_LookupMessage ¥Ð¥±¥ÄÆâ¤Çñ¸ì¤ò¸¡ºº Bucket_LookupMessage2 ¸¡ºº·ë²Ì : ! Bucket_LookupMostLikely ¡Ö<b>%s</b>¡× ¤Ï ¡Ö<font color="%s">%s</font>¡× Æâ¤Ë¤¢¤ë²ÄǽÀ¤¬Â礤¤¤Ç¤¹¡£ ! Bucket_DoesNotAppear <p>¡Ö<b>%s</b>¡× ¤Ï¤É¤Î¥Ð¥±¥Ä¤ÎÃæ¤Ë¤â¤¢¤ê¤Þ¤»¤ó¡£ Bucket_DisabledGlobally Á´¤Æ OFF Bucket_To ¤ò Bucket_Quarantine ³ÖÎ¥ ! SingleBucket_Title ¡Ö%s¡×¤Î¾ÜºÙ SingleBucket_WordCount ¥Ð¥±¥ÄÆâñ¸ì¿ô SingleBucket_TotalWordCount Áíñ¸ì¿ô SingleBucket_Percentage Áí¿ô¤ËÂФ¹¤ë³ä¹ç ! SingleBucket_WordTable ¡Ö%s¡×¤Îñ¸ìɽ SingleBucket_Message1 ¥¢¥¹¥¿¥ê¥¹¥¯ (*) ¤¬ÉÕ¤¤¤¿Ã±¸ì¤Ï¸½ºß¤Î POPFile ¥»¥Ã¥·¥ç¥óÃæ¤ÎʬÎà¤Ë»È¤ï¤ì¤Þ¤·¤¿¡£¤¹¤Ù¤Æ¤Î¥Ð¥±¥Ä¤ËÂФ¹¤ë³ÎΨ¤ò¸¡ºº¤¹¤ë¤Ë¤Ïñ¸ì¤ò¥¯¥ê¥Ã¥¯¤·¤Æ²¼¤µ¤¤¡£ SingleBucket_Unique ¸ÇÍñ¸ì¿ô %s *************** *** 403,407 **** Windows_TrayIcon POPFile ¤Î¥¢¥¤¥³¥ó¤ò Windows ¥·¥¹¥Æ¥à¥È¥ì¥¤¤Ëɽ¼¨¤¹¤ë Windows_Console POPFile ¤Î¥á¥Ã¥»¡¼¥¸¤ò¥³¥ó¥½¡¼¥ë¥¦¥£¥ó¥É¥¦¤Ë½ÐÎϤ¹¤ë ! Windows_NextTime <p><font color="red">¤³¤ÎÊѹ¹¤Ï POPFile ¤ò¼¡²óµ¯Æ°¤¹¤ë¤Þ¤Ç͸ú¤Ë¤Ê¤ê¤Þ¤»¤ó¡£</font> Header_MenuSummary This table is the navigation menu which allows access to each of the different pages of the control center. --- 424,428 ---- Windows_TrayIcon POPFile ¤Î¥¢¥¤¥³¥ó¤ò Windows ¥·¥¹¥Æ¥à¥È¥ì¥¤¤Ëɽ¼¨¤¹¤ë Windows_Console POPFile ¤Î¥á¥Ã¥»¡¼¥¸¤ò¥³¥ó¥½¡¼¥ë¥¦¥£¥ó¥É¥¦¤Ë½ÐÎϤ¹¤ë ! Windows_NextTime ¤³¤ÎÊѹ¹¤Ï POPFile ¤ò¼¡²óµ¯Æ°¤¹¤ë¤Þ¤Ç͸ú¤Ë¤Ê¤ê¤Þ¤»¤ó¡£ Header_MenuSummary This table is the navigation menu which allows access to each of the different pages of the control center. *************** *** 422,428 **** Users_AccountTableSummary This table provides a list of POP3 accounts that are associated with the user being edited. ! Imap_Bucket2Folder <b>%s</b> ¥Ð¥±¥Ä¤ËʬÎव¤ì¤¿¥á¡¼¥ë¤Î°ÜưÀè Imap_MapError Ê£¿ô¤Î¥Ð¥±¥Ä¤ò¤Ò¤È¤Ä¤Î¥Õ¥©¥ë¥À¤ËÂбþÉÕ¤±¤¹¤ë¤³¤È¤Ï¤Ç¤¤Þ¤»¤ó¡£ ! Imap_MapUpdated ¥Ð¥±¥Ä '%s' ¤ò ¥Õ¥©¥ë¥À '%s' ¤ËÂбþÉÕ¤±¤Þ¤·¤¿¡£ Imap_Server IMAP ¥µ¡¼¥Ð¡¼ ¥Û¥¹¥È̾: Imap_ServerNameError ¥µ¡¼¥Ð¡¼¤Î¥Û¥¹¥È̾¤òÆþÎϤ·¤Æ¤¯¤À¤µ¤¤¡£ --- 443,449 ---- Users_AccountTableSummary This table provides a list of POP3 accounts that are associated with the user being edited. ! Imap_Bucket2Folder ¥Ð¥±¥Ä ¡Ö<b>%s</b>¡× ¤ËʬÎव¤ì¤¿¥á¡¼¥ë¤Î°ÜưÀè Imap_MapError Ê£¿ô¤Î¥Ð¥±¥Ä¤ò¤Ò¤È¤Ä¤Î¥Õ¥©¥ë¥À¤ËÂбþÉÕ¤±¤¹¤ë¤³¤È¤Ï¤Ç¤¤Þ¤»¤ó¡£ ! Imap_MapUpdated ¥Ð¥±¥Ä ¡Ö%s¡× ¤ò ¥Õ¥©¥ë¥À ¡Ö%s¡× ¤ËÂбþÉÕ¤±¤Þ¤·¤¿¡£ Imap_Server IMAP ¥µ¡¼¥Ð¡¼ ¥Û¥¹¥È̾: Imap_ServerNameError ¥µ¡¼¥Ð¡¼¤Î¥Û¥¹¥È̾¤òÆþÎϤ·¤Æ¤¯¤À¤µ¤¤¡£ *************** *** 436,440 **** Imap_Expunge ´Æ»ë¥Õ¥©¥ë¥À¤«¤é°Üư¤µ¤ì¤¿¥á¥Ã¥»¡¼¥¸¤òºï½ü¤¹¤ë¡£ Imap_Interval ¹¹¿·¤Î´Ö³Ö¡ÊÉáË: ! Imap_IntervalError ¹¹¿·´Ö³Ö¤Ï10É䫤é3600ÉÃ¤Î´Ö¤ÇÆþÎϤ·¤Æ¤¯¤À¤µ¤¤¡£ Imap_OptionsUpdated IMAP ¤Î¥ª¥×¥·¥ç¥ó¤ÏÀµ¾ï¤Ë¹¹¿·¤µ¤ì¤Þ¤·¤¿¡£ Imap_RefreshFolders ¥Õ¥©¥ë¥À¥ê¥¹¥È¤Î¹¹¿· --- 457,461 ---- Imap_Expunge ´Æ»ë¥Õ¥©¥ë¥À¤«¤é°Üư¤µ¤ì¤¿¥á¥Ã¥»¡¼¥¸¤òºï½ü¤¹¤ë¡£ Imap_Interval ¹¹¿·¤Î´Ö³Ö¡ÊÉáË: ! Imap_IntervalError ¹¹¿·´Ö³Ö¤Ï 10 É䫤é 3600 ÉÃ¤Î´Ö¤ÇÆþÎϤ·¤Æ¤¯¤À¤µ¤¤¡£ Imap_OptionsUpdated IMAP ¤Î¥ª¥×¥·¥ç¥ó¤ÏÀµ¾ï¤Ë¹¹¿·¤µ¤ì¤Þ¤·¤¿¡£ Imap_RefreshFolders ¥Õ¥©¥ë¥À¥ê¥¹¥È¤Î¹¹¿· *************** *** 452,456 **** Imap_DoingTraining IMAP ¥â¥¸¥å¡¼¥ë¤Ï¤³¤ì¤«¤é¥á¥Ã¥»¡¼¥¸¥¢¡¼¥«¥¤¥Ö¤«¤é³Ø½¬¤ò»Ï¤á¤ë¤È¤³¤í¤Ç¤¹¡£³Ø½¬¤¬½ª¤ï¤ë¤Þ¤Ç¤Î´Ö POPFile ¤Î UI ¤ÏÈ¿±þ¤·¤Ê¤¯¤Ê¤ê¤Þ¤¹¡£¥¢¡¼¥«¥¤¥Ö¤ÎÂ礤µ¤ä IMAP ¥µ¡¼¥Ð¤È¤ÎÀܳ®Å٤ˤâ¤è¤ê¤Þ¤¹¤¬¡¢¤³¤Î½èÍý¤Ë¤Ï¤·¤Ð¤é¤¯¤«¤«¤ê¤Þ¤¹¡£ Imap_DoTraining ´û¸¤Î¥á¡¼¥ë¥¢¡¼¥«¥¤¥Ö¤«¤é³Ø½¬¤·¤Þ¤¹¡£ ! Imap_Use_SSL SSL »ÈÍÑ Shutdown_Message POPFile ¤Ï½ªÎ»¤·¤Þ¤·¤¿¡£ --- 473,477 ---- Imap_DoingTraining IMAP ¥â¥¸¥å¡¼¥ë¤Ï¤³¤ì¤«¤é¥á¥Ã¥»¡¼¥¸¥¢¡¼¥«¥¤¥Ö¤«¤é³Ø½¬¤ò»Ï¤á¤ë¤È¤³¤í¤Ç¤¹¡£³Ø½¬¤¬½ª¤ï¤ë¤Þ¤Ç¤Î´Ö POPFile ¤Î UI ¤ÏÈ¿±þ¤·¤Ê¤¯¤Ê¤ê¤Þ¤¹¡£¥¢¡¼¥«¥¤¥Ö¤ÎÂ礤µ¤ä IMAP ¥µ¡¼¥Ð¤È¤ÎÀܳ®Å٤ˤâ¤è¤ê¤Þ¤¹¤¬¡¢¤³¤Î½èÍý¤Ë¤Ï¤·¤Ð¤é¤¯¤«¤«¤ê¤Þ¤¹¡£ Imap_DoTraining ´û¸¤Î¥á¡¼¥ë¥¢¡¼¥«¥¤¥Ö¤«¤é³Ø½¬¤·¤Þ¤¹¡£ ! Imap_Use_SSL SSL ¤ò»ÈÍѤ¹¤ë Shutdown_Message POPFile ¤Ï½ªÎ»¤·¤Þ¤·¤¿¡£ *************** *** 468,481 **** tip_Menu_Advanced ¹âÅÙ¤ÊÀßÄê¤òÊѹ¹¤·¤Þ¤¹ ! tip_History_RecentNum Number of messages matching current Search and Filter tip_History_Reclassify ʬÎàÀè¥Ð¥±¥Ä¤Î½¤Àµ¤ò¹Ô¤¤¤Þ¤¹ ! tip_History_Search Find matches in the From address or Subject ! tip_History_Filter Limit the view to the items in the selected bucket ! tip_History_SearchNegate Invert both the Search and Filter ! tip_History_SearchSubmit Submit Search and Filter ! tip_History_SearchReset Clear Search and Filter ! tip_History_RemoveAll Remove all messages from history (matching Search and Filter) ! tip_History_RemoveChecked Remove selected messages from history ! tip_History_RemovePage Remove messages on this page from history tip_History_RemoveColumn Îó¤òºï½ü¤·¤Þ¤¹ tip_History_MoveLeft º¸¤Ø°Üư¤·¤Þ¤¹ --- 489,502 ---- tip_Menu_Advanced ¹âÅÙ¤ÊÀßÄê¤òÊѹ¹¤·¤Þ¤¹ ! tip_History_RecentNum ¸½ºß¤Î¸¡º÷¡¢¥Õ¥£¥ë¥¿¤Ë°ìÃפ¹¤ë¥á¥Ã¥»¡¼¥¸¤Î¿ô tip_History_Reclassify ʬÎàÀè¥Ð¥±¥Ä¤Î½¤Àµ¤ò¹Ô¤¤¤Þ¤¹ ! tip_History_Search º¹½Ð¿Í¤Î¥¢¥É¥ì¥¹¤ä·ï̾¤¬°ìÃפ¹¤ë¤â¤Î¤òõ¤·¤Þ¤¹ ! tip_History_Filter ÁªÂò¤µ¤ì¤¿¥Ð¥±¥Ä¤Î¤â¤Î¤À¤±¤òɽ¼¨¤·¤Þ¤¹ ! tip_History_SearchNegate ¸¡º÷¤È¥Õ¥£¥ë¥¿¤Î¾ò·ï¤òȿž¤·¤Þ¤¹ ! tip_History_SearchSubmit ¸¡º÷¤È¥Õ¥£¥ë¥¿¤ò¼Â¹Ô¤·¤Þ¤¹ ! tip_History_SearchReset ¸¡º÷¤È¥Õ¥£¥ë¥¿¤ò¥¯¥ê¥¢¤·¤Þ¤¹ ! tip_History_RemoveAll ¤¹¤Ù¤Æ¤Î¥á¥Ã¥»¡¼¥¸¡Ê¸¡º÷¤È¥Õ¥£¥ë¥¿¤Ë°ìÃפ¹¤ë¤â¤Î¡Ë¤òÍúÎò¤«¤éºï½ü¤·¤Þ¤¹ ! tip_History_RemoveChecked ÁªÂò¤µ¤ì¤¿¥á¥Ã¥»¡¼¥¸¤òÍúÎò¤«¤éºï½ü¤·¤Þ¤¹ ! tip_History_RemovePage ¤³¤Î¥Ú¡¼¥¸¤Ëɽ¼¨¤µ¤ì¤Æ¤¤¤ë¥á¥Ã¥»¡¼¥¸¤òÍúÎò¤«¤éºï½ü¤·¤Þ¤¹ tip_History_RemoveColumn Îó¤òºï½ü¤·¤Þ¤¹ tip_History_MoveLeft º¸¤Ø°Üư¤·¤Þ¤¹ *************** *** 483,502 **** tip_History_Sort ¤³¤ÎÎó¤ÇʤÓÂØ¤¨¤Þ¤¹ ! tip_Bucket_BucketName View bucket details ! tip_Bucket_Unique Unique words in each bucket ! tip_Bucket_SubjectMod Insert bucket name to begining of the subject ! tip_Bucket_XTCHeader Insert header that most mail clients can use to filter based on POPFile's classification ! tip_Bucket_XPLHeader Insert a header with a link to the message to allow for quickly reclassifing a message ! tip_Bucket_Quarantine Islolate potentially dangerous email by placing it in attachment ! tip_Bucket_Color Select a color for each bucket ! tip_Bucket_Lookup Look up the probability and frequency of a word in all buckets ! tip_Bucket_Accuracy Overall classification accuracy ! tip_Bucket_Classified Bucket statistics and accuracy ! tip_Bucket_WordCount Number and percentage of total words in each bucket tip_Bucket_Create ¿·¤·¤¤¥Ð¥±¥Ä¤òºîÀ®¤·¤Þ¤¹ tip_Bucket_Delete ¥Ð¥±¥Ä¤È¤³¤Î¥Ð¥±¥Ä¤Ø¤Î³Ø½¬ÆâÍÆ¤òºï½ü¤·¤Þ¤¹ tip_Bucket_Rename ¥Ð¥±¥Ä¤Î̾Á°¤òÊѹ¹¤·¤Þ¤¹ tip_Bucket_FalsePos ¸í¤Ã¤Æ¤³¤Î¥Ð¥±¥Ä¤ËʬÎव¤ì¤¿¥á¥Ã¥»¡¼¥¸ ! tip_Bucket_FalseNeg ¸í¤Ã¤Æ¤³¤Î¥Ð¥±¥Ä¤ËʬÎà<b>¤µ¤ì¤Ê¤«¤Ã¤¿</b>¥á¥Ã¥»¡¼¥¸ tip_Bucket_ResetStats ʬÎàÀºÅÙ¤ÎÅý·×¾ðÊó¤ò½é´ü²½¤·¤Þ¤¹ --- 504,523 ---- tip_History_Sort ¤³¤ÎÎó¤ÇʤÓÂØ¤¨¤Þ¤¹ ! tip_Bucket_BucketName ¥Ð¥±¥Ä¤Î¾ÜºÙ¤ò³Îǧ¤·¤Þ¤¹ ! tip_Bucket_Unique ¤½¤ì¤¾¤ì¤Î¥Ð¥±¥Ä¤Î¸ÇÍñ¸ì¿ô ! tip_Bucket_SubjectMod ·ï̾¤ÎºÇ½é¤Ë¥Ð¥±¥Ä¤Î̾Á°¤òÄɲä·¤Þ¤¹ ! tip_Bucket_XTCHeader POPFile ¤ÎʬÎà·ë²Ì¤Ë´ð¤Å¤¯¥Ø¥Ã¥À¤òÄɲä·¤Þ¤¹¡£¤³¤Î¥Ø¥Ã¥À¤Ï¤Û¤È¤ó¤É¤Î¥á¡¼¥ë¥¯¥é¥¤¥¢¥ó¥È¤¬¥Õ¥£¥ë¥¿¤ËÍøÍѤǤ¤Þ¤¹ ! tip_Bucket_XPLHeader ¥á¥Ã¥»¡¼¥¸¤Ø¤Î¥ê¥ó¥¯¤ò´Þ¤à¥Ø¥Ã¥À¤òÄɲä·¤Þ¤¹¡£¤³¤Î¥Ø¥Ã¥À¤Ë¤è¤ê¤¹¤°¤Ë¥á¥Ã¥»¡¼¥¸¤òºÆÊ¬Îह¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£ ! tip_Bucket_Quarantine ÀøºßŪ¤Ë´í¸±¤Ê¥á¡¼¥ë¤ò³ÖÎ¥¤·¡¢ÅºÉÕ¥Õ¥¡¥¤¥ë¤Ë¤·¤Þ¤¹ ! tip_Bucket_Color ¤½¤ì¤¾¤ì¤Î¥Ð¥±¥Ä¤Î¿§¤òÁªÂò¤·¤Þ¤¹ ! tip_Bucket_Lookup ¤¢¤ëñ¸ì¤Ë¤Ä¤¤¤Æ¤½¤ì¤¾¤ì¤Î¥Ð¥±¥Ä¤Ë´Þ¤Þ¤ì¤ë³ÎΨ¤ÈÉÑÅÙ¤òÄ´¤Ù¤Þ¤¹ ! tip_Bucket_Accuracy Áí¹çŪ¤ÊʬÎàÀºÅÙ ! tip_Bucket_Classified ¥Ð¥±¥Ä¤ÎÅý·×¾ðÊó¤ÈÀºÅÙ ! tip_Bucket_WordCount ¤½¤ì¤¾¤ì¤Î¥Ð¥±¥Ä¤Ë¸ºß¤¹¤ëñ¸ì¤ÎÁí¿ô¤È³ä¹ç tip_Bucket_Create ¿·¤·¤¤¥Ð¥±¥Ä¤òºîÀ®¤·¤Þ¤¹ tip_Bucket_Delete ¥Ð¥±¥Ä¤È¤³¤Î¥Ð¥±¥Ä¤Ø¤Î³Ø½¬ÆâÍÆ¤òºï½ü¤·¤Þ¤¹ tip_Bucket_Rename ¥Ð¥±¥Ä¤Î̾Á°¤òÊѹ¹¤·¤Þ¤¹ tip_Bucket_FalsePos ¸í¤Ã¤Æ¤³¤Î¥Ð¥±¥Ä¤ËʬÎव¤ì¤¿¥á¥Ã¥»¡¼¥¸ ! tip_Bucket_FalseNeg ¸í¤Ã¤Æ¤³¤Î¥Ð¥±¥Ä¤ËʬÎव¤ì¤Ê¤«¤Ã¤¿¥á¥Ã¥»¡¼¥¸ tip_Bucket_ResetStats ʬÎàÀºÅÙ¤ÎÅý·×¾ðÊó¤ò½é´ü²½¤·¤Þ¤¹ *************** *** 505,525 **** tip_Magnet_Bucket °ìÃפ·¤¿¥á¥Ã¥»¡¼¥¸¤ò°Üư¤¹¤ë¥Ð¥±¥Ä ! tip_Config_Skin Change the look of POPFile ! tip_Config_Language Change the interface language ! tip_Config_HistoryColumns Add columns you want to display in message history ! tip_Config_PageSize Number of messages to display per page ! tip_Config_Days Number of days to keep messages in history ! tip_Config_Purge Purge older messages now ! tip_Config_HistoryWidth Adjust size of history columns ! tip_Config_ColumnIncrease Increase width of columns ! tip_Config_ColumnDecrease Decrease width of columns ! tip_Config_ColumnAuto Reset column width based on current columns ! tip_Config_HideBar Hide configuration bar ! tip_Config_ShowBar Show configuration bar ! tip_Config_Password Change password for accessing POPFile's Control Center ! tip_Admin_AcceptRemoteHTTP Allow UI access from another machine ! tip_Admin_AcceptRemotePOP3 Allow POP3 mail dowload from another machine ! tip_Admin_Password Add a password to limit access to POPFile tip_Admin_UpdateCheck 0.22 text should be put back tip_Admin_ReportStats 0.22 text should be put back --- 526,546 ---- tip_Magnet_Bucket °ìÃפ·¤¿¥á¥Ã¥»¡¼¥¸¤ò°Üư¤¹¤ë¥Ð¥±¥Ä ! tip_Config_Skin POPFile ¤Î¸«¤¿ÌܤòÊѹ¹¤·¤Þ¤¹ ! tip_Config_Language ¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Î¸À¸ì¤òÊѹ¹¤·¤Þ¤¹ ! tip_Config_HistoryColumns ¥á¥Ã¥»¡¼¥¸ÍúÎò¤Ëɽ¼¨¤·¤¿¤¤Îó¤òÄɲä·¤Þ¤¹ ! tip_Config_PageSize 1 ¥Ú¡¼¥¸¤Ëɽ¼¨¤¹¤ë¥á¥Ã¥»¡¼¥¸¤Î¿ô ! tip_Config_Days ÍúÎò¤Ë¥á¥Ã¥»¡¼¥¸¤ò»Ä¤¹Æü¿ô ! tip_Config_Purge ¸Å¤¤¥á¥Ã¥»¡¼¥¸¤ò¤¹¤°¤Ëºï½ü¤·¤Þ¤¹ ! tip_Config_HistoryWidth ÍúÎò¤ÎÎó¤ÎÉý¤òÄ´À°¤·¤Þ¤¹ ! tip_Config_ColumnIncrease Îó¤ÎÉý¤ò¹¤¯¤·¤Þ¤¹ ! tip_Config_ColumnDecrease Îó¤ÎÉý¤ò¶¹¤¯¤·¤Þ¤¹ ! tip_Config_ColumnAuto Îó¤ÎÉý¤ò½é´ü²½¤·¤Þ¤¹ ! tip_Config_HideBar ÀßÄê¥Ð¡¼¤ò±£¤·¤Þ¤¹ ! tip_Config_ShowBar ÀßÄê¥Ð¡¼¤òɽ¼¨¤·¤Þ¤¹ ! tip_Config_Password POPFile ¥³¥ó¥È¥í¡¼¥ë¥»¥ó¥¿¡¼¤Ë¥¢¥¯¥»¥¹¤¹¤ë¤¿¤á¤Î¥Ñ¥¹¥ï¡¼¥É¤òÊѹ¹¤·¤Þ¤¹ ! tip_Admin_AcceptRemoteHTTP ¾¤Î¥Þ¥·¥ó¤«¤é¤Î UI ¤Ø¤Î¥¢¥¯¥»¥¹¤òµö²Ä¤·¤Þ¤¹ ! tip_Admin_AcceptRemotePOP3 ¾¤Î¥Þ¥·¥ó¤«¤é¤Î POP3 ¥á¡¼¥ë¤Î¥À¥¦¥ó¥í¡¼¥É¤òµö²Ä¤·¤Þ¤¹ ! tip_Admin_Password POPFile ¤Ø¤Î¥¢¥¯¥»¥¹¤òÀ©¸Â¤¹¤ë¤¿¤á¤Ë¥Ñ¥¹¥ï¡¼¥É¤òÀßÄꤷ¤Þ¤¹ tip_Admin_UpdateCheck 0.22 text should be put back tip_Admin_ReportStats 0.22 text should be put back *************** *** 532,543 **** tip_Footer_HomePage POPFile ¥Û¡¼¥à¥Ú¡¼¥¸¤ËÀܳ¤·¤Þ¤¹ ! tip_Footer_Manual The original POPFile documentation (slightly outdated) ! tip_Footer_Wiki POPFile's documentation wiki ! tip_Footer_FAQ POPFile Frequently Asked Questions ! tip_Footer_Version POPFile version number ! tip_Footer_Login Date and time last accessed by this user ! tip_Footer_RFE Have an idea to improve POPFile? Let us know. ! tip_Footer_MailingList Want to hear about changes to POPFile? Sign up. ! tip_Footer_FeedMe Like POPFile? Contribute to making it more successful. # Jim's Bucket Stats stuff --- 553,564 ---- tip_Footer_HomePage POPFile ¥Û¡¼¥à¥Ú¡¼¥¸¤ËÀܳ¤·¤Þ¤¹ ! tip_Footer_Manual ¥ª¥ê¥¸¥Ê¥ë¤Î POPFile ¤Î¥É¥¥å¥á¥ó¥È¡Ê¾¯¤·¸Å¤¤¡Ë ! tip_Footer_Wiki POPFile ¥É¥¥å¥á¥ó¥È¡ÊWiki¡Ë ! tip_Footer_FAQ POPFile ¤Ë¤Ä¤¤¤Æ¤Î¤è¤¯¤¢¤ë¼ÁÌä¤È²óÅú¡ÊFAQ¡Ë ! tip_Footer_Version POPFile ¤Î¥Ð¡¼¥¸¥ç¥óÈÖ¹æ ! tip_Footer_Login ¤³¤Î¥æ¡¼¥¶¡¼¤¬ºÇ¸å¤Ë¥¢¥¯¥»¥¹¤·¤¿Æü»þ ! tip_Footer_RFE POPFile ¤ò²þÁ±¤¹¤ë¤¿¤á¤Î¥¢¥¤¥Ç¥¢¤¬¤¢¤ê¤Þ¤¹¤«¡© ¤â¤·¤¢¤ì¤Ð¶µ¤¨¤Æ¤¯¤À¤µ¤¤¡£ ! tip_Footer_MailingList POFile ¤Ë¤Ä¤¤¤Æ¤ÎÊѹ¹¤Ë¤Ä¤¤¤ÆÃΤꤿ¤¤¤Ç¤¹¤«¡© ¤â¤·ÃΤꤿ¤±¤ì¤ÐÅÐÏ¿¤·¤Æ¤¯¤À¤µ¤¤¡£ ! tip_Footer_FeedMe POPFile ¤òµ¤¤ËÆþ¤Ã¤Æ¤¤¤¿¤À¤±¤Þ¤·¤¿¤«¡© µ¤¤ËÆþ¤Ã¤Æ¤¤¤¿¤À¤¤¤¿¤é¡¢¤è¤ê¤è¤¯¤¹¤ë¤¿¤á¤Ë´óÉÕ¤ò¤ª´ê¤¤¤·¤Þ¤¹¡£ # Jim's Bucket Stats stuff Index: English.msg =================================================================== RCS file: /cvsroot/popfile/engine/languages/English.msg,v retrieving revision 1.114 retrieving revision 1.115 diff -C2 -d -r1.114 -r1.115 *** English.msg 17 Apr 2008 15:49:57 -0000 1.114 --- English.msg 18 Apr 2008 12:41:49 -0000 1.115 *************** *** 187,194 **** Configuration_Set_Password New password has been set Configuration_ConfigBar Config Bar ! Configuration_Logger_Level0 Low ! Configuration_Logger_Level1 Medium ! Configuration_Logger_Level2 High Configuration_Logger_Level Logger level: Advanced_Error1 '%s' already in the Ignored Words list --- 187,200 ---- Configuration_Set_Password New password has been set Configuration_ConfigBar Config Bar ! Configuration_Logger_Level0 Low ! Configuration_Logger_Level1 Medium ! Configuration_Logger_Level2 High Configuration_Logger_Level Logger level: + Configuration_LoggerOutputUpdate The current logger output : '%s' + Configuration_Logger_LevelUpdate The current logger level : '%s' + Configuration_CurrentSessions Current Active User Sessions + Configuration_CurrentSessions_UserName User + Configuration_CurrentSessions_LastUsed Last access + Configuration_CurrentSessions_IdleTime Idle time Advanced_Error1 '%s' already in the Ignored Words list *************** *** 202,212 **** Advanced_RemoveWord Remove word Advanced_AllParameters Global POPFile Parameters ! Advanced_AllParametersNotes This is the complete list of POPFile parameters. Advanced_Parameter Parameter Advanced_Value Value - Advanced_ConfigFile Configuration file: Advanced_Warning Advanced users only: you may change any and click Update; there is no validity checking. Items shown in bold have been changed from the default setting. See <a href="http://getpopfile.org/docs/OptionReference">OptionReference</a> for more information on options. Advanced_SingleUserModeParameters Single User Mode Parameters ! Advanced_SingleUserModeParametersNotes This is the complete list of Single User Mode parameters. Users_Create Create New User --- 208,218 ---- Advanced_RemoveWord Remove word Advanced_AllParameters Global POPFile Parameters ! Advanced_AllParametersNotes This is the complete list of Global POPFile parameters. Advanced_Parameter Parameter Advanced_Value Value Advanced_Warning Advanced users only: you may change any and click Update; there is no validity checking. Items shown in bold have been changed from the default setting. See <a href="http://getpopfile.org/docs/OptionReference">OptionReference</a> for more information on options. + Advanced_ConfigFile Configuration file: Advanced_SingleUserModeParameters Single User Mode Parameters ! Advanced_SingleUserModeParametersNotes This is the complete list of the Single User Mode parameters. Users_Create Create New User *************** *** 319,330 **** Security_UI Accept HTTP (User Interface) connections from remote machines (requires POPFile restart) Security_XMLRPC Accept XML-RPC connections from remote machines (requires POPFile restart) Security_UpdateTitle Automatic Update Checking Security_Update Check daily for updates to POPFile Security_StatsTitle Reporting Statistics Security_Stats Send statistics daily Magnet_Error1 Magnet '%s' already exists in bucket '%s' Magnet_Error2 New magnet '%s' clashes with magnet '%s' in bucket '%s' and could cause ambiguous results. New magnet was not added. ! Magnet_Error3 Create new magnet '%s' in bucket '%s' Magnet_CurrentMagnets Current Magnets Magnet_Message1 The following magnets cause mail to always be classified into the specified bucket. --- 325,351 ---- Security_UI Accept HTTP (User Interface) connections from remote machines (requires POPFile restart) Security_XMLRPC Accept XML-RPC connections from remote machines (requires POPFile restart) + Security_StealthModeUpdatePOP3 POPFile POP3 proxy WON'T be accessed from another machine; this change will not take affect until you restart POPFile + Security_ServerModeUpdatePOP3 POPFile POP3 proxy ALLOWS to be accessed from another machine; this change will not take affect until you restart POPFile + Security_StealthModeUpdateSMTP POPFile SMTP proxy WON'T be accessed from another machine; this change will not take affect until you restart POPFile + Security_ServerModeUpdateSMTP POPFile SMTP proxy ALLOWS to be accessed from another machine; this change will not take affect until you restart POPFile + Security_StealthModeUpdateNNTP POPFile NNTP proxy WON'T be accessed from another machine; this change will not take affect until you restart POPFile + Security_ServerModeUpdateNNTP POPFile NNTP proxy ALLOWS to be accessed from another machine; this change will not take affect until you restart POPFile + Security_StealthModeUpdateUI POPFile UI (Control center) WON'T be accessed from another machine; this change will not take affect until you restart POPFile + Security_ServerModeUpdateUI POPFile UI (Control center) ALLOWS to be accessed from another machine; this change will not take affect until you restart POPFile + Security_StealthModeUpdateXMLRPC POPFile XML-RPC interface WON'T be accessed from another machine; this change will not take affect until you restart POPFile + Security_ServerModeUpdateXMLRPC POPFile XML-RPC interface ALLOWS to be accessed from another machine; this change will not take affect until you restart POPFile Security_UpdateTitle Automatic Update Checking Security_Update Check daily for updates to POPFile Security_StatsTitle Reporting Statistics Security_Stats Send statistics daily + Security_UpdateOn POPFile checks for updates daily + Security_UpdateOff POPFile does not check for updates automatically + Security_StatsOn POPFile sends classification statistics daily + Security_StatsOff POPFile does not send classification statistics Magnet_Error1 Magnet '%s' already exists in bucket '%s' Magnet_Error2 New magnet '%s' clashes with magnet '%s' in bucket '%s' and could cause ambiguous results. New magnet was not added. ! Magnet_Error3 Created a new magnet '%s' in bucket '%s' ! Magnet_RemovedMagnets Removed the magnet '%s' from bucket '%s' Magnet_CurrentMagnets Current Magnets Magnet_Message1 The following magnets cause mail to always be classified into the specified bucket. *************** *** 451,455 **** Imap_DoingTraining The IMAP module is now going to start training on your message archive. The POPFile UI will remain unresponsive until training is completed. Depending on the size of your archive and the speed of the connection to the IMAP server, this may take a while. Imap_DoTraining Train from existing mail archive. ! Imap_Use_SSL Use SSL Shutdown_Message POPFile has shut down --- 472,476 ---- Imap_DoingTraining The IMAP module is now going to start training on your message archive. The POPFile UI will remain unresponsive until training is completed. Depending on the size of your archive and the speed of the connection to the IMAP server, this may take a while. Imap_DoTraining Train from existing mail archive. ! Imap_Use_SSL Use SSL Shutdown_Message POPFile has shut down ... [truncated message content] |
From: naoki i. <am...@us...> - 2008-04-18 12:41:44
|
Update of /cvsroot/popfile/engine/tests In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv14105/tests Modified Files: TestHTML.script Log Message: Change Log 1. Added 'Current active user sessions' section in the administration tab ( in the multiuser mode only ) 2. New function get_current_sessions() UI/HTML.pm Classifier/Bayes.pm POPFile/API.pm skins/default/administration-page.thtml languages/English.msg languages/Nihongo.msg This will allow administrators to check the current users' activities. NOTE : The administrator's session ( got by get_administrator_session_key ) is not be shown. 3. In the multiuser mode, the login user name is shown at the bottom of the UI UI/HTML.pm The login user name is shown instead of the last login user name. 4. XML-RPC stealth/server setting is now configured correctly UI/XMLRPC.pm 5. Add some status messages in the UI UI/HTML.pm UI/XMLRPC.pm Proxy/POP3.pm Proxy/SMTP.pm Proxy/NNTP.pm languages/English.msg languages/Nihongo.msg tests/TestHTML.script Magnet tab Administration tab 6. Avoid redirect to logout or shutdown page from the password page UI/HTML.pm 7. Password page for the single user mode is restored UI/HTML.pm 8. Update language file languages/Nihongo.msg 9. Minor changes of the skins skins/default/common-bottom.thtml skins/default/administration-page.thtml Current state of the test suite: TestBayesScript PASS TestBayes PASS TestConfiguration PASS * TestHistory PASS TestHTML PASS * TestHTTP PASS TestIMAP PASS TestInsertScript PASS * TestLogger PASS TestMailParse PASS TestModule PASS TestMQ PASS TestMutex PASS TestPipeScript PASS TestPOP3 PASS TestProxy PASS TestWordMangle PASS TestXMLRPC PASS * : TODO : needs to add tests for multi user support Index: TestHTML.script =================================================================== RCS file: /cvsroot/popfile/engine/tests/TestHTML.script,v retrieving revision 1.37 retrieving revision 1.38 diff -C2 -d -r1.37 -r1.38 *** TestHTML.script 17 Apr 2008 15:13:05 -0000 1.37 --- TestHTML.script 18 Apr 2008 12:41:49 -0000 1.38 *************** *** 656,671 **** INPUTIS type5 to MAGNETIS personal to newmagnetvalue ! INPUTIS text1 foo ! INPUTIS bucket1 personal ! INPUTIS type1 from ! INPUTIS text2 oldstyle ! INPUTIS bucket2 personal ! INPUTIS type2 from ! INPUTIS text3 bar ! INPUTIS bucket3 personal ! INPUTIS type3 subject ! INPUTIS text4 baz\@baz.com ! INPUTIS bucket4 personal ! INPUTIS type4 to # Check the magnet navigator --- 656,671 ---- INPUTIS type5 to MAGNETIS personal to newmagnetvalue ! INPUTIS text1 foo ! INPUTIS bucket1 personal ! INPUTIS type1 from ! INPUTIS text2 oldstyle ! INPUTIS bucket2 personal ! INPUTIS type2 from ! INPUTIS text3 bar ! INPUTIS bucket3 personal ! INPUTIS type3 subject ! INPUTIS text4 baz\@baz.com ! INPUTIS bucket4 personal ! INPUTIS type4 to # Check the magnet navigator *************** *** 698,702 **** SETINPUT remove5 on CLICK delete ! NOTMATCH newmagnetvalue NOTMATCH type5 --- 698,703 ---- SETINPUT remove5 on CLICK delete ! MATCH Removed the magnet 'to: newmagnetvalue' from bucket 'personal' ! NOTMATCH "newmagnetvalue" NOTMATCH type5 |
From: naoki i. <am...@us...> - 2008-04-17 15:50:14
|
Update of /cvsroot/popfile/engine/languages In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv23834/languages Modified Files: English.msg Nihongo.msg Log Message: Change Log 1. The session keys are now released when they are expired 2. New global parameter 'GLOBAL_session_timeout' (default : 1800 seconds) 3. Replaced get_administrator_session_key with get_single_user_session_key Classifier/Bayes.pm UI/HTML.pm POPFile/History.pm POPFile/Configuration.pm tests/TestConfiguration.tst The session keys which does not used in GLOBAL_session_timeout seconds will be released. NOTE : The session key for the administrator which got from get_administrator_session_key won't be expired. For this reason, please use get_single_user_session_key instead of get_administrator_session_key in the single user mode. NOTE : The 'last used time' is updated when valid_session_key__ is called with the session key. 4. Added 'Single User Mode Parameters' section in the Advanced tab UI/HTML.pm skins/default/advanced-page.thtml languages/English.msg languages/Nihongo.msg All POPFile parameters now can be changed in the single user mode. 'Single User Mode Parameters' section has been added below the 'Global POPFile Parameters' section. 5. Updated translation file languages/Nihongo.msg 6. The session cache is purged when the session key is released 7. The query is stopped when the session key is released UI/HTML.pm 8. Added escape_html_() function in HTTP.pm UI/HTTP.pm UI/HTML.pm tests/TestHTML.script This function is used for escaping ", <, >, &, ' characters. They are converted to ", <, >, & and ' 9. The matched header is showed/emphasized if the magnets are used UI/HTML.pm POPFile/History.pm Classifier/Bayes.pm tests/TestHTML.script The magnet icon's "title" will be like 'From:te...@ex...' in the history tab. The header information will be showed/emphasized in the single message view. 10. Minor fixes of the skins skins/default/common-bottom.thtml skins/default/users-page.thtml skins/default/administration-page.thtml skins/default/pop3-chain-panel.thtml skins/default/pop3-configuration-panel.thtml skins/default/socks-widget.thtml skins/default/nntp-configuration.thtml skins/default/smtp-configuration.thtml skins/default/windows-configuration.thtml Proxy/POP3.pm Proxy/NNTP.pm Proxy/SMTP.pm Platform/MSWin32.pm tests/TestPOP3.tst tests/TestHTML.tst Current state of the test suite: TestBayesScript PASS TestBayes PASS TestConfiguration PASS * TestHistory PASS TestHTML PASS * TestHTTP PASS TestIMAP PASS TestInsertScript PASS * TestLogger PASS TestMailParse PASS TestModule PASS TestMQ PASS TestMutex PASS TestPipeScript PASS TestPOP3 PASS TestProxy PASS TestWordMangle PASS TestXMLRPC PASS * : TODO : needs to add tests for multi user support Index: Nihongo.msg =================================================================== RCS file: /cvsroot/popfile/engine/languages/Nihongo.msg,v retrieving revision 1.26 retrieving revision 1.27 diff -C2 -d -r1.26 -r1.27 *** Nihongo.msg 16 Apr 2008 13:08:05 -0000 1.26 --- Nihongo.msg 17 Apr 2008 15:49:57 -0000 1.27 *************** *** 203,210 **** Advanced_RemoveWord ñ¸ìºï½ü Advanced_AllParameters POPFile Á´¥Ñ¥é¥á¡¼¥¿¡¼ Advanced_Parameter ¥Ñ¥é¥á¡¼¥¿¡¼ Advanced_Value ÃÍ ! Advanced_Warning °Ê²¼¤Ï POPFile ¤ÎÁ´¤Æ¤Î¥Ñ¥é¥á¡¼¥¿¡¼¤Î¥ê¥¹¥È¤Ç¤¹¡£¥¢¥É¥Ð¥ó¥¹¥É¡¦¥æ¡¼¥¶¡¼¤Ë¸Â¤ê¡¢É¬Í×»þ¡¢ÃͤòÊѹ¹¤·¤Æ¹¹¿·¥Ü¥¿¥ó¤ò¥¯¥ê¥Ã¥¯¤·¤Æ²¼¤µ¤¤¡£¥Ð¥ê¥Ç¥£¥Æ¥£¡¼¡ÊÂÅÅöÀ¡Ë¥Á¥§¥Ã¥¯¤Ï¹Ô¤¤¤Þ¤»¤ó¡£ Advanced_ConfigFile ÀßÄê¥Õ¥¡¥¤¥ë: Users_Create ¿·¤·¤¤¥æ¡¼¥¶¡¼¤ÎºîÀ® --- 203,213 ---- Advanced_RemoveWord ñ¸ìºï½ü Advanced_AllParameters POPFile Á´¥Ñ¥é¥á¡¼¥¿¡¼ + Advanced_AllParametersNotes °Ê²¼¤Ï POPFile ¤ÎÁ´ÂÎŪ¤Ê¥Ñ¥é¥á¡¼¥¿¡¼¤ÎÁ´¥ê¥¹¥È¤Ç¤¹¡£ Advanced_Parameter ¥Ñ¥é¥á¡¼¥¿¡¼ Advanced_Value ÃÍ ! Advanced_Warning ¥¢¥É¥Ð¥ó¥¹¥É¡¦¥æ¡¼¥¶¡¼¤Ë¸Â¤ê¡¢É¬Í×»þ¡¢ÃͤòÊѹ¹¤·¤Æ¹¹¿·¥Ü¥¿¥ó¤ò¥¯¥ê¥Ã¥¯¤·¤Æ²¼¤µ¤¤¡£¥Ð¥ê¥Ç¥£¥Æ¥£¡¼¡ÊÂÅÅöÀ¡Ë¥Á¥§¥Ã¥¯¤Ï¹Ô¤¤¤Þ¤»¤ó¡£ÂÀ»ú¤Ë¤Ê¤Ã¤Æ¤¤¤ë¹àÌܤϽé´üÀßÄ꤫¤éÊѹ¹¤µ¤ì¤Æ¤¤¤Þ¤¹¡£¥ª¥×¥·¥ç¥ó¤Î¾ÜºÙ¤Ë¤Ä¤¤¤Æ¤Ï <a href="http://getpopfile.org/docs/JP:OptionReference">¥ª¥×¥·¥ç¥ó¡¦¥ê¥Õ¥¡¥ì¥ó¥¹</a> ¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£ Advanced_ConfigFile ÀßÄê¥Õ¥¡¥¤¥ë: + Advanced_SingleUserModeParameters ¥·¥ó¥°¥ë¥æ¡¼¥¶¡¼¥â¡¼¥É¤Î¥Ñ¥é¥á¡¼¥¿¡¼ + Advanced_SingleUserModeParametersNotes °Ê²¼¤Ï¥·¥ó¥°¥ë¥æ¡¼¥¶¡¼¥â¡¼¥É¤Î¥Ñ¥é¥á¡¼¥¿¤ÎÁ´¥ê¥¹¥È¤Ç¤¹¡£ Users_Create ¿·¤·¤¤¥æ¡¼¥¶¡¼¤ÎºîÀ® Index: English.msg =================================================================== RCS file: /cvsroot/popfile/engine/languages/English.msg,v retrieving revision 1.113 retrieving revision 1.114 diff -C2 -d -r1.113 -r1.114 *** English.msg 16 Apr 2008 13:08:05 -0000 1.113 --- English.msg 17 Apr 2008 15:49:57 -0000 1.114 *************** *** 202,209 **** Advanced_RemoveWord Remove word Advanced_AllParameters Global POPFile Parameters Advanced_Parameter Parameter Advanced_Value Value - Advanced_Warning This is the complete list of POPFile parameters. Advanced users only: you may change any and click Update; there is no validity checking. Items shown in bold have been changed from the default setting. See <a href="http://getpopfile.org/docs/OptionReference">OptionReference</a> for more information on options. Advanced_ConfigFile Configuration file: Users_Create Create New User --- 202,212 ---- Advanced_RemoveWord Remove word Advanced_AllParameters Global POPFile Parameters + Advanced_AllParametersNotes This is the complete list of POPFile parameters. Advanced_Parameter Parameter Advanced_Value Value Advanced_ConfigFile Configuration file: + Advanced_Warning Advanced users only: you may change any and click Update; there is no validity checking. Items shown in bold have been changed from the default setting. See <a href="http://getpopfile.org/docs/OptionReference">OptionReference</a> for more information on options. + Advanced_SingleUserModeParameters Single User Mode Parameters + Advanced_SingleUserModeParametersNotes This is the complete list of Single User Mode parameters. Users_Create Create New User |
From: naoki i. <am...@us...> - 2008-04-17 15:13:31
|
Update of /cvsroot/popfile/engine/Classifier In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv6287/Classifier Modified Files: Bayes.pm Log Message: Change Log 1. The session keys are now released when they are expired 2. New global parameter 'GLOBAL_session_timeout' (default : 1800 seconds) 3. Replaced get_administrator_session_key with get_single_user_session_key Classifier/Bayes.pm UI/HTML.pm POPFile/History.pm POPFile/Configuration.pm tests/TestConfiguration.tst The session keys which does not used in GLOBAL_session_timeout seconds will be released. NOTE : The session key for the administrator which got from get_administrator_session_key won't be expired. For this reason, please use get_single_user_session_key instead of get_administrator_session_key in the single user mode. NOTE : The 'last used time' is updated when valid_session_key__ is called with the session key. 4. Added 'Single User Mode Parameters' section in the Advanced tab UI/HTML.pm skins/default/advanced-page.thtml languages/English.msg languages/Nihongo.msg All POPFile parameters now can be changed in the single user mode. 'Single User Mode Parameters' section has been added below the 'Global POPFile Parameters' section. 5. Updated translation file languages/Nihongo.msg 6. The session cache is purged when the session key is released 7. The query is stopped when the session key is released UI/HTML.pm 8. Added escape_html_() function in HTTP.pm UI/HTTP.pm UI/HTML.pm tests/TestHTML.script This function is used for escaping ", <, >, &, ' characters. They are converted to ", <, >, & and ' 9. The matched header is showed/emphasized if the magnets are used UI/HTML.pm POPFile/History.pm Classifier/Bayes.pm tests/TestHTML.script The magnet icon's "title" will be like 'From:te...@ex...' in the history tab. The header information will be showed/emphasized in the single message view. 10. Minor fixes of the skins skins/default/common-bottom.thtml skins/default/users-page.thtml skins/default/administration-page.thtml skins/default/pop3-chain-panel.thtml skins/default/pop3-configuration-panel.thtml skins/default/socks-widget.thtml skins/default/nntp-configuration.thtml skins/default/smtp-configuration.thtml skins/default/windows-configuration.thtml Proxy/POP3.pm Proxy/NNTP.pm Proxy/SMTP.pm Platform/MSWin32.pm tests/TestPOP3.tst tests/TestHTML.tst Current state of the test suite: TestBayesScript PASS TestBayes PASS TestConfiguration PASS * TestHistory PASS TestHTML PASS * TestHTTP PASS TestIMAP PASS TestInsertScript PASS * TestLogger PASS TestMailParse PASS TestModule PASS TestMQ PASS TestMutex PASS TestPipeScript PASS TestPOP3 PASS TestProxy PASS TestWordMangle PASS TestXMLRPC PASS * : TODO : needs to add tests for multi user support Index: Bayes.pm =================================================================== RCS file: /cvsroot/popfile/engine/Classifier/Bayes.pm,v retrieving revision 1.366 retrieving revision 1.367 diff -C2 -d -r1.366 -r1.367 *** Bayes.pm 16 Apr 2008 13:08:04 -0000 1.366 --- Bayes.pm 17 Apr 2008 15:13:04 -0000 1.367 *************** *** 271,275 **** if ( $type eq 'CREAT' ) { my ( $session, $user ) = ( $message[0], $message[1] ); ! $self->{api_sessions__}{$session} = $user; $self->db_update_cache__( $session ); $self->log_( 1, "CREAT message on $session for $user" ); --- 271,276 ---- if ( $type eq 'CREAT' ) { my ( $session, $user ) = ( $message[0], $message[1] ); ! $self->{api_sessions__}{$session}{userid} = $user; ! $self->{api_sessions__}{$session}{lastused} = time; $self->db_update_cache__( $session ); $self->log_( 1, "CREAT message on $session for $user" ); *************** *** 314,318 **** $self->upgrade_predatabase_data__(); ! $self->upgrade_v1_data__(); # Since Text::Kakasi is not thread-safe, we use it under the --- 315,319 ---- $self->upgrade_predatabase_data__(); ! $self->upgrade_v1_parameters__(); # Since Text::Kakasi is not thread-safe, we use it under the *************** *** 372,375 **** --- 373,394 ---- #---------------------------------------------------------------------------- # + # service + # + # service() is a called periodically to give the module a chance to do + # housekeeping work. + # + # + #---------------------------------------------------------------------------- + sub service + { + my ( $self ) = @_; + + $self->release_expired_sessions__(); + + return 1; + } + + #---------------------------------------------------------------------------- + # # forked # *************** *** 473,479 **** --- 492,501 ---- #---------------------------------------------------------------------------- + # # cleanup_orphan_words__ + # # Removes Words from (words) no longer associated with a bucket # Called when the TICKD message is received each hour. + # #---------------------------------------------------------------------------- sub cleanup_orphan_words__ *************** *** 736,750 **** where bucket_template.id = ?;' ); # PROFILE BLOCK STOP ! $self->{db_get_user_parameter__} = $self->db_()->prepare( # PROFILE BLOCK START 'select user_params.val from user_params where user_params.userid = ? and ! user_params.utid = ?;' ); # PROFILE BLOCK STOP ! $self->{db_set_user_parameter__} = $self->db_()->prepare( # PROFILE BLOCK START ! 'replace into user_params ( userid, utid, val ) values ( ?, ?, ? );' ); # PROFILE BLOCK STOP ! $self->{db_get_user_parameter_default__} = $self->db_()->prepare( # PROFILE BLOCK START 'select user_template.def from user_template ! where user_template.id = ?;' ); # PROFILE BLOCK STOP $self->{db_get_buckets_with_magnets__} = $self->db_()->prepare( # PROFILE BLOCK START --- 758,772 ---- where bucket_template.id = ?;' ); # PROFILE BLOCK STOP ! $self->{db_get_user_parameter__} = $self->db_()->prepare( # PROFILE BLOCK START 'select user_params.val from user_params where user_params.userid = ? and ! user_params.utid = ?;' ); # PROFILE BLOCK STOP ! $self->{db_set_user_parameter__} = $self->db_()->prepare( # PROFILE BLOCK START ! 'replace into user_params ( userid, utid, val ) values ( ?, ?, ? );' ); # PROFILE BLOCK STOP ! $self->{db_get_user_parameter_default__} = $self->db_()->prepare( # PROFILE BLOCK START 'select user_template.def from user_template ! where user_template.id = ?;' ); # PROFILE BLOCK STOP $self->{db_get_buckets_with_magnets__} = $self->db_()->prepare( # PROFILE BLOCK START *************** *** 957,963 **** # There's an assumption here that this is the single user version # of POPFile and hence what we do is cheat and get a session key ! # assuming that the user name is admin with password '' ! my $session = $self->get_administrator_session_key(); if ( !defined( $session ) ) { --- 979,985 ---- # There's an assumption here that this is the single user version # of POPFile and hence what we do is cheat and get a session key ! # for the single user mode ! my $session = $self->get_single_user_session_key(); if ( !defined( $session ) ) { *************** *** 1196,1205 **** #---------------------------------------------------------------------------- # ! # upgrade_v1_data__ # # If the deprecated parameters found, upgrades them to the SQL database. # #---------------------------------------------------------------------------- ! sub upgrade_v1_data__ { my ( $self ) = @_; --- 1218,1227 ---- #---------------------------------------------------------------------------- # ! # upgrade_v1_parameters__ # # If the deprecated parameters found, upgrades them to the SQL database. # #---------------------------------------------------------------------------- ! sub upgrade_v1_parameters__ { my ( $self ) = @_; *************** *** 1576,1580 **** if ( defined( $self->{api_sessions__}{$session} ) ) { ! $self->log_( 1, "release_session_key releasing key $session for user $self->{api_sessions__}{$session}" ); delete $self->{api_sessions__}{$session}; } --- 1598,1602 ---- if ( defined( $self->{api_sessions__}{$session} ) ) { ! $self->log_( 1, "release_session_key releasing key $session for user $self->{api_sessions__}{$session}{userid}" ); delete $self->{api_sessions__}{$session}; } *************** *** 1608,1614 **** $self->log_( 0, "Invalid session key $session provided in $package @ $line" ); select( undef, undef, undef, 1 ); } ! return $self->{api_sessions__}{$session}; } --- 1630,1666 ---- $self->log_( 0, "Invalid session key $session provided in $package @ $line" ); select( undef, undef, undef, 1 ); + + return undef; } ! # Update the last access time ! ! $self->{api_sessions__}{$session}{lastused} = time; ! ! return $self->{api_sessions__}{$session}{userid}; ! } ! ! #---------------------------------------------------------------------------- ! # ! # release_expired_sessions__ ! # ! # Releases the expired session keys ! # Called when the TICKD message is received each hour. ! # ! #---------------------------------------------------------------------------- ! sub release_expired_sessions__ ! { ! my ( $self ) = @_; ! ! my $timeout = time - $self->global_config_( 'session_timeout' ); ! ! foreach my $session ( keys %{$self->{api_sessions__}} ) { ! next if ( defined( $self->{api_sessions__}{$session}{notexpired} ) ); ! ! if ( $self->{api_sessions__}{$session}{lastused} < $timeout ) { ! $self->log_( 1, "Session key $session will be expired due to a timeout" ); ! $self->release_session_key( $session ); ! } ! } } *************** *** 1668,1676 **** my $session = $self->generate_unique_session_key__(); ! $self->{api_sessions__}{$session} = $result->[0]; $self->db_update_cache__( $session ); ! $self->log_( 1, "get_session_key returning key $session for user $self->{api_sessions__}{$session}" ); return $session; --- 1720,1729 ---- my $session = $self->generate_unique_session_key__(); ! $self->{api_sessions__}{$session}{userid} = $result->[0]; ! $self->{api_sessions__}{$session}{lastused} = time; $self->db_update_cache__( $session ); ! $self->log_( 1, "get_session_key returning key $session for user $self->{api_sessions__}{$session}{userid}" ); return $session; *************** *** 1747,1751 **** my $session = $self->generate_unique_session_key__(); ! $self->{api_sessions__}{$session} = 1; $self->db_update_cache__( $session ); $self->log_( 1, "get_administrator_session_key returning key $session" ); --- 1800,1806 ---- my $session = $self->generate_unique_session_key__(); ! $self->{api_sessions__}{$session}{userid} = 1; ! $self->{api_sessions__}{$session}{lastused} = time; ! $self->{api_sessions__}{$session}{notexpired} = 1; # does not be expired $self->db_update_cache__( $session ); $self->log_( 1, "get_administrator_session_key returning key $session" ); *************** *** 1768,1772 **** 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_single_user_session_key returning key $single_user_session for the single user mode" ); --- 1823,1828 ---- my $single_user_session = $self->generate_unique_session_key__(); ! $self->{api_sessions__}{$single_user_session}{userid} = 1; ! $self->{api_sessions__}{$single_user_session}{lastused} = time; $self->db_update_cache__( $single_user_session ); $self->log_( 1, "get_single_user_session_key returning key $single_user_session for the single user mode" ); *************** *** 1868,1872 **** my $user_session = $self->generate_unique_session_key__(); ! $self->{api_sessions__}{$user_session} = $user; $self->db_update_cache__( $user_session ); $self->log_( 1, "get_session_key_from_token returning key $user_session for user $user" ); --- 1924,1929 ---- my $user_session = $self->generate_unique_session_key__(); ! $self->{api_sessions__}{$user_session}{userid} = $user; ! $self->{api_sessions__}{$user_session}{lastused} = time; $self->db_update_cache__( $user_session ); $self->log_( 1, "get_session_key_from_token returning key $user_session for user $user" ); *************** *** 4758,4761 **** --- 4815,4853 ---- #---------------------------------------------------------------------------- # + # get_magnet_header_and_value + # + # Get the header and value of the magnet + # + # $session A valid session key returned by a call to get_session_key + # $magnetid The ID for the magnet + # + #---------------------------------------------------------------------------- + sub get_magnet_header_and_value + { + my ( $self, $session, $magnetid ) = @_; + + my $userid = $self->valid_session_key__( $session ); + return undef if ( !defined( $userid ) ); + + my $m = $self->db_()->prepare( + "select magnet_types.header, magnets.val from magnet_types, magnets + where magnet_types.id = magnets.mtid and magnets.id = ?;" ); + + $m->execute( $magnetid ); + my $result = $m->fetchrow_arrayref; + $m->finish; + + if ( defined( $result ) ) { + my $header = $result->[0]; + my $value = $result->[1]; + + return ( $header, $value ); + } + + return undef; + } + + #---------------------------------------------------------------------------- + # # get_stopword_list # |
From: naoki i. <am...@us...> - 2008-04-17 15:13:12
|
Update of /cvsroot/popfile/engine/skins/default In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv6287/skins/default Modified Files: administration-page.thtml advanced-page.thtml common-bottom.thtml nntp-configuration.thtml pop3-chain-panel.thtml pop3-configuration-panel.thtml smtp-configuration.thtml socks-widget.thtml users-page.thtml windows-configuration.thtml Log Message: Change Log 1. The session keys are now released when they are expired 2. New global parameter 'GLOBAL_session_timeout' (default : 1800 seconds) 3. Replaced get_administrator_session_key with get_single_user_session_key Classifier/Bayes.pm UI/HTML.pm POPFile/History.pm POPFile/Configuration.pm tests/TestConfiguration.tst The session keys which does not used in GLOBAL_session_timeout seconds will be released. NOTE : The session key for the administrator which got from get_administrator_session_key won't be expired. For this reason, please use get_single_user_session_key instead of get_administrator_session_key in the single user mode. NOTE : The 'last used time' is updated when valid_session_key__ is called with the session key. 4. Added 'Single User Mode Parameters' section in the Advanced tab UI/HTML.pm skins/default/advanced-page.thtml languages/English.msg languages/Nihongo.msg All POPFile parameters now can be changed in the single user mode. 'Single User Mode Parameters' section has been added below the 'Global POPFile Parameters' section. 5. Updated translation file languages/Nihongo.msg 6. The session cache is purged when the session key is released 7. The query is stopped when the session key is released UI/HTML.pm 8. Added escape_html_() function in HTTP.pm UI/HTTP.pm UI/HTML.pm tests/TestHTML.script This function is used for escaping ", <, >, &, ' characters. They are converted to ", <, >, & and ' 9. The matched header is showed/emphasized if the magnets are used UI/HTML.pm POPFile/History.pm Classifier/Bayes.pm tests/TestHTML.script The magnet icon's "title" will be like 'From:te...@ex...' in the history tab. The header information will be showed/emphasized in the single message view. 10. Minor fixes of the skins skins/default/common-bottom.thtml skins/default/users-page.thtml skins/default/administration-page.thtml skins/default/pop3-chain-panel.thtml skins/default/pop3-configuration-panel.thtml skins/default/socks-widget.thtml skins/default/nntp-configuration.thtml skins/default/smtp-configuration.thtml skins/default/windows-configuration.thtml Proxy/POP3.pm Proxy/NNTP.pm Proxy/SMTP.pm Platform/MSWin32.pm tests/TestPOP3.tst tests/TestHTML.tst Current state of the test suite: TestBayesScript PASS TestBayes PASS TestConfiguration PASS * TestHistory PASS TestHTML PASS * TestHTTP PASS TestIMAP PASS TestInsertScript PASS * TestLogger PASS TestMailParse PASS TestModule PASS TestMQ PASS TestMutex PASS TestPipeScript PASS TestPOP3 PASS TestProxy PASS TestWordMangle PASS TestXMLRPC PASS * : TODO : needs to add tests for multi user support Index: pop3-configuration-panel.thtml =================================================================== RCS file: /cvsroot/popfile/engine/skins/default/pop3-configuration-panel.thtml,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -d -r1.11 -r1.12 *** pop3-configuration-panel.thtml 30 Mar 2008 05:33:58 -0000 1.11 --- pop3-configuration-panel.thtml 17 Apr 2008 15:13:05 -0000 1.12 *************** *** 5,52 **** <br /> <input name="pop3_port" type="text" id="configPopPort" value="<TMPL_VAR NAME="POP3_Configuration_Port">" /> ! <input type="submit" class="submit" name="update_pop3_port" value="<TMPL_VAR NAME="Localize_Apply">" /> ! </form> - <form action="<TMPL_VAR NAME="Configuration_Action">" method="post"> <label class="configurationLabel" for="configPopSeparator"> <TMPL_VAR NAME="Localize_Configuration_POP3Separator">: </label> <br /> ! <input name="pop3_separator" id="configPopSeparator" type="text" value="<TMPL_VAR NAME="POP3_Configuration_Separator">" /> ! <input type="submit" class="submit" name="update_pop3_separator" value="<TMPL_VAR NAME="Localize_Apply">" /> ! </form> ! ! <label class="configurationLabel" for="pop3forceFork"> ! <TMPL_VAR NAME="Localize_Configuration_POPFork">: ! </label> ! <br /> ! <table border="0" cellpadding="0" cellspacing="0" summary=""> ! <tr> ! <td nowrap="nowrap"> ! ! <TMPL_IF NAME="POP3_Configuration_If_Force_Fork"> ! ! <form action="<TMPL_VAR NAME="Configuration_Action">" method="post"> ! <span class="securityWidgetStateOff"> ! <TMPL_VAR NAME="Localize_No"> ! </span> ! <input type="submit" class="submit toggleOn" id="pop3forceFork" name="toggle" value="<TMPL_VAR NAME="Localize_ChangeToYes">" /> ! <input type="hidden" name="pop3_force_fork" value="1" /> ! </form> ! ! <TMPL_ELSE> ! ! <form action="<TMPL_VAR NAME="Configuration_Action">" method="post"> ! <span class="securityWidgetStateOn"> ! <TMPL_VAR NAME="Localize_Yes"> ! </span> ! <input type="submit" class="submit toggleOff" id="pop3forceFork" name="toggle" value="<TMPL_VAR NAME="Localize_ChangeToNo">" /> ! <input type="hidden" name="pop3_force_fork" value="0" /> ! </form> ! </TMPL_IF> ! </td> ! </tr> ! </table> <br /> --- 5,24 ---- <br /> <input name="pop3_port" type="text" id="configPopPort" value="<TMPL_VAR NAME="POP3_Configuration_Port">" /> ! <br /> <label class="configurationLabel" for="configPopSeparator"> <TMPL_VAR NAME="Localize_Configuration_POP3Separator">: </label> <br /> ! <input name="pop3_separator" id="configPopSeparator" type="text" value="<TMPL_VAR NAME="POP3_Configuration_Separator">" maxlength="1" /> ! <br /> ! <input name="pop3_force_fork" id="pop3forceFork" type="checkbox" value="1" <TMPL_IF NAME="POP3_Configuration_If_Force_Fork">checked</TMPL_IF> /> ! <label class="configurationLabel" for="pop3forceFork"> ! <TMPL_VAR NAME="Localize_Configuration_POPFork"> ! </label> ! <br /><br /> ! <input type="submit" class="submit" name="update_pop3_configuration" value="<TMPL_VAR NAME="Localize_Apply">" /> ! </form> <br /> Index: socks-widget.thtml =================================================================== RCS file: /cvsroot/popfile/engine/skins/default/socks-widget.thtml,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** socks-widget.thtml 22 May 2005 11:13:50 -0000 1.8 --- socks-widget.thtml 17 Apr 2008 15:13:05 -0000 1.9 *************** *** 5,12 **** <br /> <input type="text" name="<TMPL_VAR NAME="Socks_Widget_Name">_socks_server" id="<TMPL_VAR NAME="Socks_Widget_Name">SOCKSServer" value="<TMPL_VAR NAME="Socks_Server">" /> ! <input type="submit" class="submit" name="update_<TMPL_VAR NAME="Socks_Widget_Name">_socks_server" value="<TMPL_VAR NAME="Localize_Apply">" /> ! </form> ! ! <form action="<TMPL_VAR NAME="Configuration_Action">" method="post"> <label class="configurationLabel" for="<TMPL_VAR NAME="Socks_Widget_Name">configSOCKSPort"> <TMPL_VAR NAME="Localize_Configuration_SOCKSPort">: --- 5,9 ---- <br /> <input type="text" name="<TMPL_VAR NAME="Socks_Widget_Name">_socks_server" id="<TMPL_VAR NAME="Socks_Widget_Name">SOCKSServer" value="<TMPL_VAR NAME="Socks_Server">" /> ! <br /> <label class="configurationLabel" for="<TMPL_VAR NAME="Socks_Widget_Name">configSOCKSPort"> <TMPL_VAR NAME="Localize_Configuration_SOCKSPort">: *************** *** 14,17 **** --- 11,16 ---- <br /> <input name="<TMPL_VAR NAME="Socks_Widget_Name">_socks_port" type="text" id="<TMPL_VAR NAME="Socks_Widget_Name">configSOCKSPort" value="<TMPL_VAR NAME="Socks_Port">" /> + + <br /><br /> <input type="submit" class="submit" name="update_<TMPL_VAR NAME="Socks_Widget_Name">_socks_port" value="<TMPL_VAR NAME="Localize_Apply">" /> </form> Index: nntp-configuration.thtml =================================================================== RCS file: /cvsroot/popfile/engine/skins/default/nntp-configuration.thtml,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** nntp-configuration.thtml 30 Mar 2008 05:33:58 -0000 1.2 --- nntp-configuration.thtml 17 Apr 2008 15:13:05 -0000 1.3 *************** *** 1,3 **** ! <form action="/administration" method="post"> <label class="configurationLabel" for="configNNTPPort"> <TMPL_VAR NAME="Localize_Configuration_NNTPPort">: --- 1,3 ---- ! <form action="<TMPL_VAR NAME="Configuration_Action">" method="post"> <label class="configurationLabel" for="configNNTPPort"> <TMPL_VAR NAME="Localize_Configuration_NNTPPort">: *************** *** 5,50 **** <br /> <input name="nntp_port" type="text" id="configNNTPPort" value="<TMPL_VAR NAME="nntp_port">" /> ! <input type="submit" class="submit" name="update_nntp_port" value="<TMPL_VAR NAME="Localize_Apply">" /> ! </form> - <form action="<TMPL_VAR NAME="Configuration_Action">" method="post"> <label class="configurationLabel" for="configNntpSeparator"> <TMPL_VAR NAME="Localize_Configuration_NNTPSeparator">: </label> <br /> ! <input name="nntp_separator" id="configNntpSeparator" type="text" value="<TMPL_VAR NAME="nntp_separator">" /> ! <input type="submit" class="submit" name="update_nntp_separator" value="<TMPL_VAR NAME="Localize_Apply">" /> ! </form> ! ! <label class="configurationLabel" for="nntpForceFork"> ! <TMPL_VAR NAME="Localize_Configuration_NNTPFork">: ! </label> ! <br /> ! <table border="0" cellpadding="0" cellspacing="0" summary=""> ! <tr> ! <td nowrap="nowrap"> ! <form action="<TMPL_VAR NAME="Configuration_Action">" method="post"> ! ! <TMPL_IF NAME="nntp_force_fork_on"> ! ! <span class="securityWidgetStateOn"> ! <TMPL_VAR NAME="Localize_Yes"> ! </span> ! <input type="submit" class="toggleOff" id="nntpForceFork" name="toggle" value="<TMPL_VAR NAME="Localize_ChangeToNo">" /> ! <input type="hidden" name="nntp_force_fork" value="0" /> ! ! <TMPL_ELSE> ! ! <span class="securityWidgetStateOff"> ! <TMPL_VAR NAME="Localize_No"> ! </span> ! <input type="submit" class="toggleOn" id="nntpForceFork" name="toggle" value="<TMPL_VAR NAME="Localize_ChangeToYes">" /> ! <input type="hidden" name="nntp_force_fork" value="1" /> ! </TMPL_IF> ! </form> ! </td> ! </tr> ! </table> <br /> --- 5,24 ---- <br /> <input name="nntp_port" type="text" id="configNNTPPort" value="<TMPL_VAR NAME="nntp_port">" /> ! <br /> <label class="configurationLabel" for="configNntpSeparator"> <TMPL_VAR NAME="Localize_Configuration_NNTPSeparator">: </label> <br /> ! <input name="nntp_separator" id="configNntpSeparator" type="text" value="<TMPL_VAR NAME="nntp_separator">" maxlength="1" /> ! <br /> ! <input name="nntp_force_fork" id="nntpForceFork" type="checkbox" value="1" <TMPL_IF NAME="nntp_force_fork_on">checked</TMPL_IF> /> ! <label class="configurationLabel" for="nntpForceFork"> ! <TMPL_VAR NAME="Localize_Configuration_NNTPFork"> ! </label> ! <br /><br /> ! <input type="submit" class="submit" name="update_nntp_configuration" value="<TMPL_VAR NAME="Localize_Apply">" /> ! </form> <br /> Index: users-page.thtml =================================================================== RCS file: /cvsroot/popfile/engine/skins/default/users-page.thtml,v retrieving revision 1.13 retrieving revision 1.14 diff -C2 -d -r1.13 -r1.14 *** users-page.thtml 16 Apr 2008 13:08:05 -0000 1.13 --- users-page.thtml 17 Apr 2008 15:13:05 -0000 1.14 *************** *** 206,214 **** </td> <td> - <TMPL_IF NAME="Users_If_Password"> - <input type="password" name="parameter_<TMPL_VAR NAME="Users_Parameter">" value="<TMPL_VAR NAME="Users_Value">"> - <TMPL_ELSE> <input type="text" name="parameter_<TMPL_VAR NAME="Users_Parameter">" value="<TMPL_VAR NAME="Users_Value">"> - </TMPL_IF> </td> </tr> --- 206,210 ---- Index: pop3-chain-panel.thtml =================================================================== RCS file: /cvsroot/popfile/engine/skins/default/pop3-chain-panel.thtml,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -d -r1.10 -r1.11 *** pop3-chain-panel.thtml 13 Apr 2008 03:08:09 -0000 1.10 --- pop3-chain-panel.thtml 17 Apr 2008 15:13:05 -0000 1.11 *************** *** 14,24 **** <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 --- 14,23 ---- <br /> ! <input type="checkbox" name="sssl" id="securitySecurePOP3SSL" value="1" <TMPL_IF NAME="POP3_Chain_Secure_SSL">checked</TMPL_IF> /> ! <label class="securityLabel" for="securitySecurePOP3SSL"> <TMPL_VAR NAME="Localize_Security_SecureServerUseSSL"> </label> + <br /><br /> <input type="submit" class="submit" name="update_server" value="<TMPL_VAR NAME="Localize_Apply">" /> </form> \ No newline at end of file Index: advanced-page.thtml =================================================================== RCS file: /cvsroot/popfile/engine/skins/default/advanced-page.thtml,v retrieving revision 1.17 retrieving revision 1.18 diff -C2 -d -r1.17 -r1.18 *** advanced-page.thtml 30 Mar 2008 10:22:38 -0000 1.17 --- advanced-page.thtml 17 Apr 2008 15:13:05 -0000 1.18 *************** *** 43,47 **** <td class="settingsPanel" width="50%" valign="top"> <h2 class="advanced"><TMPL_VAR NAME="Localize_Advanced_AllParameters"></h2> ! <p><TMPL_VAR NAME="Localize_Advanced_Warning"> <p><TMPL_VAR NAME="Localize_Advanced_ConfigFile"> <TMPL_VAR NAME="Advanced_POPFILE_CFG"> --- 43,48 ---- <td class="settingsPanel" width="50%" valign="top"> <h2 class="advanced"><TMPL_VAR NAME="Localize_Advanced_AllParameters"></h2> ! <p><TMPL_VAR NAME="Localize_Advanced_AllParametersNotes"><br /> ! <TMPL_VAR NAME="Localize_Advanced_Warning"> <p><TMPL_VAR NAME="Localize_Advanced_ConfigFile"> <TMPL_VAR NAME="Advanced_POPFILE_CFG"> *************** *** 93,96 **** --- 94,143 ---- <input type="submit" class="submit" value="<TMPL_VAR NAME="Localize_Update">" name="update_params"> </form> + + <TMPL_IF NAME="Advanced_If_SingleUser"> + <hr /> + <h2 class="advanced"><TMPL_VAR NAME="Localize_Advanced_SingleUserModeParameters"></h2> + <p><TMPL_VAR NAME="Localize_Advanced_SingleUserModeParametersNotes"><br /> + <TMPL_VAR NAME="Localize_Advanced_Warning"> + + <form action="/advanced" method="post"> + <table width="100%"> + <tr> + <th width="50%" align="left"><TMPL_VAR NAME="Localize_Advanced_Parameter"></th> + <th width="50%" align="left"><TMPL_VAR NAME="Localize_Advanced_Value"></th> + </tr> + <TMPL_LOOP NAME="Users_Loop_Parameter"> + + <TMPL_IF NAME="Users_If_New_Module"> + + <tr> + <td colspan="2"> + <hr /> + </td> + </tr> + + </TMPL_IF> + + <tr> + <td> + <TMPL_IF NAME="Users_If_Changed"> + <b> + </TMPL_IF> + <TMPL_VAR NAME="Users_Parameter"> + <TMPL_IF NAME="Users_If_Changed"> + </b> + </TMPL_IF> + </td> + <td> + <input type="text" name="parameter_<TMPL_VAR NAME="Users_Parameter">" value="<TMPL_VAR NAME="Users_Value">"> + </td> + </tr> + + </TMPL_LOOP> + </table> + <br /> + <input type="submit" class="submit" value="<TMPL_VAR NAME="Localize_Update">" name="update_single_user_params"> + </form> + </TMPL_IF> </td> </tr> Index: smtp-configuration.thtml =================================================================== RCS file: /cvsroot/popfile/engine/skins/default/smtp-configuration.thtml,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** smtp-configuration.thtml 30 Mar 2008 05:33:58 -0000 1.8 --- smtp-configuration.thtml 17 Apr 2008 15:13:05 -0000 1.9 *************** *** 1,45 **** ! <label class="configurationLabel" for="configSMTPPort"> ! <TMPL_VAR NAME="Localize_Configuration_SMTPPort">: ! </label> ! <table border="0" cellpadding="0" cellspacing="0" summary=""> ! <tr> ! <td> ! <form action="<TMPL_VAR NAME="Configuration_Action">" method="post"> ! <input name="smtp_port" type="text" id="configSMTPPort" value="<TMPL_VAR NAME="smtp_port">" /> ! <input type="submit" class="submit" name="update_smtp_port" value="<TMPL_VAR NAME="Localize_Apply">" /> ! </form> ! </td> ! </tr> ! </table> ! ! <label class="configurationLabel" for="smtpForceFork"> ! <TMPL_VAR NAME="Localize_Configuration_SMTPFork">: ! </label> ! <br /> ! <table border="0" cellpadding="0" cellspacing="0" summary=""> ! <tr> ! <td nowrap="nowrap"> ! <form action="<TMPL_VAR NAME="Configuration_Action">" method="post"> ! <TMPL_IF NAME="smtp_force_fork_on"> ! ! <span class="securityWidgetStateOn"> ! <TMPL_VAR NAME="Localize_Yes"> ! </span> ! <input type="submit" class="toggleOff" id="smtpForceFork" name="toggle" value="<TMPL_VAR NAME="Localize_ChangeToNo">" /> ! <input type="hidden" name="smtp_force_fork" value="0" /> ! ! <TMPL_ELSE> ! ! <span class="securityWidgetStateOff"> ! <TMPL_VAR NAME="Localize_No"> ! </span> ! <input type="submit" class="toggleOn" id="smtpForceFork" name="toggle" value="<TMPL_VAR NAME="Localize_ChangeToYes">" /> ! <input type="hidden" name="smtp_force_fork" value="1" /> ! </TMPL_IF> ! </form> ! </td> ! </tr> ! </table> <br /> --- 1,17 ---- ! <form action="<TMPL_VAR NAME="Configuration_Action">" method="post"> ! <label class="configurationLabel" for="configSMTPPort"> ! <TMPL_VAR NAME="Localize_Configuration_SMTPPort">: ! </label> ! <br /> ! <input name="smtp_port" type="text" id="configSMTPPort" value="<TMPL_VAR NAME="smtp_port">" /> ! <br /> ! <input name="smtp_force_fork" id="smtpForceFork" type="checkbox" value="1" <TMPL_IF NAME="smtp_force_fork_on">checked</TMPL_IF> /> ! <label class="configurationLabel" for="smtpForceFork"> ! <TMPL_VAR NAME="Localize_Configuration_SMTPFork"> ! </label> ! <br /><br /> ! <input type="submit" class="submit" name="update_smtp_configuration" value="<TMPL_VAR NAME="Localize_Apply">" /> ! </form> <br /> Index: common-bottom.thtml =================================================================== RCS file: /cvsroot/popfile/engine/skins/default/common-bottom.thtml,v retrieving revision 1.16 retrieving revision 1.17 diff -C2 -d -r1.16 -r1.17 *** common-bottom.thtml 27 Jan 2008 04:55:21 -0000 1.16 --- common-bottom.thtml 17 Apr 2008 15:13:05 -0000 1.17 *************** *** 17,23 **** <TMPL_VAR NAME="Localize_Footer_HomePage"></a> <br /> - <a class="bottomLink" href="http://getpopfile.org/manual/<TMPL_VAR NAME="Localize_ManualLanguage">/manual.html" title="<TMPL_VAR NAME="Localize_tip_Footer_Manual">"> - <TMPL_VAR NAME="Localize_Footer_Manual"></a> - <br /> <a class="bottomLink" href="http://getpopfile.org/wiki/<TMPL_VAR NAME="Localize_WikiLink">" title="<TMPL_VAR NAME="Localize_tip_Footer_Wiki">"> <TMPL_VAR NAME="Localize_Footer_Wiki"></a> --- 17,20 ---- Index: windows-configuration.thtml =================================================================== RCS file: /cvsroot/popfile/engine/skins/default/windows-configuration.thtml,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** windows-configuration.thtml 2 Mar 2006 11:17:00 -0000 1.7 --- windows-configuration.thtml 17 Apr 2008 15:13:05 -0000 1.8 *************** *** 1,9 **** ! <input id="windows_console" type="checkbox" name="toggle" <TMPL_IF NAME="windows_console_on">checked</TMPL_IF> /> ! <label for="windows_console" class="administrationLabel"> ! <TMPL_VAR NAME="Localize_Windows_Console"> ! </label> ! <br /> ! <input id="windows_trayicon" type="checkbox" name="toggle" <TMPL_IF NAME="windows_icon_on">checked</TMPL_IF> /> ! <label for="windows_trayicon" class="administrationLabel"> ! <TMPL_VAR NAME="Localize_Windows_TrayIcon"> ! </label> --- 1,14 ---- ! <form action="<TMPL_VAR NAME="Configuration_Action">" method="post"> ! <input id="windows_console" type="checkbox" name="windows_console" <TMPL_IF NAME="windows_console_on">checked</TMPL_IF> /> ! <label for="windows_console" class="administrationLabel"> ! <TMPL_VAR NAME="Localize_Windows_Console"> ! </label> ! <br /> ! <input id="windows_trayicon" type="checkbox" name="windows_trayicon" <TMPL_IF NAME="windows_icon_on">checked</TMPL_IF> /> ! <label for="windows_trayicon" class="administrationLabel"> ! <TMPL_VAR NAME="Localize_Windows_TrayIcon"> ! </label> ! ! <br /><br /> ! <input type="submit" class="submit" name="update_windows_configuration" value="<TMPL_VAR NAME="Localize_Apply">" /> ! </form> Index: administration-page.thtml =================================================================== RCS file: /cvsroot/popfile/engine/skins/default/administration-page.thtml,v retrieving revision 1.15 retrieving revision 1.16 diff -C2 -d -r1.15 -r1.16 *** administration-page.thtml 30 Mar 2008 10:22:38 -0000 1.15 --- administration-page.thtml 17 Apr 2008 15:13:05 -0000 1.16 *************** *** 25,28 **** --- 25,29 ---- </label> <br /> + <br /> <input type="radio" name="servermode" id="StealthMode" value="StealthMode" onClick="serverMode(false)" <TMPL_IF NAME="Security_If_Local">checked="checked"</TMPL_IF> /> <label class="administrationLabel" for="StealthMode"> |
From: naoki i. <am...@us...> - 2008-04-17 15:13:11
|
Update of /cvsroot/popfile/engine/Proxy In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv6287/Proxy Modified Files: NNTP.pm POP3.pm SMTP.pm Log Message: Change Log 1. The session keys are now released when they are expired 2. New global parameter 'GLOBAL_session_timeout' (default : 1800 seconds) 3. Replaced get_administrator_session_key with get_single_user_session_key Classifier/Bayes.pm UI/HTML.pm POPFile/History.pm POPFile/Configuration.pm tests/TestConfiguration.tst The session keys which does not used in GLOBAL_session_timeout seconds will be released. NOTE : The session key for the administrator which got from get_administrator_session_key won't be expired. For this reason, please use get_single_user_session_key instead of get_administrator_session_key in the single user mode. NOTE : The 'last used time' is updated when valid_session_key__ is called with the session key. 4. Added 'Single User Mode Parameters' section in the Advanced tab UI/HTML.pm skins/default/advanced-page.thtml languages/English.msg languages/Nihongo.msg All POPFile parameters now can be changed in the single user mode. 'Single User Mode Parameters' section has been added below the 'Global POPFile Parameters' section. 5. Updated translation file languages/Nihongo.msg 6. The session cache is purged when the session key is released 7. The query is stopped when the session key is released UI/HTML.pm 8. Added escape_html_() function in HTTP.pm UI/HTTP.pm UI/HTML.pm tests/TestHTML.script This function is used for escaping ", <, >, &, ' characters. They are converted to ", <, >, & and ' 9. The matched header is showed/emphasized if the magnets are used UI/HTML.pm POPFile/History.pm Classifier/Bayes.pm tests/TestHTML.script The magnet icon's "title" will be like 'From:te...@ex...' in the history tab. The header information will be showed/emphasized in the single message view. 10. Minor fixes of the skins skins/default/common-bottom.thtml skins/default/users-page.thtml skins/default/administration-page.thtml skins/default/pop3-chain-panel.thtml skins/default/pop3-configuration-panel.thtml skins/default/socks-widget.thtml skins/default/nntp-configuration.thtml skins/default/smtp-configuration.thtml skins/default/windows-configuration.thtml Proxy/POP3.pm Proxy/NNTP.pm Proxy/SMTP.pm Platform/MSWin32.pm tests/TestPOP3.tst tests/TestHTML.tst Current state of the test suite: TestBayesScript PASS TestBayes PASS TestConfiguration PASS * TestHistory PASS TestHTML PASS * TestHTTP PASS TestIMAP PASS TestInsertScript PASS * TestLogger PASS TestMailParse PASS TestModule PASS TestMQ PASS TestMutex PASS TestPipeScript PASS TestPOP3 PASS TestProxy PASS TestWordMangle PASS TestXMLRPC PASS * : TODO : needs to add tests for multi user support Index: POP3.pm =================================================================== RCS file: /cvsroot/popfile/engine/Proxy/POP3.pm,v retrieving revision 1.119 retrieving revision 1.120 diff -C2 -d -r1.119 -r1.120 *** POP3.pm 6 Apr 2008 08:27:07 -0000 1.119 --- POP3.pm 17 Apr 2008 15:13:05 -0000 1.120 *************** *** 727,731 **** if ( $name eq 'pop3_configuration' ) { ! $templ->param( 'POP3_Configuration_If_Force_Fork' => ( $self->config_( 'force_fork' ) == 0 ) ); $templ->param( 'POP3_Configuration_Port' => $self->config_( 'port' ) ); $templ->param( 'POP3_Configuration_Separator' => $self->config_( 'separator' ) ); --- 727,731 ---- if ( $name eq 'pop3_configuration' ) { ! $templ->param( 'POP3_Configuration_If_Force_Fork' => ( $self->config_( 'force_fork' ) == 1 ) ); $templ->param( 'POP3_Configuration_Port' => $self->config_( 'port' ) ); $templ->param( 'POP3_Configuration_Separator' => $self->config_( 'separator' ) ); *************** *** 737,742 **** if ( $name eq 'pop3_chain' ) { $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 ); --- 737,742 ---- if ( $name eq 'pop3_chain' ) { $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 ); *************** *** 778,782 **** $self->config_( 'separator', $$form{pop3_separator} ); $status_message .= "\n" if ( defined( $status_message ) ); ! $status_message .= sprintf( $$language{Configuration_POP3SepUpdate}, $self->config_( 'separator' ) ) } else { $error_message .= "\n" if ( defined( $error_message ) ); --- 778,782 ---- $self->config_( 'separator', $$form{pop3_separator} ); $status_message .= "\n" if ( defined( $status_message ) ); ! $status_message .= sprintf( $$language{Configuration_POP3SepUpdate}, $self->config_( 'separator' ) ); } else { $error_message .= "\n" if ( defined( $error_message ) ); *************** *** 785,790 **** } ! if ( defined($$form{pop3_force_fork}) ) { ! $self->config_( 'force_fork', $$form{pop3_force_fork} ) if ($$form{pop3_force_fork} eq 1 || $$form{pop3_force_fork} eq 0); } --- 785,794 ---- } ! if ( defined($$form{update_pop3_configuration}) ) { ! if ( $$form{pop3_force_fork} ) { ! $self->config_( 'force_fork', 1 ); ! } else { ! $self->config_( 'force_fork', 0 ); ! } } *************** *** 793,797 **** if ( $name eq 'pop3_security' ) { ! if ( $form->{serveropt_pop3} ) { $self->config_( 'local', 0 ); } --- 797,801 ---- if ( $name eq 'pop3_security' ) { ! if ( $$form{serveropt_pop3} ) { $self->config_( 'local', 0 ); } *************** *** 820,825 **** } ! if ( defined($$form{sssl}) ) { ! if ( $$form{sssl} eq 'UseSSL' ) { $self->config_( 'secure_ssl', 1 ); $status_message .= "\n" if ( defined( $status_message ) ); --- 824,829 ---- } ! if ( defined($$form{update_server}) ) { ! if ( $$form{sssl} ) { $self->config_( 'secure_ssl', 1 ); $status_message .= "\n" if ( defined( $status_message ) ); Index: NNTP.pm =================================================================== RCS file: /cvsroot/popfile/engine/Proxy/NNTP.pm,v retrieving revision 1.43 retrieving revision 1.44 diff -C2 -d -r1.43 -r1.44 *** NNTP.pm 30 Mar 2008 05:33:58 -0000 1.43 --- NNTP.pm 17 Apr 2008 15:13:05 -0000 1.44 *************** *** 420,426 **** if ( $name eq 'nntp_config' ) { ! $templ->param( 'nntp_port' => $self->config_( 'port' ) ); ! $templ->param( 'nntp_separator' => $self->config_( 'separator' ) ); ! $templ->param( 'nntp_force_fork_on' => $self->config_( 'force_fork' ) ); } --- 420,426 ---- if ( $name eq 'nntp_config' ) { ! $templ->param( 'nntp_port' => $self->config_( 'port' ) ); ! $templ->param( 'nntp_separator' => $self->config_( 'separator' ) ); ! $templ->param( 'nntp_force_fork_on' => ( $self->config_( 'force_fork' ) == 1 ) ); } *************** *** 454,458 **** if ( defined $$form{nntp_port} ) { ! if ( ( $$form{nntp_port} >= 1 ) && ( $$form{nntp_port} < 65536 ) ) { $self->config_( 'port', $$form{nntp_port} ); $status = sprintf $$language{Configuration_NNTPUpdate}, $self->config_( 'port' ); --- 454,458 ---- if ( defined $$form{nntp_port} ) { ! if ( ( $$form{nntp_port} =~ /^\d+$/ ) && ( $$form{nntp_port} >= 1 ) && ( $$form{nntp_port} < 65536 ) ) { $self->config_( 'port', $$form{nntp_port} ); $status = sprintf $$language{Configuration_NNTPUpdate}, $self->config_( 'port' ); *************** *** 465,476 **** if ( length($$form{nntp_separator}) == 1 ) { $self->config_( 'separator', $$form{nntp_separator} ); ! $status = sprintf $$language{Configuration_NNTPSepUpdate}, $self->config_( 'separator' ); } else { ! $error = $$language{Configuration_Error1}; } } ! if ( defined $$form{nntp_force_fork} ) { ! $self->config_( 'force_fork', $$form{nntp_force_fork} ); } --- 465,482 ---- if ( length($$form{nntp_separator}) == 1 ) { $self->config_( 'separator', $$form{nntp_separator} ); ! $status .= "\n" if ( defined( $status ) ); ! $status .= sprintf $$language{Configuration_NNTPSepUpdate}, $self->config_( 'separator' ); } else { ! $error .= "\n" if ( defined( $error ) ); ! $error .= $$language{Configuration_Error1}; } } ! if ( defined $$form{update_nntp_configuration} ) { ! if ( $$form{nntp_force_fork} ) { ! $self->config_( 'force_fork', 1 ); ! } else { ! $self->config_( 'force_fork', 0 ); ! } } Index: SMTP.pm =================================================================== RCS file: /cvsroot/popfile/engine/Proxy/SMTP.pm,v retrieving revision 1.44 retrieving revision 1.45 diff -C2 -d -r1.44 -r1.45 *** SMTP.pm 30 Mar 2008 05:33:58 -0000 1.44 --- SMTP.pm 17 Apr 2008 15:13:05 -0000 1.45 *************** *** 340,345 **** if ( $name eq 'smtp_fork_and_port' ) { ! $templ->param( 'smtp_port' => $self->config_( 'port' ) ); ! $templ->param( 'smtp_force_fork_on' => $self->config_( 'force_fork' ) ); } --- 340,345 ---- if ( $name eq 'smtp_fork_and_port' ) { ! $templ->param( 'smtp_port' => $self->config_( 'port' ) ); ! $templ->param( 'smtp_force_fork_on' => ( $self->config_( 'force_fork' ) == 1 ) ); } *************** *** 381,390 **** if ( $name eq 'smtp_fork_and_port' ) { ! if ( defined($$form{smtp_force_fork}) ) { ! $self->config_( 'force_fork', $$form{smtp_force_fork} ); } if ( defined($$form{smtp_port}) ) { ! if ( ( $$form{smtp_port} >= 1 ) && ( $$form{smtp_port} < 65536 ) ) { $self->config_( 'port', $$form{smtp_port} ); $status = sprintf( $$language{Configuration_SMTPUpdate}, $self->config_( 'port' ) ); --- 381,394 ---- if ( $name eq 'smtp_fork_and_port' ) { ! if ( defined($$form{update_smtp_configuration}) ) { ! if ( $$form{smtp_force_fork} ) { ! $self->config_( 'force_fork', 1 ); ! } else { ! $self->config_( 'force_fork', 0 ); ! } } if ( defined($$form{smtp_port}) ) { ! if ( ( $$form{smtp_port} =~ /^\d+$/ ) && ( $$form{smtp_port} >= 1 ) && ( $$form{smtp_port} < 65536 ) ) { $self->config_( 'port', $$form{smtp_port} ); $status = sprintf( $$language{Configuration_SMTPUpdate}, $self->config_( 'port' ) ); |
From: naoki i. <am...@us...> - 2008-04-17 15:13:11
|
Update of /cvsroot/popfile/engine/POPFile In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv6287/POPFile Modified Files: Configuration.pm History.pm Log Message: Change Log 1. The session keys are now released when they are expired 2. New global parameter 'GLOBAL_session_timeout' (default : 1800 seconds) 3. Replaced get_administrator_session_key with get_single_user_session_key Classifier/Bayes.pm UI/HTML.pm POPFile/History.pm POPFile/Configuration.pm tests/TestConfiguration.tst The session keys which does not used in GLOBAL_session_timeout seconds will be released. NOTE : The session key for the administrator which got from get_administrator_session_key won't be expired. For this reason, please use get_single_user_session_key instead of get_administrator_session_key in the single user mode. NOTE : The 'last used time' is updated when valid_session_key__ is called with the session key. 4. Added 'Single User Mode Parameters' section in the Advanced tab UI/HTML.pm skins/default/advanced-page.thtml languages/English.msg languages/Nihongo.msg All POPFile parameters now can be changed in the single user mode. 'Single User Mode Parameters' section has been added below the 'Global POPFile Parameters' section. 5. Updated translation file languages/Nihongo.msg 6. The session cache is purged when the session key is released 7. The query is stopped when the session key is released UI/HTML.pm 8. Added escape_html_() function in HTTP.pm UI/HTTP.pm UI/HTML.pm tests/TestHTML.script This function is used for escaping ", <, >, &, ' characters. They are converted to ", <, >, & and ' 9. The matched header is showed/emphasized if the magnets are used UI/HTML.pm POPFile/History.pm Classifier/Bayes.pm tests/TestHTML.script The magnet icon's "title" will be like 'From:te...@ex...' in the history tab. The header information will be showed/emphasized in the single message view. 10. Minor fixes of the skins skins/default/common-bottom.thtml skins/default/users-page.thtml skins/default/administration-page.thtml skins/default/pop3-chain-panel.thtml skins/default/pop3-configuration-panel.thtml skins/default/socks-widget.thtml skins/default/nntp-configuration.thtml skins/default/smtp-configuration.thtml skins/default/windows-configuration.thtml Proxy/POP3.pm Proxy/NNTP.pm Proxy/SMTP.pm Platform/MSWin32.pm tests/TestPOP3.tst tests/TestHTML.tst Current state of the test suite: TestBayesScript PASS TestBayes PASS TestConfiguration PASS * TestHistory PASS TestHTML PASS * TestHTTP PASS TestIMAP PASS TestInsertScript PASS * TestLogger PASS TestMailParse PASS TestModule PASS TestMQ PASS TestMutex PASS TestPipeScript PASS TestPOP3 PASS TestProxy PASS TestWordMangle PASS TestXMLRPC PASS * : TODO : needs to add tests for multi user support Index: History.pm =================================================================== RCS file: /cvsroot/popfile/engine/POPFile/History.pm,v retrieving revision 1.52 retrieving revision 1.53 diff -C2 -d -r1.52 -r1.53 *** History.pm 16 Apr 2008 13:08:04 -0000 1.52 --- History.pm 17 Apr 2008 15:13:04 -0000 1.53 *************** *** 37,41 **** my $fields_slot = 'history.id, hdr_from, hdr_to, hdr_cc, hdr_subject, ! hdr_date, hash, inserted, buckets.name, usedtobe, history.bucketid, magnets.val, size'; #---------------------------------------------------------------------------- --- 37,41 ---- my $fields_slot = 'history.id, hdr_from, hdr_to, hdr_cc, hdr_subject, ! hdr_date, hash, inserted, buckets.name, usedtobe, history.bucketid, magnets.val, size, history.magnetid'; #---------------------------------------------------------------------------- *************** *** 1187,1191 **** if ( $#msgs != -1 ) { ! my $session = $self->classifier_()->get_administrator_session_key(); print "\nFound old history files, moving them into database\n "; --- 1187,1191 ---- if ( $#msgs != -1 ) { ! my $session = $self->classifier_()->get_single_user_session_key(); print "\nFound old history files, moving them into database\n "; *************** *** 1295,1299 **** my ( $self ) = @_; - # TODO : multi-user support my $session = $self->classifier_()->get_administrator_session_key(); my $users = $self->classifier_()->get_user_list( $session ); --- 1295,1298 ---- *************** *** 1306,1310 **** inserted < ?;" ); foreach my $userid ( keys %$users ) { ! my $old = time - $self->user_config_( $userid, 'history_days' )*$seconds_per_day; $d->execute( $userid, $old ); my @row; --- 1305,1310 ---- inserted < ?;" ); foreach my $userid ( keys %$users ) { ! my $old = time - $self->user_config_( $userid, 'history_days' ) * ! $seconds_per_day; $d->execute( $userid, $old ); my @row; *************** *** 1317,1320 **** --- 1317,1322 ---- $self->delete_slot( $id, 1, $session, 1 ); } + + $self->classifier_()->release_session_key( $session ); } Index: Configuration.pm =================================================================== RCS file: /cvsroot/popfile/engine/POPFile/Configuration.pm,v retrieving revision 1.64 retrieving revision 1.65 diff -C2 -d -r1.64 -r1.65 *** Configuration.pm 13 Apr 2008 03:08:09 -0000 1.64 --- Configuration.pm 17 Apr 2008 15:13:04 -0000 1.65 *************** *** 147,153 **** --- 147,161 ---- # GLOBAL language setting + # The global language is used as the default language setting for + # users. + # If this setting is set to 'Nihongo', POPFile handles Japanese + # messages correctly. $self->global_config_( 'language', 'English' ); + # The default session timeout in seconds. + + $self->global_config_( 'session_timeout', 1800 ); + # Register for the TICKD message which is sent hourly by the # Logger module. We use this to hourly save the configuration file |
From: naoki i. <am...@us...> - 2008-04-17 15:13:07
|
Update of /cvsroot/popfile/engine/tests In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv6287/tests Modified Files: TestConfiguration.tst TestHTML.script TestPOP3.tst Log Message: Change Log 1. The session keys are now released when they are expired 2. New global parameter 'GLOBAL_session_timeout' (default : 1800 seconds) 3. Replaced get_administrator_session_key with get_single_user_session_key Classifier/Bayes.pm UI/HTML.pm POPFile/History.pm POPFile/Configuration.pm tests/TestConfiguration.tst The session keys which does not used in GLOBAL_session_timeout seconds will be released. NOTE : The session key for the administrator which got from get_administrator_session_key won't be expired. For this reason, please use get_single_user_session_key instead of get_administrator_session_key in the single user mode. NOTE : The 'last used time' is updated when valid_session_key__ is called with the session key. 4. Added 'Single User Mode Parameters' section in the Advanced tab UI/HTML.pm skins/default/advanced-page.thtml languages/English.msg languages/Nihongo.msg All POPFile parameters now can be changed in the single user mode. 'Single User Mode Parameters' section has been added below the 'Global POPFile Parameters' section. 5. Updated translation file languages/Nihongo.msg 6. The session cache is purged when the session key is released 7. The query is stopped when the session key is released UI/HTML.pm 8. Added escape_html_() function in HTTP.pm UI/HTTP.pm UI/HTML.pm tests/TestHTML.script This function is used for escaping ", <, >, &, ' characters. They are converted to ", <, >, & and ' 9. The matched header is showed/emphasized if the magnets are used UI/HTML.pm POPFile/History.pm Classifier/Bayes.pm tests/TestHTML.script The magnet icon's "title" will be like 'From:te...@ex...' in the history tab. The header information will be showed/emphasized in the single message view. 10. Minor fixes of the skins skins/default/common-bottom.thtml skins/default/users-page.thtml skins/default/administration-page.thtml skins/default/pop3-chain-panel.thtml skins/default/pop3-configuration-panel.thtml skins/default/socks-widget.thtml skins/default/nntp-configuration.thtml skins/default/smtp-configuration.thtml skins/default/windows-configuration.thtml Proxy/POP3.pm Proxy/NNTP.pm Proxy/SMTP.pm Platform/MSWin32.pm tests/TestPOP3.tst tests/TestHTML.tst Current state of the test suite: TestBayesScript PASS TestBayes PASS TestConfiguration PASS * TestHistory PASS TestHTML PASS * TestHTTP PASS TestIMAP PASS TestInsertScript PASS * TestLogger PASS TestMailParse PASS TestModule PASS TestMQ PASS TestMutex PASS TestPipeScript PASS TestPOP3 PASS TestProxy PASS TestWordMangle PASS TestXMLRPC PASS * : TODO : needs to add tests for multi user support Index: TestHTML.script =================================================================== RCS file: /cvsroot/popfile/engine/tests/TestHTML.script,v retrieving revision 1.36 retrieving revision 1.37 diff -C2 -d -r1.36 -r1.37 *** TestHTML.script 5 Apr 2008 16:50:46 -0000 1.36 --- TestHTML.script 17 Apr 2008 15:13:05 -0000 1.37 *************** *** 190,194 **** MATCH Magnetic Attraction for Ferrous Females MATCH personal ! MATCH <img title="foo" alt="foo" src="/skins/magnet.png"> GET /view?view=32&start_message=0 --- 190,194 ---- MATCH Magnetic Attraction for Ferrous Females MATCH personal ! MATCH <img title="From:foo" alt="From:foo" src="/skins/magnet.png"> GET /view?view=32&start_message=0 *************** *** 202,206 **** </font> <font size="+1"> ! foo </font> ENDMATCH --- 202,206 ---- </font> <font size="+1"> ! From:foo </font> ENDMATCH *************** *** 602,611 **** SETINPUT type0 from SETSUBMIT bucket0 personal ! MATCH Magnet 'from: foo' already exists in bucket 'personal' SETINPUT text0 fo SETINPUT type0 from SETSUBMIT bucket0 personal ! MATCH New magnet 'from: fo' clashes with magnet 'from: foo' in bucket 'personal' and could cause ambiguous results. New magnet was not added. # Check magnet change value --- 602,611 ---- SETINPUT type0 from SETSUBMIT bucket0 personal ! MATCH Magnet 'from: foo' already exists in bucket 'personal' SETINPUT text0 fo SETINPUT type0 from SETSUBMIT bucket0 personal ! MATCH New magnet 'from: fo' clashes with magnet 'from: foo' in bucket 'personal' and could cause ambiguous results. New magnet was not added. # Check magnet change value *************** *** 807,819 **** # Check fork for POP3 ! HIDDEN 1 ! INPUTIS pop3_force_fork 1 ! CONFIGIS pop3_force_fork 0 ! SETSUBMIT pop3_force_fork 0 ! INPUTIS pop3_force_fork 1 CONFIGIS pop3_force_fork 0 SETSUBMIT pop3_force_fork 1 ! INPUTIS pop3_force_fork 0 ! HIDDEN 0 # Check UI port --- 807,819 ---- # Check fork for POP3 ! #HIDDEN 1 ! INPUTIS pop3_force_fork CONFIGIS pop3_force_fork 0 SETSUBMIT pop3_force_fork 1 ! INPUTIS pop3_force_fork 1 ! CONFIGIS pop3_force_fork 1 ! SETSUBMIT pop3_force_fork off ! INPUTIS pop3_force_fork ! #HIDDEN 0 # Check UI port *************** *** 832,855 **** #HIDDEN 1 ! INPUTIS serveropt_pop3 ! CONFIGIS pop3_local 1 SETSUBMIT serveropt_pop3 on ! INPUTIS serveropt_pop3 on ! CONFIGIS pop3_local 0 SETSUBMIT serveropt_pop3 off ! INPUTIS serveropt_pop3 ! CONFIGIS pop3_local 1 #HIDDEN 0 # Check UI stealth #HIDDEN 1 ! INPUTIS serveropt_html ! CONFIGIS html_local 1 SETSUBMIT serveropt_html on ! INPUTIS serveropt_html on ! CONFIGIS html_local 0 SETSUBMIT serveropt_html off ! INPUTIS serveropt_html ! CONFIGIS html_local 1 #HIDDEN 0 --- 832,855 ---- #HIDDEN 1 ! INPUTIS serveropt_pop3 ! CONFIGIS pop3_local 1 SETSUBMIT serveropt_pop3 on ! INPUTIS serveropt_pop3 on ! CONFIGIS pop3_local 0 SETSUBMIT serveropt_pop3 off ! INPUTIS serveropt_pop3 ! CONFIGIS pop3_local 1 #HIDDEN 0 # Check UI stealth #HIDDEN 1 ! INPUTIS serveropt_html ! CONFIGIS html_local 1 SETSUBMIT serveropt_html on ! INPUTIS serveropt_html on ! CONFIGIS html_local 0 SETSUBMIT serveropt_html off ! INPUTIS serveropt_html ! CONFIGIS html_local 1 #HIDDEN 0 *************** *** 877,887 **** #HIDDEN 1 ! INPUTIS update_check USERCONFIGIS html_update_check 0 ! SETSUBMIT update_check on ! INPUTIS update_check on USERCONFIGIS html_update_check 1 ! SETSUBMIT update_check off ! INPUTIS update_check USERCONFIGIS html_update_check 0 #HIDDEN 0 --- 877,887 ---- #HIDDEN 1 ! INPUTIS update_check USERCONFIGIS html_update_check 0 ! SETSUBMIT update_check on ! INPUTIS update_check on USERCONFIGIS html_update_check 1 ! SETSUBMIT update_check off ! INPUTIS update_check USERCONFIGIS html_update_check 0 #HIDDEN 0 *************** *** 890,900 **** #HIDDEN 1 ! INPUTIS send_stats USERCONFIGIS html_send_stats 0 ! SETSUBMIT send_stats on ! INPUTIS send_stats on USERCONFIGIS html_send_stats 1 ! SETSUBMIT send_stats off ! INPUTIS send_stats USERCONFIGIS html_send_stats 0 #HIDDEN 0 --- 890,900 ---- #HIDDEN 1 ! INPUTIS send_stats USERCONFIGIS html_send_stats 0 ! SETSUBMIT send_stats on ! INPUTIS send_stats on USERCONFIGIS html_send_stats 1 ! SETSUBMIT send_stats off ! INPUTIS send_stats USERCONFIGIS html_send_stats 0 #HIDDEN 0 *************** *** 905,912 **** GET /history ISVALIDPASSWORD ! SETINPUT new_password secret ! SETSUBMIT confirm_password secret ISVALIDPASSWORD secret ! SETSUBMIT old_password secret ISVALIDPASSWORD --- 905,912 ---- GET /history ISVALIDPASSWORD ! SETINPUT new_password secret ! SETSUBMIT confirm_password secret ISVALIDPASSWORD secret ! SETSUBMIT old_password secret ISVALIDPASSWORD *************** *** 923,929 **** # Check add ignore word ! INPUTIS newword SETSUBMIT newword four11@.-_ ! MATCH 'four11@.-_' added to the Ignored Words list # reload GET /advanced --- 923,929 ---- # Check add ignore word ! INPUTIS newword SETSUBMIT newword four11@.-_ ! MATCH 'four11@.-_' added to the Ignored Words list # reload GET /advanced *************** *** 934,943 **** # Check remove ignore word ! INPUTIS word SETSUBMIT word four11@.-_ ! MATCH 'four11@.-_' removed from the Ignored Words list # reload GET /advanced ! NOTMATCH four11@.-_ SETSUBMIT word ba"d MATCH Ignored words can only contain alphanumeric, ., _, -, or @ characters --- 934,943 ---- # Check remove ignore word ! INPUTIS word SETSUBMIT word four11@.-_ ! MATCH 'four11@.-_' removed from the Ignored Words list # reload GET /advanced ! NOTMATCH four11@.-_ SETSUBMIT word ba"d MATCH Ignored words can only contain alphanumeric, ., _, -, or @ characters *************** *** 967,972 **** GET /advanced SETSUBMIT parameter_bayes_hostname testhostname ! CONFIGIS bayes_hostname testhostname ! INPUTIS parameter_bayes_hostname testhostname # Buckets Page --- 967,972 ---- GET /advanced SETSUBMIT parameter_bayes_hostname testhostname ! CONFIGIS bayes_hostname testhostname ! INPUTIS parameter_bayes_hostname testhostname # Buckets Page Index: TestPOP3.tst =================================================================== RCS file: /cvsroot/popfile/engine/tests/TestPOP3.tst,v retrieving revision 1.35 retrieving revision 1.36 diff -C2 -d -r1.35 -r1.36 *** TestPOP3.tst 9 Apr 2008 17:20:48 -0000 1.35 --- TestPOP3.tst 17 Apr 2008 15:13:05 -0000 1.36 *************** *** 181,187 **** $params = $templ->{params__}; test_assert_equal( scalar( keys( %{$params} ) ), 3 ); ! test_assert_equal( $templ->param( 'POP3_Configuration_If_Force_Fork' ), !$p->config_( 'force_fork' ) ); ! test_assert_equal( $templ->param( 'POP3_Configuration_Port' ), $p->config_( 'port' ) ); ! test_assert_equal( $templ->param( 'POP3_Configuration_Separator' ), $p->config_( 'separator' ) ); delete $templ->{params__}; --- 181,187 ---- $params = $templ->{params__}; test_assert_equal( scalar( keys( %{$params} ) ), 3 ); ! test_assert_equal( $templ->param( 'POP3_Configuration_If_Force_Fork' ), ( $p->config_( 'force_fork' ) == 1 ) ); ! test_assert_equal( $templ->param( 'POP3_Configuration_Port' ), $p->config_( 'port' ) ); ! test_assert_equal( $templ->param( 'POP3_Configuration_Separator' ), $p->config_( 'separator' ) ); delete $templ->{params__}; *************** *** 303,307 **** delete $form->{pop3_separator}; ! test_assert_equal( $p->config_( 'force_fork' ), 0); $form->{pop3_force_fork} = 1; --- 303,308 ---- delete $form->{pop3_separator}; ! test_assert_equal( $p->config_( 'force_fork' ), 0 ); ! $form->{update_pop3_configuration} = 1; $form->{pop3_force_fork} = 1; *************** *** 319,322 **** --- 320,324 ---- delete $form->{pop3_force_fork}; + delete $form->{update_pop3_configuration}; $p->config_( 'force_fork', 0 ); *************** *** 373,377 **** $old_config_value = $p->config_( 'secure_ssl' ); ! $form->{sssl} = "UseSSL"; $language->{Security_SecureServerUseSSLOn} = "use SSL connections"; $language->{Security_SecureServerUseSSLOff} = "not use SSL connections"; --- 375,380 ---- $old_config_value = $p->config_( 'secure_ssl' ); ! $form->{update_server} = 1; ! $form->{sssl} = "1"; $language->{Security_SecureServerUseSSLOn} = "use SSL connections"; $language->{Security_SecureServerUseSSLOff} = "not use SSL connections"; *************** *** 390,393 **** --- 393,397 ---- delete $form->{server}; + delete $form->{update_server}; $p->config_('secure_ssl', $old_config_value ); Index: TestConfiguration.tst =================================================================== RCS file: /cvsroot/popfile/engine/tests/TestConfiguration.tst,v retrieving revision 1.25 retrieving revision 1.26 diff -C2 -d -r1.25 -r1.26 *** TestConfiguration.tst 13 Apr 2008 03:08:09 -0000 1.25 --- TestConfiguration.tst 17 Apr 2008 15:13:05 -0000 1.26 *************** *** 133,136 **** --- 133,138 ---- test_assert_regexp( $line, 'GLOBAL_random_module Crypt::OpenSSL::Random' ); $line = <FILE>; + test_assert_regexp( $line, 'GLOBAL_session_timeout 1800' ); + $line = <FILE>; test_assert_regexp( $line, 'GLOBAL_single_user 1' ); $line = <FILE>; |
From: naoki i. <am...@us...> - 2008-04-17 15:13:06
|
Update of /cvsroot/popfile/engine/Platform In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv6287/Platform Modified Files: MSWin32.pm Log Message: Change Log 1. The session keys are now released when they are expired 2. New global parameter 'GLOBAL_session_timeout' (default : 1800 seconds) 3. Replaced get_administrator_session_key with get_single_user_session_key Classifier/Bayes.pm UI/HTML.pm POPFile/History.pm POPFile/Configuration.pm tests/TestConfiguration.tst The session keys which does not used in GLOBAL_session_timeout seconds will be released. NOTE : The session key for the administrator which got from get_administrator_session_key won't be expired. For this reason, please use get_single_user_session_key instead of get_administrator_session_key in the single user mode. NOTE : The 'last used time' is updated when valid_session_key__ is called with the session key. 4. Added 'Single User Mode Parameters' section in the Advanced tab UI/HTML.pm skins/default/advanced-page.thtml languages/English.msg languages/Nihongo.msg All POPFile parameters now can be changed in the single user mode. 'Single User Mode Parameters' section has been added below the 'Global POPFile Parameters' section. 5. Updated translation file languages/Nihongo.msg 6. The session cache is purged when the session key is released 7. The query is stopped when the session key is released UI/HTML.pm 8. Added escape_html_() function in HTTP.pm UI/HTTP.pm UI/HTML.pm tests/TestHTML.script This function is used for escaping ", <, >, &, ' characters. They are converted to ", <, >, & and ' 9. The matched header is showed/emphasized if the magnets are used UI/HTML.pm POPFile/History.pm Classifier/Bayes.pm tests/TestHTML.script The magnet icon's "title" will be like 'From:te...@ex...' in the history tab. The header information will be showed/emphasized in the single message view. 10. Minor fixes of the skins skins/default/common-bottom.thtml skins/default/users-page.thtml skins/default/administration-page.thtml skins/default/pop3-chain-panel.thtml skins/default/pop3-configuration-panel.thtml skins/default/socks-widget.thtml skins/default/nntp-configuration.thtml skins/default/smtp-configuration.thtml skins/default/windows-configuration.thtml Proxy/POP3.pm Proxy/NNTP.pm Proxy/SMTP.pm Platform/MSWin32.pm tests/TestPOP3.tst tests/TestHTML.tst Current state of the test suite: TestBayesScript PASS TestBayes PASS TestConfiguration PASS * TestHistory PASS TestHTML PASS * TestHTTP PASS TestIMAP PASS TestInsertScript PASS * TestLogger PASS TestMailParse PASS TestModule PASS TestMQ PASS TestMutex PASS TestPipeScript PASS TestPOP3 PASS TestProxy PASS TestWordMangle PASS TestXMLRPC PASS * : TODO : needs to add tests for multi user support Index: MSWin32.pm =================================================================== RCS file: /cvsroot/popfile/engine/Platform/MSWin32.pm,v retrieving revision 1.26 retrieving revision 1.27 diff -C2 -d -r1.26 -r1.27 *** MSWin32.pm 20 Feb 2006 02:12:55 -0000 1.26 --- MSWin32.pm 17 Apr 2008 15:13:05 -0000 1.27 *************** *** 154,164 **** if ( $name eq 'windows_trayicon_and_console' ) { ! if ( defined($$form{windows_trayicon}) ) { ! $self->config_( 'trayicon', $$form{windows_trayicon} ); ! $status_message = $$language{Windows_NextTime}; ! } - if ( defined($$form{windows_console}) ) { - $self->config_( 'console', $$form{windows_console} ); $status_message = $$language{Windows_NextTime}; } --- 154,170 ---- if ( $name eq 'windows_trayicon_and_console' ) { ! if ( defined( $$form{update_windows_configuration} ) ) { ! if ( $$form{windows_trayicon} ) { ! $self->config_( 'trayicon', 1 ); ! } else { ! $self->config_( 'trayicon', 0 ); ! } ! ! if ( $$form{windows_console} ) { ! $self->config_( 'console', 1 ); ! } else { ! $self->config_( 'console', 0 ); ! } $status_message = $$language{Windows_NextTime}; } |
From: naoki i. <am...@us...> - 2008-04-17 15:13:03
|
Update of /cvsroot/popfile/engine/UI In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv6287/UI Modified Files: HTML.pm HTTP.pm Log Message: Change Log 1. The session keys are now released when they are expired 2. New global parameter 'GLOBAL_session_timeout' (default : 1800 seconds) 3. Replaced get_administrator_session_key with get_single_user_session_key Classifier/Bayes.pm UI/HTML.pm POPFile/History.pm POPFile/Configuration.pm tests/TestConfiguration.tst The session keys which does not used in GLOBAL_session_timeout seconds will be released. NOTE : The session key for the administrator which got from get_administrator_session_key won't be expired. For this reason, please use get_single_user_session_key instead of get_administrator_session_key in the single user mode. NOTE : The 'last used time' is updated when valid_session_key__ is called with the session key. 4. Added 'Single User Mode Parameters' section in the Advanced tab UI/HTML.pm skins/default/advanced-page.thtml languages/English.msg languages/Nihongo.msg All POPFile parameters now can be changed in the single user mode. 'Single User Mode Parameters' section has been added below the 'Global POPFile Parameters' section. 5. Updated translation file languages/Nihongo.msg 6. The session cache is purged when the session key is released 7. The query is stopped when the session key is released UI/HTML.pm 8. Added escape_html_() function in HTTP.pm UI/HTTP.pm UI/HTML.pm tests/TestHTML.script This function is used for escaping ", <, >, &, ' characters. They are converted to ", <, >, & and ' 9. The matched header is showed/emphasized if the magnets are used UI/HTML.pm POPFile/History.pm Classifier/Bayes.pm tests/TestHTML.script The magnet icon's "title" will be like 'From:te...@ex...' in the history tab. The header information will be showed/emphasized in the single message view. 10. Minor fixes of the skins skins/default/common-bottom.thtml skins/default/users-page.thtml skins/default/administration-page.thtml skins/default/pop3-chain-panel.thtml skins/default/pop3-configuration-panel.thtml skins/default/socks-widget.thtml skins/default/nntp-configuration.thtml skins/default/smtp-configuration.thtml skins/default/windows-configuration.thtml Proxy/POP3.pm Proxy/NNTP.pm Proxy/SMTP.pm Platform/MSWin32.pm tests/TestPOP3.tst tests/TestHTML.tst Current state of the test suite: TestBayesScript PASS TestBayes PASS TestConfiguration PASS * TestHistory PASS TestHTML PASS * TestHTTP PASS TestIMAP PASS TestInsertScript PASS * TestLogger PASS TestMailParse PASS TestModule PASS TestMQ PASS TestMutex PASS TestPipeScript PASS TestPOP3 PASS TestProxy PASS TestWordMangle PASS TestXMLRPC PASS * : TODO : needs to add tests for multi user support Index: HTML.pm =================================================================== RCS file: /cvsroot/popfile/engine/UI/HTML.pm,v retrieving revision 1.389 retrieving revision 1.390 diff -C2 -d -r1.389 -r1.390 *** HTML.pm 16 Apr 2008 13:08:04 -0000 1.389 --- HTML.pm 17 Apr 2008 15:13:05 -0000 1.390 *************** *** 264,269 **** if ( $type eq 'RELSE' ) { ! if ( defined( $message[0] ) && defined( $self->{language__}{$message[0]} ) ) { ! delete $self->{language__}{$message[0]}; } } --- 264,279 ---- if ( $type eq 'RELSE' ) { ! my $session = $message[0]; ! ! # Purge the language cache ! ! if ( exists( $self->{language__}{$session} ) ) { ! delete $self->{language__}{$session}; ! } ! ! # Purge the session cache and stop query ! if ( exists( $self->{sessions__}{$session} ) ) { ! $self->history_()->stop_query( $self->{sessions__}{$session}{q} ); ! delete $self->{sessions__}{$session}; } } *************** *** 327,339 **** } - # Now see if this session has been recorded in the current - # sessions, if so then return it, because we can assume that it is - # valid - - if ( exists( $self->{sessions__}{$session} ) ) { - $self->{sessions__}{$session}{lastused} = time; - return $session; - } - # Let's see if the session key is the magic string LOGGED-OUT # in which case there's no session --- 337,340 ---- *************** *** 343,352 **** } ! # Otherwise check that the session ID is still valid in the API. my $user = $self->classifier_()->valid_session_key__( $session ); if ( defined( $user ) ) { ! $self->{sessions__}{$session}{lastused} = time; $self->{sessions__}{$session}{user} = $user; $self->{sessions__}{$session}{sort} = ''; --- 344,370 ---- } ! # Check that the session ID is still valid in the API. my $user = $self->classifier_()->valid_session_key__( $session ); + # Now see if this session has been recorded in the current + # sessions, if so then return it, because we can assume that it is + # valid + + if ( exists( $self->{sessions__}{$session} ) ) { + if ( defined($user) ) { + # $self->{sessions__}{$session}{lastused} = time; + return $session; + } else { + $self->history_()->stop_query( $self->{sessions__}{$session}{q} ); + delete $self->{sessions__}{$session}; + return undef; + } + } + + # Check that the session ID is still valid in the API. + if ( defined( $user ) ) { ! # $self->{sessions__}{$session}{lastused} = time; $self->{sessions__}{$session}{user} = $user; $self->{sessions__}{$session}{sort} = ''; *************** *** 466,477 **** } ! # In single user mode get the administrator key if ( !defined( $session ) && ! $self->global_config_( 'single_user' ) ) { ! $session = $self->classifier_()->get_session_key( 'admin', '' ); if ( defined ( $session ) ) { ! $self->{sessions__}{$session}{lastused} = time; $self->{sessions__}{$session}{user} = 1; $self->{sessions__}{$session}{sort} = ''; --- 484,495 ---- } ! # In single user mode get the single user mode key if ( !defined( $session ) && ! $self->global_config_( 'single_user' ) ) { ! $session = $self->classifier_()->get_single_user_session_key(); if ( defined ( $session ) ) { ! # $self->{sessions__}{$session}{lastused} = time; $self->{sessions__}{$session}{user} = 1; $self->{sessions__}{$session}{sort} = ''; *************** *** 1738,1742 **** $page, $session ); ! # Handle updating the parameter table if ( defined( $self->{form_}{update_params} ) ) { --- 1756,1762 ---- $page, $session ); ! my $single_mode = $self->global_config_( 'single_user' ); ! ! # Handle updating the global parameter table if ( defined( $self->{form_}{update_params} ) ) { *************** *** 1751,1754 **** --- 1771,1787 ---- } + # Handle updating the single user mode parameter table + + if ( $single_mode && defined( $self->{form_}{update_single_user_params} ) ) { + foreach my $param (sort keys %{$self->{form_}}) { + if ( $param =~ /parameter_(.*)/ ) { + $self->classifier_()->set_user_parameter_from_id( 1, + $1, $self->{form_}{$param} ); + } + } + } + + # Handle adding/removing words to/from stopwords + if ( defined($self->{form_}{newword}) ) { my $result = $self->classifier_()->add_stopword( $session, *************** *** 1771,1775 **** } ! # the word census my $last = ''; my $need_comma = 0; --- 1804,1809 ---- } ! # the word census ( stopword ) ! my $last = ''; my $need_comma = 0; *************** *** 1833,1836 **** --- 1867,1872 ---- } + # POPFile global parameters + $templ->param( 'Advanced_Loop_Word' => \@word_loop ); *************** *** 1868,1871 **** --- 1904,1934 ---- $templ->param( 'Advanced_Loop_Parameter' => \@param_loop ); + # Single user mode parameters + + $templ->param( 'Advanced_If_SingleUser' => $single_mode ); + + if ( $single_mode ) { + my @parameters = $self->classifier_()->get_user_parameter_list( $session ); + + my @parameter_list; + my $last = ''; + foreach my $param (sort @parameters) { + my %row_data; + $param =~ /^([^_]+)_/; + if ( ( $last ne '' ) && ( $last ne $1 ) ) { + $row_data{Users_If_New_Module} = 1; + } else { + $row_data{Users_If_New_Module} = 0; + } + $last = $1; + $row_data{Users_Parameter} = $param; + my ( $val, $default ) = $self->classifier_()->get_user_parameter_from_id( 1, $param ); + $row_data{Users_Value} = $val; + $row_data{Users_If_Changed} = !$default; + push ( @parameter_list, \%row_data ); + } + $templ->param( 'Users_Loop_Parameter' => \@parameter_list ); + } + $self->http_ok( $client, $templ, 5, $session ); } *************** *** 2098,2106 **** # field - my $validatingMagnet = $magnet; - $validatingMagnet =~ s/&/&/g; - $validatingMagnet =~ s/</</g; - $validatingMagnet =~ s/>/>/g; - # escape quotation characters to avoid orphan data # within tags todo: function to make arbitrary data --- 2161,2164 ---- *************** *** 2108,2112 **** # (inside double-quotes) ! $validatingMagnet =~ s/\"/\"\;/g; $row_data{Magnet_Row_ID} = $i; --- 2166,2170 ---- # (inside double-quotes) ! my $validatingMagnet = $self->escape_html_( $magnet ); $row_data{Magnet_Row_ID} = $i; *************** *** 2607,2613 **** if ( $max_bucket ne '' ) { ! $templ->param( 'Corpus_Lookup_Message' => sprintf( $self->language($session)->{Bucket_LookupMostLikely}, $word, $self->classifier_()->get_bucket_color( $session, $max_bucket ), $max_bucket ) ); } else { ! $templ->param( 'Corpus_Lookup_Message' => sprintf( $self->language($session)->{Bucket_DoesNotAppear}, $word ) ); } } --- 2665,2677 ---- if ( $max_bucket ne '' ) { ! $templ->param( 'Corpus_Lookup_Message' => ! sprintf( $self->language($session)->{Bucket_LookupMostLikely}, ! $self->escape_html_( $word ), ! $self->classifier_()->get_bucket_color( $session, $max_bucket ), ! $max_bucket ) ); } else { ! $templ->param( 'Corpus_Lookup_Message' => ! sprintf( $self->language($session)->{Bucket_DoesNotAppear}, ! $self->escape_html_( $word ) ) ); } } *************** *** 3016,3020 **** $templ->param( 'History_Field_Search' => $self->{form_}{search} ); ! $templ->param( 'History_Field_Not' => $self->{form_}{negate} ); $templ->param( 'History_If_Search' => defined( $self->{form_}{search} ) ); $templ->param( 'History_Field_Sort' => $self->{form_}{sort} ); --- 3080,3084 ---- $templ->param( 'History_Field_Search' => $self->{form_}{search} ); ! $templ->param( 'History_Field_Not' => $self->{form_}{negate} ); $templ->param( 'History_If_Search' => defined( $self->{form_}{search} ) ); $templ->param( 'History_Field_Sort' => $self->{form_}{sort} ); *************** *** 3241,3245 **** if ( $$row[11] ne '' ) { $col_data{History_If_Magnetized} = 1; ! $col_data{History_Magnet} = $$row[11]; } $col_data{History_If_Not_Pseudo} = --- 3305,3312 ---- if ( $$row[11] ne '' ) { $col_data{History_If_Magnetized} = 1; ! my ( $header, $value ) = ! $self->classifier_()->get_magnet_header_and_value( $session, $$row[13] ); ! $col_data{History_Magnet} = ! $self->language($session)->{$header} . ':' . $value; } $col_data{History_If_Not_Pseudo} = *************** *** 3342,3348 **** my ( $id, $from, $to, $cc, $subject, $date, $hash, $inserted, ! $bucket, $reclassified, $bucketid, $magnet ) = $self->history_()->get_slot_fields( $self->{form_}{view}, $session ); if ( !defined($id) ) { $self->http_redirect_( $client, "/history", $session ); --- 3409,3421 ---- my ( $id, $from, $to, $cc, $subject, $date, $hash, $inserted, ! $bucket, $reclassified, $bucketid, $magnet, $size, $magnetid ) = $self->history_()->get_slot_fields( $self->{form_}{view}, $session ); + my ( $header, $value ); + if ( $magnet ne '' ) { + ( $header, $value ) = + $self->classifier_()->get_magnet_header_and_value( $session, $magnetid ); + } + if ( !defined($id) ) { $self->http_redirect_( $client, "/history", $session ); *************** *** 3411,3415 **** $templ->param( 'View_Loop_Buckets' => \@bucket_data ); } else { ! $templ->param( 'View_Magnet' => $magnet ); } } --- 3484,3488 ---- $templ->param( 'View_Loop_Buckets' => \@bucket_data ); } else { ! $templ->param( 'View_Magnet' => $self->language($session)->{$header} . ':' . $value ); } } *************** *** 3478,3487 **** } else { - # TODO: See comment below for details - - # $magnet =~ /(.+): ([^\r\n]+)/; - # my $header = $1; - # my $text = $2; - my $body = '<tt>'; --- 3551,3554 ---- *************** *** 3490,3521 **** while ($line = <MESSAGE>) { ! $line =~ s/</</g; ! $line =~ s/>/>/g; $line =~ s/([^\r\n]{100,150} )/$1<br \/>/g; $line =~ s/([^ \r\n]{150})/$1<br \/>/g; $line =~ s/[\r\n]+/<br \/>/g; ! # TODO: This code is now useless because the magnet itself ! # doesn't contain the information about which header we ! # are looking for. Ultimately, we need to fix this but I ! # decided for v0.22.0 release to not make further changes ! # and leave this code as unfixed. ! ! # if ( $line =~ /^([A-Za-z-]+): ?([^\n\r]*)/ ) { ! # my $head = $1; ! # my $arg = $2; ! # ! # if ( $head =~ /\Q$header\E/i ) { ! # ! # $text =~ s/</</g; ! # $text =~ s/>/>/g; ! # ! # if ( $arg =~ /\Q$text\E/i ) { ! # my $new_color = $self->classifier_()->get_bucket_color( $session, $bucket ); ! # $line =~ s/(\Q$text\E)/<b style=\"color:$new_color\">$1<\/b>/; ! # } ! # } ! # } $body .= $line; --- 3557,3581 ---- while ($line = <MESSAGE>) { ! $line = $self->escape_html_( $line ); $line =~ s/([^\r\n]{100,150} )/$1<br \/>/g; $line =~ s/([^ \r\n]{150})/$1<br \/>/g; $line =~ s/[\r\n]+/<br \/>/g; + $line =~ s/\t/ /g; ! if ( $line =~ /^([A-Za-z-]+): ?([^\n\r]*)/ ) { ! my $head = $1; ! my $arg = $2; ! ! if ( $head =~ /\Q$header\E/i ) { ! ! $value = $self->escape_html_( $value ); ! ! if ( $arg =~ /\Q$value\E/i ) { ! my $new_color = $self->classifier_()->get_bucket_color( $session, $bucket ); ! $line =~ s/(\Q$header\E|\Q$value\E)/<b style=\"color:$new_color\">$1<\/b>/g; ! } ! } ! } $body .= $line; *************** *** 3526,3533 **** } ! if ($magnet ne '') { $templ->param( 'View_Magnet_Reason' => sprintf( $self->language($session)->{History_MagnetBecause}, # PROFILE BLOCK START $color, $bucket, ! Classifier::MailParse->splitline($magnet,0) ) ); # PROFILE BLOCK STOP } --- 3586,3593 ---- } ! if ( $magnet ne '' ) { $templ->param( 'View_Magnet_Reason' => sprintf( $self->language($session)->{History_MagnetBecause}, # PROFILE BLOCK START $color, $bucket, ! Classifier::MailParse->splitline( $self->language($session)->{$header} . ':' . $value, 0 ) ) ); # PROFILE BLOCK STOP } *************** *** 3596,3603 **** my ( $self, $templ, $message ) = @_; ! $message =~ s/&/&/g; ! $message =~ s/</</g; ! $message =~ s/>/>/g; ! $message =~ s/\"/"/g; $message =~ s/\n/<br \/>/g; --- 3656,3660 ---- my ( $self, $templ, $message ) = @_; ! $message = $self->escape_html_( $message ); $message =~ s/\n/<br \/>/g; *************** *** 3622,3629 **** my ( $self, $templ, $message ) = @_; ! $message =~ s/&/&/g; ! $message =~ s/</</g; ! $message =~ s/>/>/g; ! $message =~ s/\"/"/g; $message =~ s/\n/<br \/>/g; --- 3679,3683 ---- my ( $self, $templ, $message ) = @_; ! $message = $self->escape_html_( $message ); $message =~ s/\n/<br \/>/g; Index: HTTP.pm =================================================================== RCS file: /cvsroot/popfile/engine/UI/HTTP.pm,v retrieving revision 1.39 retrieving revision 1.40 diff -C2 -d -r1.39 -r1.40 *** HTTP.pm 13 Apr 2008 03:08:09 -0000 1.39 --- HTTP.pm 17 Apr 2008 15:13:05 -0000 1.40 *************** *** 391,394 **** --- 391,416 ---- # ---------------------------------------------------------------------------- # + # escape_html_ + # + # $text Text to HTML-escaped + # + # Escape &, ", >, <, ' + # + # ---------------------------------------------------------------------------- + sub escape_html_ + { + my ( $self, $text ) = @_; + + $text =~ s/&/&/g; + $text =~ s/\"/"/g; + $text =~ s/>/>/g; + $text =~ s/</</g; + $text =~ s/'/'/g; + + return $text; + } + + # ---------------------------------------------------------------------------- + # # http_error_ - Output a standard HTTP error message # |
From: Manni H. <man...@us...> - 2008-04-17 10:45:18
|
Update of /cvsroot/popfile/engine/tests In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv9268/tests Modified Files: Tag: b0_22_2 TestHistory.tst Log Message: 1. Apply Brian's patch to speed up history cleanup. 2. Make the history tests work on my system where there are no CVS subdirs. Index: TestHistory.tst =================================================================== RCS file: /cvsroot/popfile/engine/tests/TestHistory.tst,v retrieving revision 1.12.4.1 retrieving revision 1.12.4.2 diff -C2 -d -r1.12.4.1 -r1.12.4.2 *** TestHistory.tst 6 Feb 2006 15:19:10 -0000 1.12.4.1 --- TestHistory.tst 17 Apr 2008 09:29:28 -0000 1.12.4.2 *************** *** 25,29 **** rmtree( 'corpus' ); test_assert( rec_cp( 'corpus.base', 'corpus' ) ); ! test_assert( rmtree( 'corpus/CVS' ) > 0 ); unlink 'popfile.db'; --- 25,29 ---- rmtree( 'corpus' ); test_assert( rec_cp( 'corpus.base', 'corpus' ) ); ! rmtree( 'corpus/CVS' ); unlink 'popfile.db'; *************** *** 170,179 **** sleep(2); ! # This is a message for testing evil spammer header tricks or # unusual header malformations that may end up parsed into our # history database # Please list tricks or malformations here ! # Subject: =?UNKNOWN?B??= (Should produce a "header missing" string in the # database rather than an empty string) # --- 170,179 ---- sleep(2); ! # This is a message for testing evil spammer header tricks or # unusual header malformations that may end up parsed into our # history database # Please list tricks or malformations here ! # Subject: =?UNKNOWN?B??= (Should produce a "header missing" string in the # database rather than an empty string) # |
From: Manni H. <man...@us...> - 2008-04-17 09:29:28
|
Update of /cvsroot/popfile/engine/POPFile In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv9268/POPFile Modified Files: Tag: b0_22_2 History.pm Log Message: 1. Apply Brian's patch to speed up history cleanup. 2. Make the history tests work on my system where there are no CVS subdirs. Index: History.pm =================================================================== RCS file: /cvsroot/popfile/engine/POPFile/History.pm,v retrieving revision 1.29.4.3 retrieving revision 1.29.4.4 diff -C2 -d -r1.29.4.3 -r1.29.4.4 *** History.pm 7 Feb 2008 15:36:35 -0000 1.29.4.3 --- History.pm 17 Apr 2008 09:29:28 -0000 1.29.4.4 *************** *** 346,350 **** unlink $file; ! # It's not possible that the directory for the slot file is empty # and we want to delete it so that things get cleaned up automatically --- 346,350 ---- unlink $file; ! # It's now possible that the directory for the slot file is empty # and we want to delete it so that things get cleaned up automatically *************** *** 354,368 **** while ( $depth > 0 ) { ! my @files = glob( $file . '*' ); ! ! if ( $#files == -1 ) { ! if ( !( rmdir( $file ) ) ) { ! last; ! } ! $file =~ s![a-f0-9]{2}/$!!i; ! } else { last; } ! $depth--; } --- 354,361 ---- while ( $depth > 0 ) { ! if ( !( rmdir( $file ) ) ) { last; } ! $file =~ s![a-f0-9]{2}/$!!i; $depth--; } *************** *** 588,592 **** $self->{classifier__}->{parser__}->decode_string( ${$header{$h}}[0] ); ! if ( !defined ${$header{$h}}[0] || ${$header{$h}}[0] =~ /^\s*$/ ) { if ( $h ne 'cc' ) { --- 581,585 ---- $self->{classifier__}->{parser__}->decode_string( ${$header{$h}}[0] ); ! if ( !defined ${$header{$h}}[0] || ${$header{$h}}[0] =~ /^\s*$/ ) { if ( $h ne 'cc' ) { *************** *** 596,600 **** } } ! ${$header{$h}}[0] =~ s/\0//g; ${$header{$h}}[0] = $self->db__()->quote( ${$header{$h}}[0] ); --- 589,593 ---- } } ! ${$header{$h}}[0] =~ s/\0//g; ${$header{$h}}[0] = $self->db__()->quote( ${$header{$h}}[0] ); |
From: naoki i. <am...@us...> - 2008-04-16 13:08:10
|
Update of /cvsroot/popfile/engine In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv22400 Modified Files: bayes.pl insert.pl pipe.pl Added Files: import.pl Log Message: Change Log 1. Added the UI to rename user's name UI/HTML.pm Classifier/Bayes.pm POPFile/API.pm skins/default/users-page.thtml languages/English.msg languages/Nihongo.msg tests/TestBayes.tst 2. Save the current piddir and restore in the utility scripts bayes.pl insert.pl pipe.pl 3. TestXMLRPC's child process (xmlrpc server) now terminates tests/TestXMLRPC.tst 4. Use the place holders in preparing SQL statements UI/HTML.pm POPFile/History.pm 5. Copy the global language setting to the new user's default language Classifier/Bayes.pm 6. New script to import old database to new database import.pl import.pl - import user data into the new database Usage: import.pl <old_user_dir> <user> [<newuser>] <old_user_dir> The path to the user data to import <user> The name of the user to import from Use 'admin' when upgrading from v1 <newuser> The name of the user to import into (optional) If not specified, assume newuser=user 7. Added multi user support tests tests/TestHistory.tst Current state of the test suite: TestBayesScript PASS TestBayes PASS TestConfiguration PASS * TestHistory PASS TestHTML PASS * TestHTTP PASS TestIMAP PASS TestInsertScript PASS * TestLogger PASS TestMailParse PASS TestModule PASS TestMQ PASS TestMutex PASS TestPipeScript PASS TestPOP3 PASS TestProxy PASS TestWordMangle PASS TestXMLRPC PASS * : TODO : needs to add tests for multi user support Index: pipe.pl =================================================================== RCS file: /cvsroot/popfile/engine/pipe.pl,v retrieving revision 1.17 retrieving revision 1.18 diff -C2 -d -r1.17 -r1.18 *** pipe.pl 6 Feb 2006 15:09:54 -0000 1.17 --- pipe.pl 16 Apr 2008 13:08:04 -0000 1.18 *************** *** 59,62 **** --- 59,63 ---- # Prevent the tool from finding another copy of POPFile running + my $current_piddir = $c->config_( 'piddir' ); $c->config_( 'piddir', $c->config_( 'piddir' ) . 'pipe.pl.' ); *************** *** 67,73 **** my $b = $POPFile->get_module('Classifier::Bayes'); ! my $session = $b->get_session_key( 'admin', '' ); $b->classify_and_modify( $session, \*STDIN, \*STDOUT, 1, '', 0, 1, "\n" ); $b->release_session_key( $session ); $POPFile->CORE_stop(); --- 68,76 ---- my $b = $POPFile->get_module('Classifier::Bayes'); ! my $session = $b->get_administrator_session_key(); $b->classify_and_modify( $session, \*STDIN, \*STDOUT, 1, '', 0, 1, "\n" ); + + $c->config_( 'piddir', $current_piddir ); $b->release_session_key( $session ); $POPFile->CORE_stop(); Index: bayes.pl =================================================================== RCS file: /cvsroot/popfile/engine/bayes.pl,v retrieving revision 1.41 retrieving revision 1.42 diff -C2 -d -r1.41 -r1.42 *** bayes.pl 6 Feb 2006 15:09:54 -0000 1.41 --- bayes.pl 16 Apr 2008 13:08:04 -0000 1.42 *************** *** 59,62 **** --- 59,63 ---- my $c = $POPFile->get_module('POPFile::Config'); + my $current_piddir = $c->config_( 'piddir' ); $c->config_( 'piddir', $c->config_( 'piddir' ) . 'bayes.pl.' ); *************** *** 67,71 **** my $b = $POPFile->get_module('Classifier::Bayes'); ! my $session = $b->get_session_key( 'admin', '' ); foreach my $file (@files) { --- 68,72 ---- my $b = $POPFile->get_module('Classifier::Bayes'); ! my $session = $b->get_administrator_session_key(); foreach my $file (@files) { *************** *** 87,90 **** --- 88,92 ---- } + $c->config_( 'piddir', $current_piddir ); $b->release_session_key( $session ); $POPFile->CORE_stop(); --- NEW FILE: import.pl --- #!/usr/bin/perl # ---------------------------------------------------------------------------- # # import.pl --- Imports the old database into the new database # # Copyright (c) 2001-2008 John Graham-Cumming # # This file is part of POPFile # # POPFile is free software; you can redistribute it and/or modify it # under the terms of version 2 of the GNU General Public License as # published by the Free Software Foundation. # # POPFile is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with POPFile; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # ---------------------------------------------------------------------------- use strict; use File::Copy; use lib defined($ENV{POPFILE_ROOT})?$ENV{POPFILE_ROOT}:'./'; my $code = 0; if ( $#ARGV > 0 ) { my ( $user_dir, $username, $newusername ) = @ARGV; $newusername = $username if ( !defined($newusername) ); # $user_dir = "../corpus_import"; # $username = "admin"; # $newusername = "test_dummy3"; use POPFile::Loader; my $POPFile = POPFile::Loader->new(); # $POPFile->{debug__} = 1; $POPFile->CORE_loader_init(); $POPFile->CORE_signals(); my %valid = ( 'POPFile/Database' => 1, 'POPFile/Logger' => 1, 'POPFile/MQ' => 1, 'Classifier/Bayes' => 1, 'POPFile/Configuration' => 1 ); $POPFile->CORE_load( 0, \%valid ); $POPFile->CORE_initialize(); $POPFile->CORE_config( 1 ); my $b = $POPFile->get_module( 'Classifier/Bayes' ); my $c = $POPFile->get_module( 'POPFile/Configuration' ); my $l = $POPFile->get_module( 'POPFile/Logger' ); $c->{popfile_user__} = $user_dir; $c->load_configuration(); # $l->config_( 'level' ,2 ); # Backup the database and the setting file copy ( $c->get_user_path( 'popfile.cfg' ), $c->get_user_path( 'popfile.cfg.bak' ) ); copy ( $c->get_user_path( 'popfile.db' ), $c->get_user_path( 'popfile.db.bak' ) ); # Convert the database $POPFile->CORE_start(); my $POPFile2 = POPFile::Loader->new(); # $POPFile2->{debug__} = 1; $POPFile2->CORE_loader_init(); $POPFile2->CORE_signals(); $POPFile2->CORE_load( 0, \%valid ); $POPFile2->CORE_initialize(); $POPFile2->CORE_config( 1 ); my $b2 = $POPFile2->get_module( 'Classifier/Bayes' ); my $c2 = $POPFile2->get_module( 'POPFile/Configuration' ); $POPFile2->CORE_start(); # Fetch the database version my $h = $b->db_()->prepare( "select version from popfile;" ); $h->execute; my $row = $h->fetchrow_arrayref; my $version = $row->[0]; $h->finish; my $import_db = $c->get_user_path( 'popfile.db' ); print "Import from database '$import_db'\n"; # Fetch the old user $h = $b->db_()->prepare( "select id from users where name = ?;" ); $h->execute( $username ); $row = $h->fetchrow_arrayref; my $userid = $row->[0]; $h->finish; # Create a new user my $session = $b2->get_administrator_session_key(); my ( $result, $password ) = $b2->create_user( $session, $newusername ); if ( defined($result) && ( $result eq 0 ) && defined($password ) ) { my $user_session = $b2->get_session_key( $newusername, $password ); my $newuserid = $b2->get_user_id_from_session( $user_session ); print " New user '$newusername' is created. The user's initial password is '$password'\n"; # Fetch the parameters for the user my %user_params; $h = $b->db_()->prepare( "select user_template.name, user_params.val from user_template, user_params where user_template.id = user_params.utid and user_params.userid = ?;" ); $h->execute( $userid ); while ( my $row = $h->fetchrow_arrayref ) { # Should not copy the admin flag next if ( $row->[0] eq 'GLOBAL_can_admin' ); my $parameter = $row->[0]; $parameter =~ m/^([^_]+)_(.*)$/; my $module = $1; my $config = $2; $c2->user_module_config_( $newuserid, $module, $config, $row->[1] ); } # Fetch the buckets for the user my %buckets; $b->{db_get_buckets__}->execute( $userid ); while ( my $row = $b->{db_get_buckets__}->fetchrow_arrayref ) { $buckets{$row->[0]}{id} = $row->[1]; $buckets{$row->[0]}{pseudo} = $row->[2]; } # Create buckets for the new user foreach my $bucket ( keys %buckets ) { next if ( $buckets{$bucket}{pseudo} ); $b2->create_bucket( $user_session, $bucket ); print " Created a bucket '$bucket'\n"; } # Fetch the bucket parameters for user my %bucket_params; $h = $b->db_()->prepare( "select bucket_template.name, bucket_params.val from bucket_template, bucket_params where bucket_params.btid = bucket_template.id and bucket_params.bucketid = ?;" ); foreach my $bucket ( keys %buckets ) { $h->execute( $buckets{$bucket}{id} ); while ( my $row = $h->fetchrow_arrayref ) { $b2->set_bucket_parameter( $user_session, $bucket, $row->[0], $row->[1] ); } } $h->finish; # Fetch the magnets for user my %magnets; $h = $b->db_()->prepare( "select magnet_types.mtype, magnets.val from magnet_types, magnets where magnet_types.id = magnets.mtid and magnets.bucketid = ?;" ); foreach my $bucket ( keys %buckets ) { $h->execute( $buckets{$bucket}{id} ); while ( my $row = $h->fetchrow_arrayref ) { $b2->create_magnet( $user_session, $bucket, $row->[0], $row->[1] ); } } $h->finish; # Fetch the words in the bucket $h = $b->db_()->prepare( "select words.word, matrix.times from words, matrix where words.id = matrix.wordid and matrix.bucketid = ?;" ); foreach my $bucket ( keys %buckets ) { next if ( $buckets{$bucket}{pseudo} ); # Word list $b2->{parser__}{words__} = (); $h->execute( $buckets{$bucket}{id} ); while ( my $row = $h->fetchrow_arrayref ) { $b2->{parser__}{words__}{$row->[0]} = $row->[1]; } # Add words to bucket print " Importing words into the bucket '$bucket'...\n"; $b2->add_words_to_bucket__( $user_session, $bucket, 1 ); } $h->finish; print "Imported the database successfully\n"; } else { print "Failed to create a user '$newusername'\n"; } $POPFile2->CORE_stop(); $POPFile->CORE_stop(); } else { print "import.pl - import user data into the new database\n\n"; print "Usage: import.pl <old_user_dir> <user> [<newuser>]\n"; print " <old_user_dir> The path to the user data to import\n"; print " <user> The name of the user to import from\n"; print " Use 'admin' when upgrading from v1\n"; print " <newuser> The name of the user to import into (optional)\n"; print " If not specified, assume newuser=user\n"; $code = 1; } exit $code; Index: insert.pl =================================================================== RCS file: /cvsroot/popfile/engine/insert.pl,v retrieving revision 1.42 retrieving revision 1.43 diff -C2 -d -r1.42 -r1.43 *** insert.pl 6 Apr 2008 08:27:07 -0000 1.42 --- insert.pl 16 Apr 2008 13:08:04 -0000 1.43 *************** *** 52,55 **** --- 52,56 ---- my $c = $POPFile->get_module('POPFile::Config'); + my $current_piddir = $c->config_( 'piddir' ); $c->config_( 'piddir', $c->config_( 'piddir' ) . 'insert.pl.' ); *************** *** 72,76 **** $c->{save_needed__} = 0; ! my $b = $POPFile->get_module('Classifier::Bayes'); my $session = $b->get_administrator_session_key(); --- 73,77 ---- $c->{save_needed__} = 0; ! my $b = $POPFile->get_module( 'Classifier::Bayes' ); my $session = $b->get_administrator_session_key(); *************** *** 113,116 **** --- 114,118 ---- } + $c->config_( 'piddir', $current_piddir ); $b->release_session_key( $user_session ) if ( $multiuser_mode && defined($user_session) ); $b->release_session_key( $session ); |
From: naoki i. <am...@us...> - 2008-04-16 13:08:06
|
Update of /cvsroot/popfile/engine/Classifier In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv22400/Classifier Modified Files: Bayes.pm Log Message: Change Log 1. Added the UI to rename user's name UI/HTML.pm Classifier/Bayes.pm POPFile/API.pm skins/default/users-page.thtml languages/English.msg languages/Nihongo.msg tests/TestBayes.tst 2. Save the current piddir and restore in the utility scripts bayes.pl insert.pl pipe.pl 3. TestXMLRPC's child process (xmlrpc server) now terminates tests/TestXMLRPC.tst 4. Use the place holders in preparing SQL statements UI/HTML.pm POPFile/History.pm 5. Copy the global language setting to the new user's default language Classifier/Bayes.pm 6. New script to import old database to new database import.pl import.pl - import user data into the new database Usage: import.pl <old_user_dir> <user> [<newuser>] <old_user_dir> The path to the user data to import <user> The name of the user to import from Use 'admin' when upgrading from v1 <newuser> The name of the user to import into (optional) If not specified, assume newuser=user 7. Added multi user support tests tests/TestHistory.tst Current state of the test suite: TestBayesScript PASS TestBayes PASS TestConfiguration PASS * TestHistory PASS TestHTML PASS * TestHTTP PASS TestIMAP PASS TestInsertScript PASS * TestLogger PASS TestMailParse PASS TestModule PASS TestMQ PASS TestMutex PASS TestPipeScript PASS TestPOP3 PASS TestProxy PASS TestWordMangle PASS TestXMLRPC PASS * : TODO : needs to add tests for multi user support Index: Bayes.pm =================================================================== RCS file: /cvsroot/popfile/engine/Classifier/Bayes.pm,v retrieving revision 1.365 retrieving revision 1.366 diff -C2 -d -r1.365 -r1.366 *** Bayes.pm 13 Apr 2008 03:08:09 -0000 1.365 --- Bayes.pm 16 Apr 2008 13:08:04 -0000 1.366 *************** *** 1264,1271 **** users.id = buckets.userid and magnets.bucketid = buckets.id and ! magnet_types.mtype = '$type' and magnets.mtid = magnet_types.id order by magnets.val;" ); # PROFILE BLOCK STOP ! $h->execute; while ( my $row = $h->fetchrow_arrayref ) { push @magnets, [$row->[0], $row->[1]]; --- 1264,1271 ---- users.id = buckets.userid and magnets.bucketid = buckets.id and ! magnet_types.mtype = ? and magnets.mtid = magnet_types.id order by magnets.val;" ); # PROFILE BLOCK STOP ! $h->execute( $type ); while ( my $row = $h->fetchrow_arrayref ) { push @magnets, [$row->[0], $row->[1]]; *************** *** 2919,2924 **** # If user is an admin then grab the accounts for the user requested ! my $h = $self->db_()->prepare( "select account from accounts where userid = $id;" ); ! $h->execute; my @accounts; while ( my $row = $h->fetchrow_arrayref ) { --- 2919,2924 ---- # If user is an admin then grab the accounts for the user requested ! my $h = $self->db_()->prepare( "select account from accounts where userid = ?;" ); ! $h->execute( $id ); my @accounts; while ( my $row = $h->fetchrow_arrayref ) { *************** *** 2965,2971 **** } ! $account = $self->db_()->quote( "$module:$account" ); ! my $h = $self->db_()->prepare( "insert into accounts ( userid, account ) values ( $id, $account );" ); ! if ( !defined( $h->execute ) ) { return 0; } --- 2965,2970 ---- } ! my $h = $self->db_()->prepare( "insert into accounts ( userid, account ) values ( ?, ? );" ); ! if ( !defined( $h->execute( $id, "$module:$account" ) ) ) { return 0; } *************** *** 3470,3474 **** if ( !$self->is_admin_session( $session ) ) { ! return ( undef, undef ); } --- 3469,3473 ---- if ( !$self->is_admin_session( $session ) ) { ! return undef; } *************** *** 3639,3642 **** --- 3638,3646 ---- $self->db_()->do( "insert into buckets ( name, pseudo, userid ) values ( 'unclassified', 1, $id );" ); + + # Copy the global language setting to the user's language setting + + $self->user_module_config_( $id, 'html', 'language', + $self->global_config_( 'language' ) ); } *************** *** 3668,3671 **** --- 3672,3732 ---- #---------------------------------------------------------------------------- # + # rename_user (ADMIN ONLY) + # + # Renames an existing user + # + # $session A valid session ID for an administrator + # $user The name of the user to rename + # $newname The new name for the user + # + # Returns 0 for sucess, undef for wrong permissions and 1 for newname + # already exists, 2 means tried to rename 'admin' or user does not exist + # + #---------------------------------------------------------------------------- + sub rename_user + { + my ( $self, $session, $user, $newname ) = @_; + + my $userid = $self->valid_session_key__( $session ); + return undef if ( !defined( $userid ) ); + + if ( !defined( $user ) || !defined( $newname ) ) { + return undef; + } + + # Check that this user is an administrator + + if ( !$self->is_admin_session( $session ) ) { + return undef; + } + + # Check that the user is 'admin' + + my $id = $self->get_user_id( $session, $user ); + if ( defined( $id ) ) { + if ( $id == 1 ) { + return ( 2, undef ); + } else { + if ( defined( $self->get_user_id( $session, $newname ) ) ) { + return ( 1, undef ); + } + + my $password = $self->generate_users_password(); + + my $password_hash = md5_hex( $newname . '__popfile__' . $password ); + my $h = $self->db_()->prepare( "update users set name = ?, password = ? where id = ?" ); + $h->execute( $newname, $password_hash, $id ); + $h->finish; + + return ( 0, $password ); + } + } + + return ( 2, undef ); + } + + + #---------------------------------------------------------------------------- + # # remove_user (ADMIN ONLY) # *************** *** 3984,3988 **** my $userid = $self->valid_session_key__( $session ); ! return undef if ( !defined( $userid ) ); # Check that this user is an administrator --- 4045,4049 ---- my $userid = $self->valid_session_key__( $session ); ! return undef if ( !defined( $userid ) || !defined( $user ) ); # Check that this user is an administrator *************** *** 3992,3998 **** } ! 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 ) { $h->finish; --- 4053,4058 ---- } ! my $h = $self->db_()->prepare( "select id from users where name = ?;" ); ! $h->execute( $user ); if ( my $row = $h->fetchrow_arrayref ) { $h->finish; *************** *** 4093,4098 **** return undef if ( !defined( $userid ) ); ! my $h = $self->db_()->prepare( "select name from users where id = $id;" ); ! $h->execute; if ( my $row = $h->fetchrow_arrayref ) { $h->finish; --- 4153,4158 ---- return undef if ( !defined( $userid ) ); ! my $h = $self->db_()->prepare( "select name from users where id = ?;" ); ! $h->execute( $id ); if ( my $row = $h->fetchrow_arrayref ) { $h->finish; *************** *** 4505,4513 **** 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; while ( my $row = $h->fetchrow_arrayref ) { push @result, ($row->[0]); --- 4565,4573 ---- where magnet_types.id = magnets.mtid and magnets.bucketid = buckets.id and ! buckets.id = ? group by magnet_types.mtype order by magnet_types.mtype;" ); ! $h->execute( $bucketid ); while ( my $row = $h->fetchrow_arrayref ) { push @result, ($row->[0]); *************** *** 4589,4595 **** magnets.id != 0 and magnet_types.id = magnets.mtid and ! magnet_types.mtype = '$type' order by magnets.val;" ); ! $h->execute; while ( my $row = $h->fetchrow_arrayref ) { push @result, ($row->[0]); --- 4649,4655 ---- magnets.id != 0 and magnet_types.id = magnets.mtid and ! magnet_types.mtype = ? order by magnets.val;" ); ! $h->execute( $type ); while ( my $row = $h->fetchrow_arrayref ) { push @result, ($row->[0]); *************** *** 4650,4654 **** my %result; ! my $h = $self->db_()->prepare( "select magnet_types.mtype, magnet_types.header from magnet_types order by mtype;" ); $h->execute; --- 4710,4716 ---- my %result; ! my $h = $self->db_()->prepare( ! "select magnet_types.mtype, magnet_types.header ! from magnet_types order by mtype;" ); $h->execute; |
From: naoki i. <am...@us...> - 2008-04-16 13:08:03
|
Update of /cvsroot/popfile/engine/tests In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv22400/tests Modified Files: TestBayes.tst TestHistory.tst TestXMLRPC.tst Log Message: Change Log 1. Added the UI to rename user's name UI/HTML.pm Classifier/Bayes.pm POPFile/API.pm skins/default/users-page.thtml languages/English.msg languages/Nihongo.msg tests/TestBayes.tst 2. Save the current piddir and restore in the utility scripts bayes.pl insert.pl pipe.pl 3. TestXMLRPC's child process (xmlrpc server) now terminates tests/TestXMLRPC.tst 4. Use the place holders in preparing SQL statements UI/HTML.pm POPFile/History.pm 5. Copy the global language setting to the new user's default language Classifier/Bayes.pm 6. New script to import old database to new database import.pl import.pl - import user data into the new database Usage: import.pl <old_user_dir> <user> [<newuser>] <old_user_dir> The path to the user data to import <user> The name of the user to import from Use 'admin' when upgrading from v1 <newuser> The name of the user to import into (optional) If not specified, assume newuser=user 7. Added multi user support tests tests/TestHistory.tst Current state of the test suite: TestBayesScript PASS TestBayes PASS TestConfiguration PASS * TestHistory PASS TestHTML PASS * TestHTTP PASS TestIMAP PASS TestInsertScript PASS * TestLogger PASS TestMailParse PASS TestModule PASS TestMQ PASS TestMutex PASS TestPipeScript PASS TestPOP3 PASS TestProxy PASS TestWordMangle PASS TestXMLRPC PASS * : TODO : needs to add tests for multi user support Index: TestHistory.tst =================================================================== RCS file: /cvsroot/popfile/engine/tests/TestHistory.tst,v retrieving revision 1.18 retrieving revision 1.19 diff -C2 -d -r1.18 -r1.19 *** TestHistory.tst 9 Apr 2008 17:20:48 -0000 1.18 --- TestHistory.tst 16 Apr 2008 13:08:05 -0000 1.19 *************** *** 22,25 **** --- 22,27 ---- # --------------------------------------------------------------------------- + use strict; + rmtree( 'messages' ); rmtree( 'corpus' ); *************** *** 63,107 **** my $session = $h->classifier_()->get_administrator_session_key(); ! my ( $slot, $file ) = $h->reserve_slot( $session, 1 ); ! test_assert( defined( $slot ) ); ! test_assert( !( -e $file ) ); ! test_assert_equal( $file, $h->get_slot_file( $slot ) ); ! my $path = $file; ! $path =~ s/popfile..\.msg//; ! test_assert( ( -e $path ) ); ! test_assert( ( -d $path ) ); ! open FILE, ">$file"; ! print FILE "test\n"; ! close FILE; ! # Check that there is an entry and that it has not yet ! # been committed ! my @result = $h->db_()->selectrow_array( "select committed from history where id = $slot;" ); ! test_assert_equal( $#result, 0 ); ! test_assert( $result[0] != 1 ); ! # Check that release_slot removes the entry from the database ! # and deletes the file, and does clean up the directory ! $h->release_slot( $slot ); ! test_assert( !( -e $file ) ); ! test_assert( !( -e $path ) ); ! @result = $h->db_()->selectrow_array( "select committed from history where id = $slot;" ); ! test_assert_equal( $#result, -1 ); ! # Now try actually adding an element to the history. Reserve a slot ! # then commit it and call service to get it added. Ensure that the ! # slot is now committed and has the right fields ! ( $slot, $file ) = $h->reserve_slot( $session, 1 ); ! open FILE, ">$file"; ! print FILE <<EOF; Received: Today From: John Graham-Cumming <nospam\@jgc.org> --- 65,154 ---- my $session = $h->classifier_()->get_administrator_session_key(); ! history_test( $session ); ! # Check that the directories are gone too ! test_assert( !( -e 'messages/00' ) ); ! test_assert( !( -e 'messages/00/00' ) ); ! test_assert( !( -e 'messages/00/00/00' ) ); ! # Multi user mode tests ! $h->global_config_( 'single_user', 0 ); ! my ( $result, $password ) = $h->classifier_()->create_user( $session, 'test' ); ! test_assert( defined( $result ) ); ! test_assert_equal( $result, 0 ); ! test_assert( defined( $password ) ); ! my $user_session = $h->classifier_()->get_session_key( 'test', $password ); ! test_assert( defined( $user_session ) ); ! $h->classifier_()->create_bucket( $user_session, 'spam' ); ! $h->classifier_()->create_bucket( $user_session, 'personal' ); ! $h->classifier_()->create_bucket( $user_session, 'other' ); ! history_test( $user_session ); ! $h->classifier_()->release_session_key( $user_session ); ! $h->classifier_()->release_session_key( $session ); ! $POPFile->CORE_stop(); ! 1; ! ! sub history_test ! { ! my ( $session ) = @_; ! ! my $userid = $h->classifier_()->get_user_id_from_session( $session ); ! test_assert( defined( $userid ) ); ! ! my %bucketids; ! $bucketids{spam} = $h->classifier_()->get_bucket_id( $session, 'spam' ); ! $bucketids{personal} = $h->classifier_()->get_bucket_id( $session, 'personal' ); ! ! my ( $slot, $file ) = $h->reserve_slot( $session ); ! ! test_assert( defined( $slot ) ); ! test_assert( !( -e $file ) ); ! test_assert_equal( $file, $h->get_slot_file( $slot ) ); ! ! my $path = $file; ! $path =~ s/popfile..\.msg//; ! test_assert( ( -e $path ) ); ! test_assert( ( -d $path ) ); ! ! open FILE, ">$file"; ! print FILE "test\n"; ! close FILE; ! ! # Check that there is an entry and that it has not yet ! # been committed ! ! my @result = $h->db_()->selectrow_array( "select committed from history where id = $slot;" ); ! test_assert_equal( $#result, 0 ); ! test_assert( $result[0] != 1 ); ! ! # Check that release_slot removes the entry from the database ! # and deletes the file, and does clean up the directory ! ! $h->release_slot( $slot ); ! ! test_assert( !( -e $file ) ); ! test_assert( !( -e $path ) ); ! ! @result = $h->db_()->selectrow_array( "select committed from history where id = $slot;" ); ! test_assert_equal( $#result, -1 ); ! ! # Now try actually adding an element to the history. Reserve a slot ! # then commit it and call service to get it added. Ensure that the ! # slot is now committed and has the right fields ! ! ( $slot, $file ) = $h->reserve_slot( $session ); ! ! open FILE, ">$file"; ! print FILE <<EOF; Received: Today From: John Graham-Cumming <nospam\@jgc.org> *************** *** 114,126 **** This is the message body EOF ! close FILE; ! my $size = -s $file; ! my $slot1 = $slot; ! sleep(2); ! ( $slot, $file ) = $h->reserve_slot( $session, 1 ); ! open FILE, ">$file"; print FILE <<EOF; From: Evil Spammer <nospam\@jgc.org> --- 161,173 ---- This is the message body EOF ! close FILE; ! my $size = -s $file; ! my $slot1; ! sleep(2); ! ( $slot1, $file ) = $h->reserve_slot( $session ); ! open FILE, ">$file"; print FILE <<EOF; From: Evil Spammer <nospam\@jgc.org> *************** *** 132,159 **** This is the message body EOF ! close FILE; ! my $size2 = -s $file; ! sleep(2); ! # This is a message for testing evil spammer header tricks or ! # unusual header malformations that may end up parsed into our ! # history database ! # Please list tricks or malformations here ! # Subject: =?UNKNOWN?B??= (Should produce a "header missing" string in the ! # database rather than an empty string) ! # ! # To: =?utf-8?q?Do you covet to perc?= ! # =?utf-8?q?eive precious follo?= ! # =?utf-8?q?wing day ??= ! # ! # (This should decode to "Do you covet to perceive precious following day ?" ! my $slot2; ! ( $slot2, $file ) = $h->reserve_slot( $session, 1 ); ! open FILE, ">$file"; ! print FILE <<EOF; From: Evil Spammer who does tricks <nospam\@jgc.org> To: =?utf-8?q?Do you covet to perc?= --- 179,206 ---- This is the message body EOF ! close FILE; ! my $size2 = -s $file; ! sleep(2); ! # This is a message for testing evil spammer header tricks or ! # unusual header malformations that may end up parsed into our ! # history database ! # Please list tricks or malformations here ! # Subject: =?UNKNOWN?B??= (Should produce a "header missing" string in the ! # database rather than an empty string) ! # ! # To: =?utf-8?q?Do you covet to perc?= ! # =?utf-8?q?eive precious follo?= ! # =?utf-8?q?wing day ??= ! # ! # (This should decode to "Do you covet to perceive precious following day ?" ! my $slot2; ! ( $slot2, $file ) = $h->reserve_slot( $session ); ! open FILE, ">$file"; ! print FILE <<EOF; From: Evil Spammer who does tricks <nospam\@jgc.org> To: =?utf-8?q?Do you covet to perc?= *************** *** 166,424 **** This is the message body EOF ! close FILE; ! my $size3 = -s $file; ! $h->commit_slot( $session, $slot, 'spam', 0 ); ! $POPFile->CORE_service( 1 ); ! $h->commit_slot( $session, $slot1, 'personal', 0 ); ! $POPFile->CORE_service( 1 ); ! $h->commit_slot( $session, $slot2, 'spam', 0 ); ! $POPFile->CORE_service( 1 ); ! $POPFile->CORE_service( 1 ); ! $POPFile->CORE_service( 1 ); ! # Check that the message hash mechanism works ! my $hash = $h->get_message_hash( '1234', ! 'Sun, 25 Jul 2020 03:46:32 -0700', ! 're: his is the subject line', ! 'Today' ); ! test_assert_equal( $hash, '79499c2f056a026ef7bb4ab6c1f51a18' ); ! test_assert_equal( $slot1, $h->get_slot_from_hash( $hash ) ); ! # Check that the three messages were correctly inserted into ! # the database ! @result = $h->db_()->selectrow_array( "select * from history where id = 1;" ); ! test_assert_equal( $#result, 17 ); ! test_assert_equal( $result[0], 1 ); # id ! test_assert_equal( $result[1], 1 ); # userid ! test_assert_equal( $result[2], 1 ); # committed ! test_assert_equal( $result[3], 'John Graham-Cumming <no...@jg...>' ); # From ! test_assert_equal( $result[4], 'Everyone <nos...@jg...>' ); # To ! test_assert_equal( $result[5], 'People <no-...@jg...>' ); # Cc ! test_assert_equal( $result[6], 're: his is the subject line' ); # Subject ! test_assert_equal( $result[7], 1595673992 ); ! test_assert_equal( $result[10], 3 ); # bucketid ! test_assert_equal( $result[11], 0 ); # usedtobe ! test_assert_equal( $result[13], 'john graham-cumming no...@jg...' ); ! test_assert_equal( $result[14], 'everyone nos...@jg...' ); # To ! test_assert_equal( $result[15], 'people no-...@jg...' ); # Cc ! test_assert_equal( $result[16], 'his is the subject line' ); # Subject ! test_assert_equal( $result[17], $size ); # size ! @result = $h->db_()->selectrow_array( "select * from history where id = 2;" ); ! test_assert_equal( $#result, 17 ); ! test_assert_equal( $result[0], 2 ); # id ! test_assert_equal( $result[1], 1 ); # userid ! test_assert_equal( $result[2], 1 ); # committed ! test_assert_equal( $result[3], 'Evil Spammer <no...@jg...>' ); # From ! test_assert_equal( $result[4], 'Someone Else <nos...@jg...>' ); # To ! test_assert_equal( $result[5], '' ); # Cc ! test_assert_equal( $result[6], 'Hot Teen Mortgage Enlargers' ); # Subject ! test_assert_equal( $result[7], 1595587592 ); ! test_assert_equal( $result[10], 4 ); # bucketid ! test_assert_equal( $result[11], 0 ); # usedtobe ! test_assert_equal( $result[13], 'evil spammer no...@jg...' ); # From ! test_assert_equal( $result[14], 'someone else nos...@jg...' ); ! test_assert_equal( $result[15], '' ); # Cc ! test_assert_equal( $result[16], 'hot teen mortgage enlargers' ); # Subject ! test_assert_equal( $result[17], $size2 ); # size ! @result = $h->db_()->selectrow_array( "select * from history where id = 3;" ); ! test_assert_equal( $#result, 17 ); ! test_assert_equal( $result[0], 3 ); # id ! test_assert_equal( $result[1], 1 ); # userid ! test_assert_equal( $result[2], 1 ); # committed ! test_assert_equal( $result[3], 'Evil Spammer who does tricks <no...@jg...>' ); # From ! test_assert_equal( $result[4], 'Do you covet to perceive precious following day ?' ); # To ! test_assert_equal( $result[5], '' ); # Cc ! test_assert_equal( $result[6], '<subject header missing>' ); # Subject ! test_assert_equal( $result[7], 1595587592 ); ! test_assert_equal( $result[10], 4 ); # bucketid ! test_assert_equal( $result[11], 0 ); # usedtobe ! test_assert_equal( $result[13], 'evil spammer who does tricks no...@jg...' ); # From ! test_assert_equal( $result[14], 'do you covet to perceive precious following day ?' ); ! test_assert_equal( $result[15], '' ); # Cc ! test_assert_equal( $result[16], '' ); # subject ! test_assert_equal( $result[17], $size3 ); # size ! # Try a reclassification and undo ! $h->change_slot_classification( 1, 'spam', $session ); ! my @fields = $h->get_slot_fields( 1, $session ); ! test_assert_equal( $fields[10], 4 ); ! test_assert_equal( $fields[9], 3 ); ! test_assert_equal( $fields[8], 'spam' ); ! $h->revert_slot_classification( 1, $session ); ! @fields = $h->get_slot_fields( 1, $session ); ! test_assert_equal( $fields[10], 3 ); ! test_assert_equal( $fields[9], 0 ); ! test_assert_equal( $fields[8], 'personal' ); ! # Check is_valid_slot ! test_assert( $h->is_valid_slot( 1, $session ) ); ! test_assert( !$h->is_valid_slot( 100, $session ) ); ! # Now that we've got some data in the history test the query ! # interface ! my $q = $h->start_query( $session ); ! test_assert( defined( $q ) ); ! test_assert_regexp( $q, '[0-9a-f]{8}' ); ! test_assert( defined( $h->{queries__}{$q} ) ); ! # Unsorted returns in inserted order ! $h->set_query( $q, '', '', '', 0 ); ! test_assert_equal( $h->get_query_size( $q ), 3 ); ! my @rows = $h->get_query_rows( $q, 1, 3 ); ! test_assert_equal( $#rows, 2 ); ! test_assert_equal( $rows[0][1], 'Evil Spammer who does tricks <no...@jg...>' ); ! test_assert_equal( $rows[1][1], 'Evil Spammer <no...@jg...>' ); ! test_assert_equal( $rows[2][1], 'John Graham-Cumming <no...@jg...>' ); ! my @slot_row = $h->get_slot_fields( $rows[0][0], $session ); ! test_assert_equal( join(':',@{$rows[0]}), join(':',@slot_row) ); ! # Start with the most basic, give me everything query ! # sorted by from/to address ! $h->set_query( $q, '', '', 'from', 0 ); ! test_assert_equal( $h->get_query_size( $q ), 3 ); ! @rows = $h->get_query_rows( $q, 1, 3 ); ! test_assert_equal( $#rows, 2 ); ! test_assert_equal( $rows[0][1], 'Evil Spammer <no...@jg...>' ); ! test_assert_equal( $rows[1][1], 'Evil Spammer who does tricks <no...@jg...>' ); ! test_assert_equal( $rows[2][1], 'John Graham-Cumming <no...@jg...>' ); ! $h->set_query( $q, '', '', 'to' ,0 ); ! @rows = $h->get_query_rows( $q, 1, 3 ); ! test_assert_equal( $h->get_query_size( $q ), 3 ); ! test_assert_equal( $#rows, 2 ); ! test_assert_equal( $rows[0][1], 'Evil Spammer who does tricks <no...@jg...>' ); ! test_assert_equal( $rows[1][1], 'John Graham-Cumming <no...@jg...>' ); ! test_assert_equal( $rows[2][1], 'Evil Spammer <no...@jg...>' ); ! $h->set_query( $q, '', '', 'from', 0 ); ! test_assert_equal( $h->get_query_size( $q ), 3 ); ! @rows = $h->get_query_rows( $q, 1, 1 ); ! test_assert_equal( $#rows, 0 ); ! test_assert_equal( $rows[0][1], 'Evil Spammer <no...@jg...>' ); ! $h->set_query( $q, '', '', 'to', 0 ); ! test_assert_equal( $h->get_query_size( $q ), 3 ); ! @rows = $h->get_query_rows( $q, 2, 1 ); ! test_assert_equal( $#rows, 0 ); ! test_assert_equal( $rows[0][1], 'John Graham-Cumming <no...@jg...>' ); ! $h->set_query( $q, '', '', 'subject', 0 ); ! test_assert_equal( $h->get_query_size( $q ), 3 ); ! @rows = $h->get_query_rows( $q, 1, 3 ); ! test_assert_equal( $#rows, 2 ); ! test_assert_equal( $rows[0][1], 'Evil Spammer who does tricks <no...@jg...>' ); ! test_assert_equal( $rows[1][1], 'John Graham-Cumming <no...@jg...>' ); ! test_assert_equal( $rows[2][1], 'Evil Spammer <no...@jg...>' ); ! # Now try unsorted and filtered on a specific bucket ! $h->set_query( $q, 'spam', '', '', 0 ); ! test_assert_equal( $h->get_query_size( $q ), 2 ); ! @rows = $h->get_query_rows( $q, 1, 1 ); ! test_assert_equal( $#rows, 0 ); ! test_assert_equal( $rows[0][1], 'Evil Spammer who does tricks <no...@jg...>' ); ! test_assert_equal( $rows[0][8], 'spam' ); ! $h->set_query( $q, 'personal', '', '', 0 ); ! test_assert_equal( $h->get_query_size( $q ), 1 ); ! @rows = $h->get_query_rows( $q, 1, 1 ); ! test_assert_equal( $#rows, 0 ); ! test_assert_equal( $rows[0][1], 'John Graham-Cumming <no...@jg...>' ); ! test_assert_equal( $rows[0][8], 'personal' ); ! # Try a negated bucket filter ! $h->set_query( $q, 'personal', '', '', 1 ); ! test_assert_equal( $h->get_query_size( $q ), 2 ); ! @rows = $h->get_query_rows( $q, 1, 2 ); ! test_assert_equal( $#rows, 1 ); ! test_assert_equal( $rows[0][1], 'Evil Spammer who does tricks <no...@jg...>' ); ! test_assert_equal( $rows[0][8], 'spam' ); ! test_assert_equal( $rows[1][1], 'Evil Spammer <no...@jg...>' ); ! test_assert_equal( $rows[1][8], 'spam' ); ! # Now try a search ! $h->set_query( $q, '', 'john', '', 0 ); ! test_assert_equal( $h->get_query_size( $q ), 1 ); ! @rows = $h->get_query_rows( $q, 1, 1 ); ! test_assert_equal( $#rows, 0 ); ! test_assert_equal( $rows[0][1], 'John Graham-Cumming <no...@jg...>' ); ! $h->set_query( $q, '', 's', '', 0 ); ! test_assert_equal( $h->get_query_size( $q ), 3 ); ! @rows = $h->get_query_rows( $q, 1, 3 ); ! test_assert_equal( $#rows, 2 ); ! test_assert_equal( $rows[0][1], 'Evil Spammer who does tricks <no...@jg...>' ); ! test_assert_equal( $rows[1][1], 'Evil Spammer <no...@jg...>' ); ! test_assert_equal( $rows[2][1], 'John Graham-Cumming <no...@jg...>' ); ! $h->set_query( $q, '', 'subject line', '', 0 ); ! test_assert_equal( $h->get_query_size( $q ), 1 ); ! @rows = $h->get_query_rows( $q, 1, 1 ); ! test_assert_equal( $#rows, 0 ); ! test_assert_equal( $rows[0][1], 'John Graham-Cumming <no...@jg...>' ); ! # Try negated search ! $h->set_query( $q, '', 's', '', 1 ); ! test_assert_equal( $h->get_query_size( $q ), 0 ); ! $h->set_query( $q, '', 'john', '', 1 ); ! test_assert_equal( $h->get_query_size( $q ), 2 ); ! @rows = $h->get_query_rows( $q, 1, 2 ); ! test_assert_equal( $#rows, 1 ); ! test_assert_equal( $rows[0][1], 'Evil Spammer who does tricks <no...@jg...>' ); ! test_assert_equal( $rows[1][1], 'Evil Spammer <no...@jg...>' ); ! # Now try cases that return nothing ! $h->set_query( $q, '', 'zzz', '', 0 ); ! test_assert_equal( $h->get_query_size( $q ), 0 ); ! $h->set_query( $q, '', 'zzz', '', 1 ); ! test_assert_equal( $h->get_query_size( $q ), 3 ); ! $h->set_query( $q, 'other', '', '', 0 ); ! test_assert_equal( $h->get_query_size( $q ), 0 ); ! $h->set_query( $q, 'other', '', '', 1 ); ! test_assert_equal( $h->get_query_size( $q ), 3 ); ! # Make sure that we don't requery unless necessary ! $h->set_query( $q, '', 's', '', 0 ); ! test_assert_equal( $h->get_query_size( $q ), 3 ); ! @rows = $h->get_query_rows( $q, 1, 2 ); ! $h->set_query( $q, '', 's', '', 0 ); ! test_assert_equal( $#{$h->{queries__}{$q}{cache}}, 1 ); ! $h->set_query( $q, '', 't', '', 0 ); ! test_assert_equal( $#{$h->{queries__}{$q}{cache}}, -1 ); ! # Make sure that we can upgrade an existing file with a specific ! # classification ! open MSG, '>' . $h->get_user_path_( $h->global_config_( 'msgdir' ) . 'popfile1=1.msg' ); ! print MSG <<EOF; From: Another Person To: Someone Else --- 213,472 ---- This is the message body EOF ! close FILE; ! my $size3 = -s $file; ! $h->commit_slot( $session, $slot1, 'spam', 0 ); ! $POPFile->CORE_service( 1 ); ! $h->commit_slot( $session, $slot, 'personal', 0 ); ! $POPFile->CORE_service( 1 ); ! $h->commit_slot( $session, $slot2, 'spam', 0 ); ! $POPFile->CORE_service( 1 ); ! $POPFile->CORE_service( 1 ); ! $POPFile->CORE_service( 1 ); ! # Check that the message hash mechanism works ! my $hash = $h->get_message_hash( '1234', ! 'Sun, 25 Jul 2020 03:46:32 -0700', ! 're: his is the subject line', ! 'Today' ); ! test_assert_equal( $hash, '79499c2f056a026ef7bb4ab6c1f51a18' ); ! test_assert_equal( $slot, $h->get_slot_from_hash( $hash ) ); ! # Check that the three messages were correctly inserted into ! # the database ! @result = $h->db_()->selectrow_array( "select * from history where id = $slot;" ); ! test_assert_equal( $#result, 17 ); ! test_assert_equal( $result[0], $slot ); # id ! test_assert_equal( $result[1], $userid ); # userid ! test_assert_equal( $result[2], 1 ); # committed ! test_assert_equal( $result[3], 'John Graham-Cumming <no...@jg...>' ); # From ! test_assert_equal( $result[4], 'Everyone <nos...@jg...>' ); # To ! test_assert_equal( $result[5], 'People <no-...@jg...>' ); # Cc ! test_assert_equal( $result[6], 're: his is the subject line' ); # Subject ! test_assert_equal( $result[7], 1595673992 ); ! test_assert_equal( $result[10], $bucketids{personal} ); # bucketid ! test_assert_equal( $result[11], 0 ); # usedtobe ! test_assert_equal( $result[13], 'john graham-cumming no...@jg...' ); ! test_assert_equal( $result[14], 'everyone nos...@jg...' ); # To ! test_assert_equal( $result[15], 'people no-...@jg...' ); # Cc ! test_assert_equal( $result[16], 'his is the subject line' ); # Subject ! test_assert_equal( $result[17], $size ); # size ! @result = $h->db_()->selectrow_array( "select * from history where id = $slot1;" ); ! test_assert_equal( $#result, 17 ); ! test_assert_equal( $result[0], $slot1 ); # id ! test_assert_equal( $result[1], $userid ); # userid ! test_assert_equal( $result[2], 1 ); # committed ! test_assert_equal( $result[3], 'Evil Spammer <no...@jg...>' ); # From ! test_assert_equal( $result[4], 'Someone Else <nos...@jg...>' ); # To ! test_assert_equal( $result[5], '' ); # Cc ! test_assert_equal( $result[6], 'Hot Teen Mortgage Enlargers' ); # Subject ! test_assert_equal( $result[7], 1595587592 ); ! test_assert_equal( $result[10], $bucketids{spam} ); # bucketid ! test_assert_equal( $result[11], 0 ); # usedtobe ! test_assert_equal( $result[13], 'evil spammer no...@jg...' ); # From ! test_assert_equal( $result[14], 'someone else nos...@jg...' ); ! test_assert_equal( $result[15], '' ); # Cc ! test_assert_equal( $result[16], 'hot teen mortgage enlargers' ); # Subject ! test_assert_equal( $result[17], $size2 ); # size ! @result = $h->db_()->selectrow_array( "select * from history where id = $slot2;" ); ! test_assert_equal( $#result, 17 ); ! test_assert_equal( $result[0], $slot2 ); # id ! test_assert_equal( $result[1], $userid ); # userid ! test_assert_equal( $result[2], 1 ); # committed ! test_assert_equal( $result[3], 'Evil Spammer who does tricks <no...@jg...>' ); # From ! test_assert_equal( $result[4], 'Do you covet to perceive precious following day ?' ); # To ! test_assert_equal( $result[5], '' ); # Cc ! test_assert_equal( $result[6], '<subject header missing>' ); # Subject ! test_assert_equal( $result[7], 1595587592 ); ! test_assert_equal( $result[10], $bucketids{spam} ); # bucketid ! test_assert_equal( $result[11], 0 ); # usedtobe ! test_assert_equal( $result[13], 'evil spammer who does tricks no...@jg...' ); # From ! test_assert_equal( $result[14], 'do you covet to perceive precious following day ?' ); ! test_assert_equal( $result[15], '' ); # Cc ! test_assert_equal( $result[16], '' ); # subject ! test_assert_equal( $result[17], $size3 ); # size ! # Try a reclassification and undo ! $h->change_slot_classification( 1, 'spam', $session ); ! my @fields = $h->get_slot_fields( 1, $session ); ! test_assert_equal( $fields[10], $bucketids{spam} ); ! test_assert_equal( $fields[9], $bucketids{personal} ); ! test_assert_equal( $fields[8], 'spam' ); ! $h->revert_slot_classification( 1, $session ); ! @fields = $h->get_slot_fields( 1, $session ); ! test_assert_equal( $fields[10], $bucketids{personal} ); ! test_assert_equal( $fields[9], 0 ); ! test_assert_equal( $fields[8], 'personal' ); ! # Check is_valid_slot ! test_assert( $h->is_valid_slot( 1, $session ) ); ! test_assert( !$h->is_valid_slot( 100, $session ) ); ! # Now that we've got some data in the history test the query ! # interface ! my $q = $h->start_query( $session ); ! test_assert( defined( $q ) ); ! test_assert_regexp( $q, '[0-9a-f]{8}' ); ! test_assert( defined( $h->{queries__}{$q} ) ); ! # Unsorted returns in inserted order ! $h->set_query( $q, '', '', '', 0 ); ! test_assert_equal( $h->get_query_size( $q ), 3 ); ! my @rows = $h->get_query_rows( $q, 1, 3 ); ! test_assert_equal( $#rows, 2 ); ! test_assert_equal( $rows[0][1], 'Evil Spammer who does tricks <no...@jg...>' ); ! test_assert_equal( $rows[1][1], 'Evil Spammer <no...@jg...>' ); ! test_assert_equal( $rows[2][1], 'John Graham-Cumming <no...@jg...>' ); ! my @slot_row = $h->get_slot_fields( $rows[0][0], $session ); ! test_assert_equal( join(':',@{$rows[0]}), join(':',@slot_row) ); ! # Start with the most basic, give me everything query ! # sorted by from/to address ! $h->set_query( $q, '', '', 'from', 0 ); ! test_assert_equal( $h->get_query_size( $q ), 3 ); ! @rows = $h->get_query_rows( $q, 1, 3 ); ! test_assert_equal( $#rows, 2 ); ! test_assert_equal( $rows[0][1], 'Evil Spammer <no...@jg...>' ); ! test_assert_equal( $rows[1][1], 'Evil Spammer who does tricks <no...@jg...>' ); ! test_assert_equal( $rows[2][1], 'John Graham-Cumming <no...@jg...>' ); ! $h->set_query( $q, '', '', 'to' ,0 ); ! @rows = $h->get_query_rows( $q, 1, 3 ); ! test_assert_equal( $h->get_query_size( $q ), 3 ); ! test_assert_equal( $#rows, 2 ); ! test_assert_equal( $rows[0][1], 'Evil Spammer who does tricks <no...@jg...>' ); ! test_assert_equal( $rows[1][1], 'John Graham-Cumming <no...@jg...>' ); ! test_assert_equal( $rows[2][1], 'Evil Spammer <no...@jg...>' ); ! $h->set_query( $q, '', '', 'from', 0 ); ! test_assert_equal( $h->get_query_size( $q ), 3 ); ! @rows = $h->get_query_rows( $q, 1, 1 ); ! test_assert_equal( $#rows, 0 ); ! test_assert_equal( $rows[0][1], 'Evil Spammer <no...@jg...>' ); ! $h->set_query( $q, '', '', 'to', 0 ); ! test_assert_equal( $h->get_query_size( $q ), 3 ); ! @rows = $h->get_query_rows( $q, 2, 1 ); ! test_assert_equal( $#rows, 0 ); ! test_assert_equal( $rows[0][1], 'John Graham-Cumming <no...@jg...>' ); ! $h->set_query( $q, '', '', 'subject', 0 ); ! test_assert_equal( $h->get_query_size( $q ), 3 ); ! @rows = $h->get_query_rows( $q, 1, 3 ); ! test_assert_equal( $#rows, 2 ); ! test_assert_equal( $rows[0][1], 'Evil Spammer who does tricks <no...@jg...>' ); ! test_assert_equal( $rows[1][1], 'John Graham-Cumming <no...@jg...>' ); ! test_assert_equal( $rows[2][1], 'Evil Spammer <no...@jg...>' ); ! # Now try unsorted and filtered on a specific bucket ! $h->set_query( $q, 'spam', '', '', 0 ); ! test_assert_equal( $h->get_query_size( $q ), 2 ); ! @rows = $h->get_query_rows( $q, 1, 1 ); ! test_assert_equal( $#rows, 0 ); ! test_assert_equal( $rows[0][1], 'Evil Spammer who does tricks <no...@jg...>' ); ! test_assert_equal( $rows[0][8], 'spam' ); ! $h->set_query( $q, 'personal', '', '', 0 ); ! test_assert_equal( $h->get_query_size( $q ), 1 ); ! @rows = $h->get_query_rows( $q, 1, 1 ); ! test_assert_equal( $#rows, 0 ); ! test_assert_equal( $rows[0][1], 'John Graham-Cumming <no...@jg...>' ); ! test_assert_equal( $rows[0][8], 'personal' ); ! # Try a negated bucket filter ! $h->set_query( $q, 'personal', '', '', 1 ); ! test_assert_equal( $h->get_query_size( $q ), 2 ); ! @rows = $h->get_query_rows( $q, 1, 2 ); ! test_assert_equal( $#rows, 1 ); ! test_assert_equal( $rows[0][1], 'Evil Spammer who does tricks <no...@jg...>' ); ! test_assert_equal( $rows[0][8], 'spam' ); ! test_assert_equal( $rows[1][1], 'Evil Spammer <no...@jg...>' ); ! test_assert_equal( $rows[1][8], 'spam' ); ! # Now try a search ! $h->set_query( $q, '', 'john', '', 0 ); ! test_assert_equal( $h->get_query_size( $q ), 1 ); ! @rows = $h->get_query_rows( $q, 1, 1 ); ! test_assert_equal( $#rows, 0 ); ! test_assert_equal( $rows[0][1], 'John Graham-Cumming <no...@jg...>' ); ! $h->set_query( $q, '', 's', '', 0 ); ! test_assert_equal( $h->get_query_size( $q ), 3 ); ! @rows = $h->get_query_rows( $q, 1, 3 ); ! test_assert_equal( $#rows, 2 ); ! test_assert_equal( $rows[0][1], 'Evil Spammer who does tricks <no...@jg...>' ); ! test_assert_equal( $rows[1][1], 'Evil Spammer <no...@jg...>' ); ! test_assert_equal( $rows[2][1], 'John Graham-Cumming <no...@jg...>' ); ! $h->set_query( $q, '', 'subject line', '', 0 ); ! test_assert_equal( $h->get_query_size( $q ), 1 ); ! @rows = $h->get_query_rows( $q, 1, 1 ); ! test_assert_equal( $#rows, 0 ); ! test_assert_equal( $rows[0][1], 'John Graham-Cumming <no...@jg...>' ); ! # Try negated search ! $h->set_query( $q, '', 's', '', 1 ); ! test_assert_equal( $h->get_query_size( $q ), 0 ); ! $h->set_query( $q, '', 'john', '', 1 ); ! test_assert_equal( $h->get_query_size( $q ), 2 ); ! @rows = $h->get_query_rows( $q, 1, 2 ); ! test_assert_equal( $#rows, 1 ); ! test_assert_equal( $rows[0][1], 'Evil Spammer who does tricks <no...@jg...>' ); ! test_assert_equal( $rows[1][1], 'Evil Spammer <no...@jg...>' ); ! # Now try cases that return nothing ! $h->set_query( $q, '', 'zzz', '', 0 ); ! test_assert_equal( $h->get_query_size( $q ), 0 ); ! $h->set_query( $q, '', 'zzz', '', 1 ); ! test_assert_equal( $h->get_query_size( $q ), 3 ); ! $h->set_query( $q, 'other', '', '', 0 ); ! test_assert_equal( $h->get_query_size( $q ), 0 ); ! $h->set_query( $q, 'other', '', '', 1 ); ! test_assert_equal( $h->get_query_size( $q ), 3 ); ! # Make sure that we don't requery unless necessary ! $h->set_query( $q, '', 's', '', 0 ); ! test_assert_equal( $h->get_query_size( $q ), 3 ); ! @rows = $h->get_query_rows( $q, 1, 2 ); ! $h->set_query( $q, '', 's', '', 0 ); ! test_assert_equal( $#{$h->{queries__}{$q}{cache}}, 1 ); ! $h->set_query( $q, '', 't', '', 0 ); ! test_assert_equal( $#{$h->{queries__}{$q}{cache}}, -1 ); ! if ( $userid eq 1 ) { ! # Make sure that we can upgrade an existing file with a specific ! # classification ! open MSG, '>' . $h->get_user_path_( $h->global_config_( 'msgdir' ) . 'popfile1=1.msg' ); ! print MSG <<EOF; From: Another Person To: Someone Else *************** *** 428,509 **** This is the body of the message EOF ! close MSG; ! $size = -s $h->get_user_path_( $h->global_config_( 'msgdir' ) . 'popfile1=1.msg' ); ! open CLS, '>' . $h->get_user_path_( $h->global_config_( 'msgdir' ) . 'popfile1=1.cls' ); ! print CLS <<EOF; RECLASSIFIED other personal EOF ! close CLS; ! ! $h->upgrade_history_files__(); ! ! test_assert( !(-e $h->get_user_path_( $h->global_config_( 'msgdir' ) . 'popfile1=1.cls' ) ) ); ! test_assert( !(-e $h->get_user_path_( $h->global_config_( 'msgdir' ) . 'popfile1=1.msg' ) ) ); ! ! $POPFile->CORE_service( 1 ); ! ! $h->set_query( $q, '', '', '', 0 ); ! test_assert_equal( $h->get_query_size( $q ), 4 ); ! ! $h->set_query( $q, 'other', '', '', 0 ); ! test_assert_equal( $h->get_query_size( $q ), 1 ); ! @rows = $h->get_query_rows( $q, 1, 1 ); ! test_assert_equal( $#rows, 0 ); ! test_assert_equal( $rows[0][1], 'Another Person' ); ! test_assert_equal( $rows[0][2], 'Someone Else' ); ! test_assert_equal( $rows[0][4], 'Something' ); ! test_assert_equal( $rows[0][5], 964521991 ); ! test_assert_equal( $rows[0][12], $size ); ! # Now check that deletion works ! $h->set_query( $q, '', '', '', 0 ); ! test_assert_equal( $h->get_query_size( $q ), 4 ); ! $file = $h->get_slot_file( 2 ); ! test_assert( ( -e $file ) ); ! $h->start_deleting(); ! $h->delete_slot( 2, 0, $session, 0 ); ! $h->stop_deleting(); ! test_assert( !( -e $file ) ); ! $h->set_query( $q, '', '', '', 0 ); ! test_assert_equal( $h->get_query_size( $q ), 3 ); ! @rows = $h->get_query_rows( $q, 1, 3 ); ! test_assert_equal( $#rows, 2 ); ! test_assert_equal( $rows[0][1], 'Another Person' ); ! test_assert_equal( $rows[1][1], 'Evil Spammer who does tricks <no...@jg...>' ); ! test_assert_equal( $rows[2][1], 'John Graham-Cumming <no...@jg...>' ); ! # Now try history cleanup, should leave nothing ! $h->stop_query( $q ); ! $h->user_config_( 1, 'history_days', 0 ); ! sleep( 2 ); ! $h->cleanup_history(); ! my $qq = $h->start_query( $session ); ! $h->set_query( $qq, '', '', '', 0 ); ! test_assert_equal( $h->get_query_size( $qq ), 0 ); ! $h->stop_query( $qq ); ! test_assert( !defined( $h->{queries__}{$q} ) ); ! # Check that the directories are gone too ! test_assert( !( -e 'messages/00' ) ); ! test_assert( !( -e 'messages/00/00' ) ); ! test_assert( !( -e 'messages/00/00/00' ) ); ! $h->classifier_()->release_session_key( $session ); ! $POPFile->CORE_stop(); ! 1; --- 476,552 ---- This is the body of the message EOF ! close MSG; ! $size = -s $h->get_user_path_( $h->global_config_( 'msgdir' ) . 'popfile1=1.msg' ); ! open CLS, '>' . $h->get_user_path_( $h->global_config_( 'msgdir' ) . 'popfile1=1.cls' ); ! print CLS <<EOF; RECLASSIFIED other personal EOF ! close CLS; ! $h->upgrade_history_files__(); ! test_assert( !(-e $h->get_user_path_( $h->global_config_( 'msgdir' ) . 'popfile1=1.cls' ) ) ); ! test_assert( !(-e $h->get_user_path_( $h->global_config_( 'msgdir' ) . 'popfile1=1.msg' ) ) ); ! $POPFile->CORE_service( 1 ); ! $h->set_query( $q, '', '', '', 0 ); ! test_assert_equal( $h->get_query_size( $q ), 4 ); ! $h->set_query( $q, 'other', '', '', 0 ); ! test_assert_equal( $h->get_query_size( $q ), 1 ); ! @rows = $h->get_query_rows( $q, 1, 1 ); ! test_assert_equal( $#rows, 0 ); ! test_assert_equal( $rows[0][1], 'Another Person' ); ! test_assert_equal( $rows[0][2], 'Someone Else' ); ! test_assert_equal( $rows[0][4], 'Something' ); ! test_assert_equal( $rows[0][5], 964521991 ); ! test_assert_equal( $rows[0][12], $size ); ! } ! # Now check that deletion works ! $h->set_query( $q, '', '', '', 0 ); ! test_assert_equal( $h->get_query_size( $q ), ($userid eq 1?4:3) ); ! $file = $h->get_slot_file( $slot1 ); ! test_assert( ( -e $file ) ); ! $h->start_deleting(); ! $h->delete_slot( 2, 0, $session, 0 ); ! $h->stop_deleting(); ! test_assert( !( -e $file ) ); ! $h->set_query( $q, '', '', '', 0 ); ! test_assert_equal( $h->get_query_size( $q ), ($userid eq 1?3:2) ); ! @rows = $h->get_query_rows( $q, 1, 3 ); ! test_assert_equal( $#rows, 2 ); ! if ( $userid eq 1 ) { ! test_assert_equal( $rows[0][1], 'Another Person' ); ! test_assert_equal( $rows[1][1], 'Evil Spammer who does tricks <no...@jg...>' ); ! test_assert_equal( $rows[2][1], 'John Graham-Cumming <no...@jg...>' ); ! } else { ! test_assert_equal( $rows[0][1], 'Evil Spammer who does tricks <no...@jg...>' ); ! test_assert_equal( $rows[1][1], 'John Graham-Cumming <no...@jg...>' ); ! } ! # Now try history cleanup, should leave nothing ! $h->stop_query( $q ); ! $h->user_config_( 1, 'history_days', 0 ); # Clean up userid = 1 only ! sleep( 2 ); ! $h->cleanup_history(); ! my $qq = $h->start_query( $session ); ! $h->set_query( $qq, '', '', '', 0 ); ! test_assert_equal( $h->get_query_size( $qq ), ($userid eq 1?0:2) ); ! $h->stop_query( $qq ); ! test_assert( !defined( $h->{queries__}{$q} ) ); ! } \ No newline at end of file Index: TestXMLRPC.tst =================================================================== RCS file: /cvsroot/popfile/engine/tests/TestXMLRPC.tst,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -d -r1.11 -r1.12 *** TestXMLRPC.tst 5 Apr 2008 16:50:49 -0000 1.11 --- TestXMLRPC.tst 16 Apr 2008 13:08:05 -0000 1.12 *************** *** 67,72 **** --- 67,74 ---- if ( $x->start() == 1 ) { + my $count = 100; while ( $x->service() && $POPFile->CORE_service( 1 ) ) { select( undef, undef, undef, 0.1 ); + last if ( $count-- <= 0 ); } $x->stop(); *************** *** 75,78 **** --- 77,83 ---- } + $x->stop(); + $POPFile->CORE_stop(); + exit(0); } else { *************** *** 82,86 **** use XMLRPC::Lite; ! print "Testing $xport\n"; my $session = XMLRPC::Lite --- 87,91 ---- use XMLRPC::Lite; ! print "Testing $xport\n"; my $session = XMLRPC::Lite *************** *** 123,130 **** -> proxy("http://127.0.0.1:" . $xport . "/RPC2") -> call('POPFile/API.release_session_key', $session ); - } ! $x->stop(); ! $POPFile->CORE_stop(); # TODO : terminate child process --- 128,134 ---- -> proxy("http://127.0.0.1:" . $xport . "/RPC2") -> call('POPFile/API.release_session_key', $session ); ! wait(); ! } # TODO : terminate child process Index: TestBayes.tst =================================================================== RCS file: /cvsroot/popfile/engine/tests/TestBayes.tst,v retrieving revision 1.63 retrieving revision 1.64 diff -C2 -d -r1.63 -r1.64 *** TestBayes.tst 9 Apr 2008 17:20:48 -0000 1.63 --- TestBayes.tst 16 Apr 2008 13:08:05 -0000 1.64 *************** *** 27,30 **** --- 27,31 ---- rmtree( 'corpus/CVS' ); + unlink 'popfile.cfg'; unlink 'popfile.db'; unlink 'popfile.pid'; *************** *** 112,116 **** test_assert( $password2 ne '' ); ! my ( $success3, $password3 ) = $b->create_user( $session, 'testuser' ); test_assert_equal( $success3, 1 ); test_assert( !defined( $password3 ) ); --- 113,117 ---- test_assert( $password2 ne '' ); ! my ( $success3, $password3 ) = $b->create_user( $session, 'testuser' ); test_assert_equal( $success3, 1 ); test_assert( !defined( $password3 ) ); *************** *** 224,231 **** test_assert_equal( $def, 1 ); test_assert_equal( $b->validate_password( $session1, '1234' ), 0 ); test_assert_equal( $b->validate_password( $session1, $password ), 1 ); ! test_assert_equal( $b->validate_password( $session, '1234' ), 0 ); ! test_assert_equal( $b->validate_password( $session, '' ), 1 ); test_assert_equal( $b->set_password( $session1, '' ), 1 ); --- 225,234 ---- test_assert_equal( $def, 1 ); + # validate_password and set_password + test_assert_equal( $b->validate_password( $session1, '1234' ), 0 ); test_assert_equal( $b->validate_password( $session1, $password ), 1 ); ! test_assert_equal( $b->validate_password( $session, '1234' ), 0 ); ! test_assert_equal( $b->validate_password( $session, '' ), 1 ); test_assert_equal( $b->set_password( $session1, '' ), 1 ); *************** *** 248,252 **** test_assert( !defined($b->create_user( $session1, 'testuser3' )) ); ! test_assert( !defined($b->remove_user( $session1, 'testuser' )) ); test_assert( !defined($b->get_user_list( $session1 )) ); --- 251,255 ---- test_assert( !defined($b->create_user( $session1, 'testuser3' )) ); ! test_assert( !defined($b->remove_user( $session1, 'testuser' )) ); test_assert( !defined($b->get_user_list( $session1 )) ); *************** *** 254,259 **** test_assert( !defined($b->get_accounts( $session1, $id1 )) ); ! test_assert_equal( $b->add_account( $session1, $id1, 'pop3', 'foo:bar2' ), 0 ); ! test_assert_equal( $b->remove_account( $session1, $id1, 'pop3', 'foo:bar' ), 0 ); test_assert( !defined($b->get_session_key_from_token( $session1, 'smtp', 'token' )) ); --- 257,262 ---- test_assert( !defined($b->get_accounts( $session1, $id1 )) ); ! test_assert_equal( $b->add_account( $session1, $id1, 'pop3', 'foo:bar2' ), 0 ); ! test_assert_equal( $b->remove_account( $session1, $id1, 'pop3', 'foo:bar' ), 0 ); test_assert( !defined($b->get_session_key_from_token( $session1, 'smtp', 'token' )) ); *************** *** 337,340 **** --- 340,345 ---- $b->release_session_key( $session4 ); + # TODO : cloning with magnets and corpus option + # initialize_users_password *************** *** 361,364 **** --- 366,387 ---- test_assert_equal( $b->change_users_password( $session, 'baduser', 'badpassword' ), 1 ); + # rename_user + + my ( $success7, $password7 ) = $b->rename_user( $session, 'testuser', 'changeduser' ); + test_assert_equal( $success7, 0 ); + test_assert( defined($password7) ); + + my $session7 = $b->get_session_key( 'changeduser', $password7 ); + test_assert( defined($session7) ); + $b->release_session_key( $session7 ); + + ( $success7, $password7 ) = $b->rename_user( $session, 'admin', 'admincannotberenamed' ); + test_assert_equal( $success7, 2 ); + test_assert( !defined($password7) ); + + ( $success7, $password7 ) = $b->rename_user( $session, 'changeduser', 'admin' ); + test_assert_equal( $success7, 1 ); + test_assert( !defined($password7) ); + # get_user_name_from_id |
From: naoki i. <am...@us...> - 2008-04-16 13:08:01
|
Update of /cvsroot/popfile/engine/languages In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv22400/languages Modified Files: English.msg Nihongo.msg Log Message: Change Log 1. Added the UI to rename user's name UI/HTML.pm Classifier/Bayes.pm POPFile/API.pm skins/default/users-page.thtml languages/English.msg languages/Nihongo.msg tests/TestBayes.tst 2. Save the current piddir and restore in the utility scripts bayes.pl insert.pl pipe.pl 3. TestXMLRPC's child process (xmlrpc server) now terminates tests/TestXMLRPC.tst 4. Use the place holders in preparing SQL statements UI/HTML.pm POPFile/History.pm 5. Copy the global language setting to the new user's default language Classifier/Bayes.pm 6. New script to import old database to new database import.pl import.pl - import user data into the new database Usage: import.pl <old_user_dir> <user> [<newuser>] <old_user_dir> The path to the user data to import <user> The name of the user to import from Use 'admin' when upgrading from v1 <newuser> The name of the user to import into (optional) If not specified, assume newuser=user 7. Added multi user support tests tests/TestHistory.tst Current state of the test suite: TestBayesScript PASS TestBayes PASS TestConfiguration PASS * TestHistory PASS TestHTML PASS * TestHTTP PASS TestIMAP PASS TestInsertScript PASS * TestLogger PASS TestMailParse PASS TestModule PASS TestMQ PASS TestMutex PASS TestPipeScript PASS TestPOP3 PASS TestProxy PASS TestWordMangle PASS TestXMLRPC PASS * : TODO : needs to add tests for multi user support Index: Nihongo.msg =================================================================== RCS file: /cvsroot/popfile/engine/languages/Nihongo.msg,v retrieving revision 1.25 retrieving revision 1.26 diff -C2 -d -r1.25 -r1.26 *** Nihongo.msg 13 Apr 2008 03:08:09 -0000 1.25 --- Nihongo.msg 16 Apr 2008 13:08:05 -0000 1.26 *************** *** 209,212 **** --- 209,213 ---- Users_Create ¿·¤·¤¤¥æ¡¼¥¶¡¼¤ÎºîÀ® + Users_Rename ¥æ¡¼¥¶¡¼Ì¾¤ÎÊѹ¹ Users_Remove ´û¸¥æ¡¼¥¶¡¼¤Îºï½ü Users_Edit ¥æ¡¼¥¶¡¼ÀßÄê¤ÎÊÔ½¸ *************** *** 215,220 **** Users_CopyMagnets ¥æ¡¼¥¶¡¼¤Î¥Þ¥°¥Í¥Ã¥È¤ò¥³¥Ô¡¼¤¹¤ë Users_CopyCorpus ¥æ¡¼¥¶¡¼¤Î¥³¡¼¥Ñ¥¹¤ò¥³¥Ô¡¼¤¹¤ë(¤³¤Î½èÍý¤Ë¤ÏŤ¤»þ´Ö¤¬¤«¤«¤ë¤«¤â¤·¤ì¤Þ¤»¤ó) ! Users_RemoveUser ¥æ¡¼¥¶¡¼¤Îºï½ü ! Users_CreateUser ¥æ¡¼¥¶¡¼¤ÎºîÀ® Users_EditUser ÊÔ½¸¤¹¤ë¥æ¡¼¥¶¡¼ Users_ChangePasswordUser ¥Ñ¥¹¥ï¡¼¥É¤òÊѹ¹¤¹¤ë¥æ¡¼¥¶¡¼ --- 216,224 ---- Users_CopyMagnets ¥æ¡¼¥¶¡¼¤Î¥Þ¥°¥Í¥Ã¥È¤ò¥³¥Ô¡¼¤¹¤ë Users_CopyCorpus ¥æ¡¼¥¶¡¼¤Î¥³¡¼¥Ñ¥¹¤ò¥³¥Ô¡¼¤¹¤ë(¤³¤Î½èÍý¤Ë¤ÏŤ¤»þ´Ö¤¬¤«¤«¤ë¤«¤â¤·¤ì¤Þ¤»¤ó) ! Users_RenameUser ̾Á°¤òÊѹ¹¤¹¤ë¥æ¡¼¥¶¡¼ ! Users_RenameUserNewName ¿·¤·¤¤Ì¾Á° ! Users_RenameNotes Ãí°Õ : ¥æ¡¼¥¶¡¼¤Î̾Á°¤òÊѹ¹¤¹¤ë¤È¥Ñ¥¹¥ï¡¼¥É¤¬½é´ü²½¤µ¤ì¤Þ¤¹ ! Users_RemoveUser ºï½ü¤¹¤ë¥æ¡¼¥¶¡¼ ! Users_CreateUser ºîÀ®¤¹¤ë¥æ¡¼¥¶¡¼ Users_EditUser ÊÔ½¸¤¹¤ë¥æ¡¼¥¶¡¼ Users_ChangePasswordUser ¥Ñ¥¹¥ï¡¼¥É¤òÊѹ¹¤¹¤ë¥æ¡¼¥¶¡¼ *************** *** 226,229 **** --- 230,236 ---- Users_Not_Created_Exists ¥æ¡¼¥¶¡¼ '%s' ¤ÏºîÀ®¤Ç¤¤Þ¤»¤ó¤Ç¤·¤¿¡£¤¹¤Ç¤Ë¸ºß¤·¤Æ¤¤¤Þ¤¹ Users_Created_Not_Cloned ¥æ¡¼¥¶¡¼ '%s' ¤òºîÀ®¤·¤Þ¤·¤¿¤¬¡¢'%s' ¤ÎÀßÄê¤Ï¥³¥Ô¡¼¤Ç¤¤Þ¤»¤ó¤Ç¤·¤¿¡Ê½é´ü¥Ñ¥¹¥ï¡¼¥É¤Ï '%s'¡Ë + Users_Renamed ¥æ¡¼¥¶¡¼ '%s' ¤Î̾Á°¤ò '%s' ¤ËÊѹ¹¤·¤Þ¤·¤¿¡Ê½é´ü¥Ñ¥¹¥ï¡¼¥É¤Ï '%s'¡Ë + Users_Rename_Failed_Exists ¥æ¡¼¥¶¡¼ '%s' ¤Î̾Á°¤ò '%s' ¤ËÊѹ¹¤Ç¤¤Þ¤»¤ó¤Ç¤·¤¿¡£¤¹¤Ç¤Ë¸ºß¤·¤Æ¤¤¤Þ¤¹ + Users_Rename_Failed ¥æ¡¼¥¶¡¼ '%s' ¤Î̾Á°¤òÊѹ¹¤Ç¤¤Þ¤»¤ó¤Ç¤·¤¿¡£ Users_Removed ¥æ¡¼¥¶¡¼ '%s' ¤òºï½ü¤·¤Þ¤·¤¿ Users_Removed_Failed ¥æ¡¼¥¶¡¼ '%s' ¤òºï½ü¤Ç¤¤Þ¤»¤ó¤Ç¤·¤¿ *************** *** 516,519 **** --- 523,527 ---- tip_Users_Remove POPFile ¤Î¥æ¡¼¥¶¡¼¤òºï½ü¤·¤Þ¤¹ + tip_Users_Rename ¥æ¡¼¥¶¡¼¤Î̾Á°¤òÊѹ¹¤·¤Þ¤¹ tip_Users_Change_Password ¥æ¡¼¥¶¡¼¤Î¥Ñ¥¹¥ï¡¼¥É¤òÊѹ¹¤·¤Þ¤¹ Index: English.msg =================================================================== RCS file: /cvsroot/popfile/engine/languages/English.msg,v retrieving revision 1.112 retrieving revision 1.113 diff -C2 -d -r1.112 -r1.113 *** English.msg 13 Apr 2008 03:08:09 -0000 1.112 --- English.msg 16 Apr 2008 13:08:05 -0000 1.113 *************** *** 208,211 **** --- 208,212 ---- Users_Create Create New User + Users_Rename Rename Existing User Users_Remove Remove Existing User Users_Edit Edit User Settings *************** *** 214,217 **** --- 215,221 ---- Users_CopyMagnets Copy user's magnets Users_CopyCorpus Copy user's corpus (this may take a long time) + Users_RenameUser Rename user + Users_RenameUserNewName New name + Users_RenameNotes Note : Renaming user will initialize user's password Users_RemoveUser Remove user Users_CreateUser Create user named *************** *** 225,228 **** --- 229,235 ---- Users_Not_Created_Exists User '%s' not created: already exists Users_Created_Not_Cloned Created user '%s' but clone of '%s' failed (initial password '%s') + Users_Renamed Renamed user '%s' to '%s' (initial password '%s') + Users_Rename_Failed_Exists Failed to rename user '%s' to '%s': already exists + Users_Rename_Failed Failed to rename user '%s' Users_Removed Removed user '%s' Users_Removed_Failed Failed to remove user '%s' *************** *** 515,518 **** --- 522,526 ---- tip_Users_Remove Delete user from POPFile + tip_Users_Rename Rename user tip_Users_Change_Password Change user's password |
From: naoki i. <am...@us...> - 2008-04-16 13:08:01
|
Update of /cvsroot/popfile/engine/UI In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv22400/UI Modified Files: HTML.pm Log Message: Change Log 1. Added the UI to rename user's name UI/HTML.pm Classifier/Bayes.pm POPFile/API.pm skins/default/users-page.thtml languages/English.msg languages/Nihongo.msg tests/TestBayes.tst 2. Save the current piddir and restore in the utility scripts bayes.pl insert.pl pipe.pl 3. TestXMLRPC's child process (xmlrpc server) now terminates tests/TestXMLRPC.tst 4. Use the place holders in preparing SQL statements UI/HTML.pm POPFile/History.pm 5. Copy the global language setting to the new user's default language Classifier/Bayes.pm 6. New script to import old database to new database import.pl import.pl - import user data into the new database Usage: import.pl <old_user_dir> <user> [<newuser>] <old_user_dir> The path to the user data to import <user> The name of the user to import from Use 'admin' when upgrading from v1 <newuser> The name of the user to import into (optional) If not specified, assume newuser=user 7. Added multi user support tests tests/TestHistory.tst Current state of the test suite: TestBayesScript PASS TestBayes PASS TestConfiguration PASS * TestHistory PASS TestHTML PASS * TestHTTP PASS TestIMAP PASS TestInsertScript PASS * TestLogger PASS TestMailParse PASS TestModule PASS TestMQ PASS TestMutex PASS TestPipeScript PASS TestPOP3 PASS TestProxy PASS TestWordMangle PASS TestXMLRPC PASS * : TODO : needs to add tests for multi user support Index: HTML.pm =================================================================== RCS file: /cvsroot/popfile/engine/UI/HTML.pm,v retrieving revision 1.388 retrieving revision 1.389 diff -C2 -d -r1.388 -r1.389 *** HTML.pm 13 Apr 2008 03:08:09 -0000 1.388 --- HTML.pm 16 Apr 2008 13:08:04 -0000 1.389 *************** *** 1539,1542 **** --- 1539,1561 ---- } + # Handle user rename + + if ( exists( $self->{form_}{rename} ) && + ( $self->{form_}{torename} ne '' ) && ( $self->{form_}{newname} ne '' ) ) { + my ( $result, $password ) = $self->classifier_()->rename_user( + $session, + $self->{form_}{torename}, + $self->{form_}{newname} ); + if ( $result == 0 ) { + $self->status_message__( $templ, sprintf( $self->language($session)->{Users_Renamed}, $self->{form_}{torename}, $self->{form_}{newname}, $password ) ); + } + if ( $result == 1 ) { + $self->error_message__( $templ, sprintf( $self->language($session)->{Users_Rename_Failed_Exists}, $self->{form_}{torename}, $self->{form_}{newname} ) ); + } + if ( $result == 2 ) { + $self->error_message__( $templ, sprintf( $self->language($session)->{Users_Rename_Failed}, $self->{form_}{torename} ) ); + } + } + # Handle user removal *************** *** 1648,1651 **** --- 1667,1672 ---- $templ->param( 'Users_Loop_Remove' => \@remove_user_loop ); $templ->param( 'Users_If_Remove' => 1 ); + $templ->param( 'Users_Loop_Rename' => \@remove_user_loop ); + $templ->param( 'Users_If_Rename' => 1 ); } $templ->param( 'Users_Loop_Edit' => \@user_loop ); |
From: naoki i. <am...@us...> - 2008-04-16 13:08:01
|
Update of /cvsroot/popfile/engine/POPFile In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv22400/POPFile Modified Files: API.pm History.pm Log Message: Change Log 1. Added the UI to rename user's name UI/HTML.pm Classifier/Bayes.pm POPFile/API.pm skins/default/users-page.thtml languages/English.msg languages/Nihongo.msg tests/TestBayes.tst 2. Save the current piddir and restore in the utility scripts bayes.pl insert.pl pipe.pl 3. TestXMLRPC's child process (xmlrpc server) now terminates tests/TestXMLRPC.tst 4. Use the place holders in preparing SQL statements UI/HTML.pm POPFile/History.pm 5. Copy the global language setting to the new user's default language Classifier/Bayes.pm 6. New script to import old database to new database import.pl import.pl - import user data into the new database Usage: import.pl <old_user_dir> <user> [<newuser>] <old_user_dir> The path to the user data to import <user> The name of the user to import from Use 'admin' when upgrading from v1 <newuser> The name of the user to import into (optional) If not specified, assume newuser=user 7. Added multi user support tests tests/TestHistory.tst Current state of the test suite: TestBayesScript PASS TestBayes PASS TestConfiguration PASS * TestHistory PASS TestHTML PASS * TestHTTP PASS TestIMAP PASS TestInsertScript PASS * TestLogger PASS TestMailParse PASS TestModule PASS TestMQ PASS TestMutex PASS TestPipeScript PASS TestPOP3 PASS TestProxy PASS TestWordMangle PASS TestXMLRPC PASS * : TODO : needs to add tests for multi user support Index: History.pm =================================================================== RCS file: /cvsroot/popfile/engine/POPFile/History.pm,v retrieving revision 1.51 retrieving revision 1.52 diff -C2 -d -r1.51 -r1.52 *** History.pm 9 Apr 2008 17:20:47 -0000 1.51 --- History.pm 16 Apr 2008 13:08:04 -0000 1.52 *************** *** 1302,1311 **** my @ids; foreach my $userid ( keys %$users ) { my $old = time - $self->user_config_( $userid, 'history_days' )*$seconds_per_day; ! my $d = $self->db_()->prepare( "select id from history ! where userid = $userid and ! inserted < $old;" ); ! $d->execute; my @row; while ( @row = $d->fetchrow_array ) { --- 1302,1311 ---- my @ids; + my $d = $self->db_()->prepare( "select id from history + where userid = ? and + inserted < ?;" ); foreach my $userid ( keys %$users ) { my $old = time - $self->user_config_( $userid, 'history_days' )*$seconds_per_day; ! $d->execute( $userid, $old ); my @row; while ( @row = $d->fetchrow_array ) { *************** *** 1313,1316 **** --- 1313,1317 ---- } } + $d->finish; foreach my $id (@ids) { $self->delete_slot( $id, 1, $session, 1 ); Index: API.pm =================================================================== RCS file: /cvsroot/popfile/engine/POPFile/API.pm,v retrieving revision 1.15 retrieving revision 1.16 diff -C2 -d -r1.15 -r1.16 *** API.pm 6 Apr 2008 08:27:07 -0000 1.15 --- API.pm 16 Apr 2008 13:08:04 -0000 1.16 *************** *** 98,102 **** sub get_html_colored_message { shift->{c}->get_html_colored_message( @_ ); } - sub create_user { shift->{c}->create_user( @_ ); } sub remove_user { shift->{c}->remove_user( @_ ); } sub get_user_id { shift->{c}->get_user_id( @_ ); } --- 98,101 ---- *************** *** 128,131 **** --- 127,132 ---- sub get_user_parameter_list { [ shift->{c}->get_bucket_word_list( @_ ) ]; } + sub create_user { [ shift->{c}->create_user( @_ ) ]; } + sub rename_user { [ shift->{c}->rename_user( @_ ) ]; } sub initialize_users_password { [ shift->{c}->initialize_users_password( @_ ) ]; } |
From: naoki i. <am...@us...> - 2008-04-16 13:08:01
|
Update of /cvsroot/popfile/engine/skins/default In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv22400/skins/default Modified Files: users-page.thtml Log Message: Change Log 1. Added the UI to rename user's name UI/HTML.pm Classifier/Bayes.pm POPFile/API.pm skins/default/users-page.thtml languages/English.msg languages/Nihongo.msg tests/TestBayes.tst 2. Save the current piddir and restore in the utility scripts bayes.pl insert.pl pipe.pl 3. TestXMLRPC's child process (xmlrpc server) now terminates tests/TestXMLRPC.tst 4. Use the place holders in preparing SQL statements UI/HTML.pm POPFile/History.pm 5. Copy the global language setting to the new user's default language Classifier/Bayes.pm 6. New script to import old database to new database import.pl import.pl - import user data into the new database Usage: import.pl <old_user_dir> <user> [<newuser>] <old_user_dir> The path to the user data to import <user> The name of the user to import from Use 'admin' when upgrading from v1 <newuser> The name of the user to import into (optional) If not specified, assume newuser=user 7. Added multi user support tests tests/TestHistory.tst Current state of the test suite: TestBayesScript PASS TestBayes PASS TestConfiguration PASS * TestHistory PASS TestHTML PASS * TestHTTP PASS TestIMAP PASS TestInsertScript PASS * TestLogger PASS TestMailParse PASS TestModule PASS TestMQ PASS TestMutex PASS TestPipeScript PASS TestPOP3 PASS TestProxy PASS TestWordMangle PASS TestXMLRPC PASS * : TODO : needs to add tests for multi user support Index: users-page.thtml =================================================================== RCS file: /cvsroot/popfile/engine/skins/default/users-page.thtml,v retrieving revision 1.12 retrieving revision 1.13 diff -C2 -d -r1.12 -r1.13 *** users-page.thtml 13 Apr 2008 03:08:09 -0000 1.12 --- users-page.thtml 16 Apr 2008 13:08:05 -0000 1.13 *************** *** 17,21 **** <option value=""> </option> <TMPL_LOOP NAME="Users_Loop_Copy"> ! <option><TMPL_VAR NAME="Users_Name"></option> </TMPL_LOOP> </select> --- 17,21 ---- <option value=""> </option> <TMPL_LOOP NAME="Users_Loop_Copy"> ! <option><TMPL_VAR NAME="Users_Name" ESCAPE=HTML></option> </TMPL_LOOP> </select> *************** *** 31,38 **** </label> <br /> - <input type="submit" class="submit" name="create" value="<TMPL_VAR NAME="Localize_Create">" /> </form> <br /> <TMPL_IF NAME="Users_If_Remove"> <hr /> --- 31,62 ---- </label> <br /> <input type="submit" class="submit" name="create" value="<TMPL_VAR NAME="Localize_Create">" /> </form> <br /> + + <TMPL_IF NAME="Users_If_Rename"> + <hr /> + <h2 class="users"><TMPL_VAR NAME="Localize_Users_Rename"></h2> + + <form action="/users" method="post"> + <TMPL_VAR NAME="Localize_Users_RenameUser">: + <select name="torename"> + <option value=""> </option> + <TMPL_LOOP NAME="Users_Loop_Rename"> + <option><TMPL_VAR NAME="Users_Name" ESCAPE=HTML></option> + </TMPL_LOOP> + </select> + <br /> + <TMPL_VAR NAME="Localize_Users_RenameUserNewName">: + <input type="text" id="usersRenameNewName" name="newname" /> + <br /> + <TMPL_VAR NAME="Localize_Users_RenameNotes"> + <br /> + + <input type="submit" class="submit" name="rename" onClick="return confirmClick('<TMPL_VAR NAME="Localize_tip_Users_Rename">')" value="<TMPL_VAR NAME="Localize_Rename">" /> + </form> + <br /> + </TMPL_IF> + <TMPL_IF NAME="Users_If_Remove"> <hr /> *************** *** 44,48 **** <option value=""> </option> <TMPL_LOOP NAME="Users_Loop_Remove"> ! <option><TMPL_VAR NAME="Users_Name"></option> </TMPL_LOOP> </select> --- 68,72 ---- <option value=""> </option> <TMPL_LOOP NAME="Users_Loop_Remove"> ! <option><TMPL_VAR NAME="Users_Name" ESCAPE=HTML></option> </TMPL_LOOP> </select> *************** *** 52,56 **** <br /> </TMPL_IF> ! <TMPL_IF NAME="Users_If_Remove"> <hr /> <h2 class="users"><TMPL_VAR NAME="Localize_Users_Change_Password"></h2> --- 76,80 ---- <br /> </TMPL_IF> ! <hr /> <h2 class="users"><TMPL_VAR NAME="Localize_Users_Change_Password"></h2> *************** *** 61,65 **** <option value=""> </option> <TMPL_LOOP NAME="Users_Loop_ChangePassword"> ! <option><TMPL_VAR NAME="Users_Name"></option> </TMPL_LOOP> </select> --- 85,89 ---- <option value=""> </option> <TMPL_LOOP NAME="Users_Loop_ChangePassword"> ! <option><TMPL_VAR NAME="Users_Name" ESCAPE=HTML></option> </TMPL_LOOP> </select> *************** *** 80,84 **** <input type="submit" class="submit" name="users_change_password" onClick="return confirmClick('<TMPL_VAR NAME="Localize_tip_Users_Change_Password">')" value="<TMPL_VAR NAME="Localize_Update">" /> </form> - </TMPL_IF> </td> <td class="settingsPanel" valign="top"> --- 104,107 ---- *************** *** 90,94 **** <option value=""> </option> <TMPL_LOOP NAME="Users_Loop_Edit"> ! <option><TMPL_VAR NAME="Users_Name"></option> </TMPL_LOOP> </select> --- 113,117 ---- <option value=""> </option> <TMPL_LOOP NAME="Users_Loop_Edit"> ! <option><TMPL_VAR NAME="Users_Name" ESCAPE=HTML></option> </TMPL_LOOP> </select> |