summaryrefslogtreecommitdiff
path: root/fml/lib
diff options
context:
space:
mode:
authorfukachan <fukachan>2002-07-17 09:35:17 +0000
committerfukachan <fukachan>2002-07-17 09:35:17 +0000
commita6fab5ea0ab731d8ee960bbc2d446daa854be364 (patch)
tree1d8da0a0a94fef87fddee0b8a4bfd014f7f65551 /fml/lib
parentf8840de60f33463aefd503cb5f8f420d16e8e608 (diff)
downloadfml8-a6fab5ea0ab731d8ee960bbc2d446daa854be364.tar.gz
fml8-a6fab5ea0ab731d8ee960bbc2d446daa854be364.tar.bz2
fml8-a6fab5ea0ab731d8ee960bbc2d446daa854be364.zip
optionally,
we accept case insensitive comparison of user part of the mail address.
Diffstat (limited to 'fml/lib')
-rw-r--r--fml/lib/FML/Credential.pm40
1 files changed, 38 insertions, 2 deletions
diff --git a/fml/lib/FML/Credential.pm b/fml/lib/FML/Credential.pm
index 651a7a2c..75fd68b3 100644
--- a/fml/lib/FML/Credential.pm
+++ b/fml/lib/FML/Credential.pm
@@ -4,7 +4,7 @@
# All rights reserved. This program is free software; you can
# redistribute it and/or modify it under the same terms as Perl itself.
#
-# $FML: Credential.pm,v 1.26 2002/06/30 14:27:47 fukachan Exp $
+# $FML: Credential.pm,v 1.27 2002/06/30 14:30:13 fukachan Exp $
#
package FML::Credential;
@@ -60,6 +60,9 @@ sub new
# default comparison level
set_compare_level( $me, 3 );
+ # case sensitive for user part comparison.
+ $me->{ _user_part_case_sensitive } = 1;
+
return bless $me, $type;
}
@@ -71,6 +74,33 @@ sub new
sub DESTROY {}
+=head2 ACCESS METHODS
+
+=cut
+
+
+# Descriptions: compare user part case sensitively (default)
+# Arguments: OBJ($self)
+# Side Effects: none
+# Return Value: none
+sub set_user_part_case_sensitive
+{
+ my ($self) = @_;
+ $self->{ _user_part_case_sensitive } = 1;
+}
+
+
+# Descriptions: compare user part case insensitively (default)
+# Arguments: OBJ($self)
+# Side Effects: none
+# Return Value: none
+sub set_user_part_case_insensitive
+{
+ my ($self) = @_;
+ $self->{ _user_part_case_sensitive } = 0;
+}
+
+
=head2 C<is_same_address($addr1, $addr2 [, $level])>
return 1 (same) or 0 (different).
@@ -115,12 +145,18 @@ sub is_same_address
my ($xuser, $xdomain) = split(/\@/, $xaddr);
my ($yuser, $ydomain) = split(/\@/, $yaddr);
my $level = 0;
+ my $is_case_sensitive = $self->{ _user_part_case_sensitive };
# the max recursive level in comparison
$max_level = $max_level || $self->{ _max_level } || 3;
# rule 1: case sensitive
- if ($xuser ne $yuser) { return 0;}
+ if ($is_case_sensitive) {
+ if ($xuser ne $yuser) { return 0;}
+ }
+ else {
+ if ("\L$xuser\E" ne "\L$yuser\E") { return 0;}
+ }
# rule 2: case insensitive
if ("\L$xdomain\E" eq "\L$ydomain\E") { return 1;}