Feature #1913 » Redmine-ldap-as-user.diff
| redmine/extra/svn/Redmine.pm 2009-08-21 15:30:48.000000000 +0200 | ||
|---|---|---|
| 294 | 294 |
); |
| 295 | 295 |
$sthldap->execute($auth_source_id); |
| 296 | 296 |
while (my @rowldap = $sthldap->fetchrow_array) {
|
| 297 |
# add ldap authenticate as user |
|
| 298 |
my $bind_as = $rowldap[3]; |
|
| 299 |
my $bind_pw = $rowldap[4] ? $rowldap[4] : ""; |
|
| 300 |
if ($bind_as =~ m/\$login/) {
|
|
| 301 |
# replace $login with $redmine_user and use $redmine_pass |
|
| 302 |
$bind_as =~ s/\$login/$redmine_user/g; |
|
| 303 |
$bind_pw = $redmine_pass |
|
| 304 |
} |
|
| 297 | 305 |
my $ldap = Authen::Simple::LDAP->new( |
| 298 | 306 |
host => ($rowldap[2] == 1 || $rowldap[2] eq "t") ? "ldaps://$rowldap[0]" : $rowldap[0], |
| 299 | 307 |
port => $rowldap[1], |
| 300 | 308 |
basedn => $rowldap[5], |
| 301 |
binddn => $rowldap[3] ? $rowldap[3] : "",
|
|
| 302 |
bindpw => $rowldap[4] ? $rowldap[4] : "",
|
|
| 309 |
binddn => $bind_as,
|
|
| 310 |
bindpw => $bind_pw,
|
|
| 303 | 311 |
filter => "(".$rowldap[6]."=%s)"
|
| 304 | 312 |
); |
| 305 | 313 |
$ret = 1 if ($ldap->authenticate($redmine_user, $redmine_pass)); |