82 # IMAP-Mailbox angelegt. |
82 # IMAP-Mailbox angelegt. |
83 |
83 |
84 |
84 |
85 die "Need user name for creation\n" if not @ARGV; |
85 die "Need user name for creation\n" if not @ARGV; |
86 my $user = shift @ARGV; |
86 my $user = shift @ARGV; |
|
87 my $mailPrimaryAddress = $Cf->primary || $user; # evtl. mit ! |
|
88 my $mailAddress = [$user, split /,/, $Cf->other || ""]; # ditto |
|
89 |
|
90 $user =~ s/!$//; # jetzt können wir ! nicht mehr brauchn |
87 my $mbox = "user/$user"; |
91 my $mbox = "user/$user"; |
88 my $cn = $Cf->fullname || $user; |
92 my $cn = $Cf->fullname || $user; |
89 my $sn = (reverse split " ", $cn)[0]; |
93 my $sn = (reverse split " ", $cn)[0]; |
90 my $mailPrimaryAddress = $Cf->primary || $user; |
|
91 my $mailAddress = [$user, split /,/, $Cf->other || ""]; |
|
92 my $mailGroup = [split /,/, $Cf->group || ""]; |
94 my $mailGroup = [split /,/, $Cf->group || ""]; |
93 my $mailForwardingAddress = [split /,/, $Cf->forward || ""]; |
95 my $mailForwardingAddress = [split /,/, $Cf->forward || ""]; |
94 my $pw = _mkpw($Cf->password || "{pwgen}"); |
96 my $pw = _mkpw($Cf->password || "{pwgen}"); |
95 |
97 |
96 |
98 |
114 } |
116 } |
115 |
117 |
116 if ($e->exists("mail") || $e->exists(AT_PRIMARYADDRESS) || $e->exists("userPassword")) { |
118 if ($e->exists("mail") || $e->exists(AT_PRIMARYADDRESS) || $e->exists("userPassword")) { |
117 verbose "exists\n"; |
119 verbose "exists\n"; |
118 } else { |
120 } else { |
|
121 FORCE: |
119 |
122 |
120 # Bevor wir ans Werk gehen, noch ein paar Tests (mailPrimaryAddress und mail darf |
123 # Bevor wir ans Werk gehen, noch ein paar Tests (mailPrimaryAddress und mail darf |
121 # darf noch nicht vergeben sein) |
124 # noch nicht vergeben sein) |
122 foreach my $a ($mailPrimaryAddress, @$mailAddress) { |
125 foreach my $a ($mailPrimaryAddress, @$mailAddress) { |
123 $a =~ s/!$// and next; # wenn ein ! am Ende steht, dann ist es so gewollt und wird |
126 $a =~ s/!$// and next; # wenn ein ! am Ende steht, dann ist es so gewollt und wird |
124 # nicht geprüft |
127 # nicht geprüft |
125 $r = $ldap->search(filter => "(mail=$a)", base => $ubase); |
128 $r = $ldap->search(filter => "(mail=$a)", base => $ubase); |
126 die $r->error if $r->code; |
129 die $r->error if $r->code; |
127 die "$a ist schon vergeben\n" if $r->count; |
130 die "$a ist schon vergeben\n" if $r->count; |
128 } |
131 } |
129 |
132 |