--- a/account.pm Tue Jul 04 21:52:14 2006 +0000
+++ b/account.pm Fri Jul 14 14:32:38 2006 +0000
@@ -90,6 +90,7 @@
my $mailPrimaryAddress = $Cf->primary || $user;
my $mailAddress = [$user, split /,/, $Cf->other || ""];
my $mailGroup = [split /,/, $Cf->group || ""];
+ my $mailForwardingAddress = [split /,/, $Cf->forward || ""];
my $pw = _mkpw($Cf->password || "{pwgen}");
@@ -133,6 +134,8 @@
$e->add((AT_PRIMARYADDRESS) => $mailPrimaryAddress);
$e->add(userPassword => $pw);
$e->add((AT_GROUP) => $mailGroup) if @$mailGroup;
+ $e->add((AT_FORWARDINGADDRESS) => $mailForwardingAddress) if @$mailForwardingAddress;
+
# $e->add(iusRestrictedMail => $Cf->internal) if $Cf->internal ne ":";
$e->exists("sn") or $e->add(sn => $sn);
@@ -240,6 +243,22 @@
$modified++;
}
+ if (defined $Cf->forward) {
+ my @f = split /,/, $Cf->forward;
+ grep { /^[+-]/ } @f or $e->delete(AT_FORWARDINGADDRESS)
+ if $e->get_value(AT_FORWARDINGADDRESS);
+
+ foreach my $f (@f) {
+ if ($f =~ s/^-//) {
+ $e->delete((AT_FORWARDINGADDRESS) => [$f]);
+ } else {
+ $f =~ s/^\+//;
+ $e->add((AT_FORWARDINGADDRESS) => [$f]);
+ }
+ }
+ $modified++;
+ }
+
if (my $a = $Cf->primary) {
$r = $ldap->search(base => $ubase,
# filter => "(|(mailPrimaryAddress=$a)(mail=$a))");
@@ -355,6 +374,7 @@
my $mr = $e->get_value(AT_PRIMARYADDRESS) || ""; # ??
my $ml = join(", ", $e->get_value(AT_ADDRESS)) || ""; # ??
my $mg = join(", ", $e->get_value(AT_GROUP)) || ""; # ??
+ my $forw = join (", ", $e->get_value(AT_FORWARDINGADDRESS)) || "";
my $mbox = "user/$uid";
print "$uid: $cn <$mr>";
@@ -384,6 +404,7 @@
print wrap("\t", "\t\t", "Other Adresses: $ml\n") if $ml;
print wrap("\t", "\t\t", "Mail Groups: $mg\n") if $mg;
+ print wrap("\t", "\t\t", "Forwardings: $forw\n") if $forw;
}
}