summaryrefslogtreecommitdiff
path: root/fml/lib/FML/Process
diff options
context:
space:
mode:
authorfukachan <fukachan>2008-08-13 13:15:39 +0000
committerfukachan <fukachan>2008-08-13 13:15:39 +0000
commitf26e4d194175e2c0d4b782e1bfd38f893dbd0777 (patch)
tree0cbff9dd5b56174d717f015e90f614abc8f57cfa /fml/lib/FML/Process
parentdbac8fdff7f376fe4e8fbbe2fba8bff706909e0b (diff)
downloadfml8-f26e4d194175e2c0d4b782e1bfd38f893dbd0777.tar.gz
fml8-f26e4d194175e2c0d4b782e1bfd38f893dbd0777.tar.bz2
fml8-f26e4d194175e2c0d4b782e1bfd38f893dbd0777.zip
bug fix: fix internal arguments passing bug to handle sender
information correctly. save sender candidates in PCB.
Diffstat (limited to 'fml/lib/FML/Process')
-rw-r--r--fml/lib/FML/Process/CreateOnPost.pm15
1 files changed, 12 insertions, 3 deletions
diff --git a/fml/lib/FML/Process/CreateOnPost.pm b/fml/lib/FML/Process/CreateOnPost.pm
index 15fe4e30..cdfd5f80 100644
--- a/fml/lib/FML/Process/CreateOnPost.pm
+++ b/fml/lib/FML/Process/CreateOnPost.pm
@@ -3,7 +3,7 @@
# Copyright (C) 2006,2008 Ken'ichi Fukamachi
# All rights reserved.
#
-# $FML: CreateOnPost.pm,v 1.7 2008/06/28 21:08:26 fukachan Exp $
+# $FML: CreateOnPost.pm,v 1.8 2008/07/05 23:40:02 fukachan Exp $
#
package FML::Process::CreateOnPost;
@@ -136,6 +136,8 @@ sub verify_request
my $eval = $config->get_hook( 'createonpost_verify_request_start_hook' );
if ($eval) { eval qq{ $eval; }; $curproc->logwarn($@) if $@; }
+ $curproc->credential_verify_sender();
+
unless ($curproc->is_refused()) {
$curproc->_createonpost_verify_request();
}
@@ -272,9 +274,10 @@ sub _createonpost_verify_request
my $return_path = $header->address_cleanup( $header->get('Return-Path') );
my $cred = $curproc->credential();
my $sender = $cred->sender();
+ my $sender_list = [ $return_path, $sender ];
# 2. check sender.
- $r_args->{ address_list } = [ $return_path, $sender ];
+ $r_args->{ address_list } = $sender_list;
$restriction = 'createonpost_sender_restrictions';
$addrlist = $curproc->_apply_restrictions($restriction, $r_args);
if ($addrlist->{ "deny" }) {
@@ -292,6 +295,7 @@ sub _createonpost_verify_request
# 4. save for later use.
my $pcb = $curproc->pcb();
+ $pcb->set("createonpost", "sender_list", $sender_list);
$pcb->set("createonpost", "address_list", $addrlist);
$pcb->set("createonpost", "address_to_class", $address2class);
$pcb->set("createonpost", "class_to_address", $class2address);
@@ -571,8 +575,13 @@ sub _is_sender_allowed_to_create_ml
{
my ($curproc) = @_;
+ # restrictions needs sender information as the argument.
+ my $pcb = $curproc->pcb();
+ my $sender_list = $pcb->get("createonpost", "sender_list") || [];
+ my $r_args = { address_list => $sender_list };
+
my $restriction = 'createonpost_newml_restrictions';
- my $addr_list = $curproc->_apply_restrictions($restriction);
+ my $addr_list = $curproc->_apply_restrictions($restriction, $r_args);
my $is_allowed = $addr_list->{ permit } ? 1 : 0;
return $is_allowed;
}