Mailgroup wird im Alias-Modul mit angezeigt.
--- a/alias.pm Mon Nov 07 09:47:30 2005 +0000
+++ b/alias.pm Tue Nov 15 20:40:28 2005 +0000
@@ -17,7 +17,7 @@
use password;
my $Cf;
-my ($ldap, $abase);
+my ($ldap, $abase, $ubase);
sub _add();
sub _list();
@@ -26,19 +26,26 @@
sub verbose(@);
sub columns();
+sub OU_ACCOUNTS();
sub OU_ALIASES();
sub OC_ALIAS();
sub AT_FORWARDINGADDRESS();
+sub AT_GROUP();
+sub AT_PRIMARYADDRESS();
sub import(@) {
$Cf = shift;
require constant;
+ import constant OU_ACCOUNTS => $Cf->ldap_ou_accounts;
import constant OU_ALIASES => $Cf->ldap_ou_aliases;
import constant OC_ALIAS => $Cf->ldap_oc_alias;
import constant AT_FORWARDINGADDRESS => $Cf->ldap_at_forwardingaddress;
+ import constant AT_GROUP => $Cf->ldap_at_group;
+ import constant AT_PRIMARYADDRESS => $Cf->ldap_at_primaryaddress;
$abase = OU_ALIASES . "," . $Cf->ldap_base;
+ $ubase = OU_ACCOUNTS . "," . $Cf->ldap_base;
}
sub run($) {
@@ -194,6 +201,25 @@
. "\n");
}
+
+ $filter = "(|" . join("", map { "(".AT_GROUP."=$_)" } @ARGV) . ")";
+ $r = $ldap->search(
+ filter => $filter,
+ base => $ubase,
+ attrs => [AT_GROUP, AT_PRIMARYADDRESS]
+ );
+ die $r->error if $r->code;
+
+ my %group;
+ while (my $e = $r->shift_entry) {
+ my $mail = $e->get_value(AT_PRIMARYADDRESS);
+ foreach my $g ($e->get_value(AT_GROUP)) {
+ push @{$group{$g}}, $mail;
+ }
+ }
+ foreach my $g (keys %group) {
+ print wrap("", "\t", "$g⇒ " . join(", ", @{$group{$g}}) . "\n");
+ }
}
sub verbose(@) {