Patch #3712 » RedmineAdvanced-ldap-as-user.diff
| RedmineAdvanced.pm 2009-08-21 15:16:51.000000000 +0200 | ||
|---|---|---|
| 461 | 461 |
); |
| 462 | 462 |
$sthldap->execute($auth_source_id); |
| 463 | 463 |
while ( my @rowldap = $sthldap->fetchrow_array ) {
|
| 464 |
# add ldap authenticate as user (see Feature #1939) |
|
| 465 |
my $bind_as = $rowldap[3]; |
|
| 466 |
my $bind_pw = $rowldap[4] ? $rowldap[4] : ""; |
|
| 467 |
if ($bind_as =~ m/\$login/) {
|
|
| 468 |
# replace $login with $redmine_user and use $redmine_pass |
|
| 469 |
$bind_as =~ s/\$login/$redmine_user/g; |
|
| 470 |
$bind_pw = $redmine_pass |
|
| 471 |
} |
|
| 464 | 472 |
my $ldap = Authen::Simple::LDAP->new( |
| 465 | 473 |
host => ( $rowldap[2] == 1 || $rowldap[2] eq "t" ) |
| 466 | 474 |
? "ldaps://$rowldap[0]" |
| 467 | 475 |
: $rowldap[0], |
| 468 | 476 |
port => $rowldap[1], |
| 469 | 477 |
basedn => $rowldap[5], |
| 470 |
binddn => $rowldap[3] ? $rowldap[3] : "",
|
|
| 471 |
bindpw => $rowldap[4] ? $rowldap[4] : "",
|
|
| 478 |
binddn => $bind_as,
|
|
| 479 |
bindpw => $bind_pw,
|
|
| 472 | 480 |
filter => "(" . $rowldap[6] . "=%s)"
|
| 473 | 481 |
); |
| 474 | 482 |
$ret = 1 |