diff -r a4afc54e4b34 -r e3710b49e8e4 account.pm --- a/account.pm Wed Jul 19 12:09:36 2006 +0000 +++ b/account.pm Wed Jul 19 19:38:54 2006 +0000 @@ -84,11 +84,13 @@ die "Need user name for creation\n" if not @ARGV; my $user = shift @ARGV; + my $mailPrimaryAddress = $Cf->primary || $user; # evtl. mit ! + my $mailAddress = [$user, split /,/, $Cf->other || ""]; # ditto + + $user =~ s/!$//; # jetzt können wir ! nicht mehr brauchn my $mbox = "user/$user"; my $cn = $Cf->fullname || $user; my $sn = (reverse split " ", $cn)[0]; - 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}"); @@ -116,12 +118,13 @@ if ($e->exists("mail") || $e->exists(AT_PRIMARYADDRESS) || $e->exists("userPassword")) { verbose "exists\n"; } else { + FORCE: # Bevor wir ans Werk gehen, noch ein paar Tests (mailPrimaryAddress und mail darf - # darf noch nicht vergeben sein) + # noch nicht vergeben sein) foreach my $a ($mailPrimaryAddress, @$mailAddress) { $a =~ s/!$// and next; # wenn ein ! am Ende steht, dann ist es so gewollt und wird - # nicht geprüft + # nicht geprüft $r = $ldap->search(filter => "(mail=$a)", base => $ubase); die $r->error if $r->code; die "$a ist schon vergeben\n" if $r->count;