account.pm
branchcms
changeset 18 e3710b49e8e4
parent 16 65695e59a6f9
child 22 4d73e4ea84cd
equal deleted inserted replaced
17:a4afc54e4b34 18:e3710b49e8e4
    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