account.pm
branchcms
changeset 16 65695e59a6f9
parent 15 8e33564a0815
child 18 e3710b49e8e4
equal deleted inserted replaced
15:8e33564a0815 16:65695e59a6f9
    88     my $cn = $Cf->fullname || $user;
    88     my $cn = $Cf->fullname || $user;
    89     my $sn = (reverse split " ", $cn)[0];
    89     my $sn = (reverse split " ", $cn)[0];
    90     my $mailPrimaryAddress = $Cf->primary || $user;
    90     my $mailPrimaryAddress = $Cf->primary || $user;
    91     my $mailAddress = [$user, split /,/, $Cf->other || ""];
    91     my $mailAddress = [$user, split /,/, $Cf->other || ""];
    92     my $mailGroup = [split /,/, $Cf->group || ""];
    92     my $mailGroup = [split /,/, $Cf->group || ""];
       
    93     my $mailForwardingAddress = [split /,/, $Cf->forward || ""];
    93     my $pw = _mkpw($Cf->password || "{pwgen}");
    94     my $pw = _mkpw($Cf->password || "{pwgen}");
    94 
    95 
    95 
    96 
    96     my $dn = "uid=$user,$ubase";
    97     my $dn = "uid=$user,$ubase";
    97     my $r;
    98     my $r;
   131 
   132 
   132 	$e->add((AT_ADDRESS) => $mailAddress);
   133 	$e->add((AT_ADDRESS) => $mailAddress);
   133 	$e->add((AT_PRIMARYADDRESS) => $mailPrimaryAddress);
   134 	$e->add((AT_PRIMARYADDRESS) => $mailPrimaryAddress);
   134 	$e->add(userPassword => $pw);
   135 	$e->add(userPassword => $pw);
   135 	$e->add((AT_GROUP) => $mailGroup) if @$mailGroup;
   136 	$e->add((AT_GROUP) => $mailGroup) if @$mailGroup;
       
   137 	$e->add((AT_FORWARDINGADDRESS) => $mailForwardingAddress) if @$mailForwardingAddress;
       
   138 
   136 	# $e->add(iusRestrictedMail => $Cf->internal) if $Cf->internal ne ":";
   139 	# $e->add(iusRestrictedMail => $Cf->internal) if $Cf->internal ne ":";
   137 
   140 
   138 	$e->exists("sn") or $e->add(sn => $sn);
   141 	$e->exists("sn") or $e->add(sn => $sn);
   139 	$e->exists("cn") or $e->add(cn => $cn);
   142 	$e->exists("cn") or $e->add(cn => $cn);
   140 
   143 
   238 		}
   241 		}
   239 	    }
   242 	    }
   240 	    $modified++;
   243 	    $modified++;
   241 	}
   244 	}
   242 
   245 
       
   246 	if (defined $Cf->forward) {
       
   247 	    my @f = split /,/, $Cf->forward;
       
   248 	    grep { /^[+-]/ } @f or $e->delete(AT_FORWARDINGADDRESS)
       
   249 		if $e->get_value(AT_FORWARDINGADDRESS);
       
   250 
       
   251 	    foreach my $f (@f) {
       
   252 		if ($f =~ s/^-//) {
       
   253 		    $e->delete((AT_FORWARDINGADDRESS) => [$f]);
       
   254 		} else {
       
   255 		    $f =~ s/^\+//;
       
   256 		    $e->add((AT_FORWARDINGADDRESS) => [$f]);
       
   257 		}
       
   258 	    }
       
   259 	    $modified++;
       
   260 	}
       
   261 
   243 	if (my $a = $Cf->primary) {
   262 	if (my $a = $Cf->primary) {
   244 	    $r = $ldap->search(base => $ubase, 
   263 	    $r = $ldap->search(base => $ubase, 
   245 		# filter => "(|(mailPrimaryAddress=$a)(mail=$a))");
   264 		# filter => "(|(mailPrimaryAddress=$a)(mail=$a))");
   246 		filter => "(mail=$a)");
   265 		filter => "(mail=$a)");
   247 	    die $r->error if $r->code;
   266 	    die $r->error if $r->code;
   353 	my $uid = $e->get_value("uid");
   372 	my $uid = $e->get_value("uid");
   354 	my $cn = join(", ", $e->get_value("cn"));
   373 	my $cn = join(", ", $e->get_value("cn"));
   355 	my $mr = $e->get_value(AT_PRIMARYADDRESS) || "";	# ??
   374 	my $mr = $e->get_value(AT_PRIMARYADDRESS) || "";	# ??
   356 	my $ml = join(", ", $e->get_value(AT_ADDRESS)) || "";	# ??
   375 	my $ml = join(", ", $e->get_value(AT_ADDRESS)) || "";	# ??
   357 	my $mg = join(", ", $e->get_value(AT_GROUP)) || "";	# ??
   376 	my $mg = join(", ", $e->get_value(AT_GROUP)) || "";	# ??
       
   377 	my $forw = join (", ", $e->get_value(AT_FORWARDINGADDRESS)) || "";
   358 	my $mbox = "user/$uid";
   378 	my $mbox = "user/$uid";
   359 
   379 
   360 	print "$uid: $cn <$mr>";
   380 	print "$uid: $cn <$mr>";
   361 
   381 
   362 	#if (($e->get_value("iusRestrictedMail")||"") eq "TRUE") {
   382 	#if (($e->get_value("iusRestrictedMail")||"") eq "TRUE") {
   382 
   402 
   383 	print "\tPassword: ", $> == 0 ? $e->get_value("userPassword") : "*", "\n";
   403 	print "\tPassword: ", $> == 0 ? $e->get_value("userPassword") : "*", "\n";
   384 	
   404 	
   385 	print  wrap("\t", "\t\t", "Other Adresses: $ml\n") if $ml;
   405 	print  wrap("\t", "\t\t", "Other Adresses: $ml\n") if $ml;
   386 	print wrap("\t", "\t\t", "Mail Groups: $mg\n") if $mg;
   406 	print wrap("\t", "\t\t", "Mail Groups: $mg\n") if $mg;
       
   407 	print wrap("\t", "\t\t", "Forwardings: $forw\n") if $forw;
   387 
   408 
   388     }
   409     }
   389 }
   410 }
   390 
   411 
   391 sub verbose(@) {
   412 sub verbose(@) {