Commit 0c40ec69c14c14aec9891977baef70445e909585
1 parent
d8a4c52b
KTC-265
"LDAP users can be imported many times over" Fixed. Added KTC-265 "LDAP users can be imported many times over" Fixed. Removed users that have already been imported from the list returned by the LDAP server. Committed By: Megan Watson Reviewed By: Conrad Vermeulen Committed By: Megan Watson Reviewed By: Conrad Vermeulen git-svn-id: https://kt-dms.svn.sourceforge.net/svnroot/kt-dms/trunk@7841 c91229c3-7414-0410-bfa2-8a42b809f60b
Showing
1 changed file
with
18 additions
and
1 deletions
plugins/ktstandard/ldap/ldapbaseauthenticationprovider.inc.php
| @@ -439,10 +439,27 @@ class KTLDAPBaseAuthenticationProvider extends KTAuthenticationProvider { | @@ -439,10 +439,27 @@ class KTLDAPBaseAuthenticationProvider extends KTAuthenticationProvider { | ||
| 439 | } | 439 | } |
| 440 | 440 | ||
| 441 | if (is_array($aSearchResults)) { | 441 | if (is_array($aSearchResults)) { |
| 442 | - foreach (array_keys($aSearchResults) as $k) { | 442 | + $aSearchResultsKeys = array_keys($aSearchResults); |
| 443 | + $aSearchDNs = array(); | ||
| 444 | + foreach ($aSearchResultsKeys as $k) { | ||
| 443 | if (is_array($aSearchResults[$k]['cn'])) { | 445 | if (is_array($aSearchResults[$k]['cn'])) { |
| 444 | $aSearchResults[$k]['cn'] = $aSearchResults[$k]['cn'][0]; | 446 | $aSearchResults[$k]['cn'] = $aSearchResults[$k]['cn'][0]; |
| 445 | } | 447 | } |
| 448 | + $aSearchDNs[$k] = "'".$aSearchResults[$k]['dn']."'"; | ||
| 449 | + } | ||
| 450 | + | ||
| 451 | + $sDNs = implode(',', $aSearchDNs); | ||
| 452 | + $query = "SELECT id, authentication_details_s1 AS dn FROM users | ||
| 453 | + WHERE authentication_details_s1 IN ($sDNs)"; | ||
| 454 | + $aCurUsers = DBUtil::getResultArray($query); | ||
| 455 | + | ||
| 456 | + // If the user has already been added, then remove from the list | ||
| 457 | + if(!PEAR::isError($aCurUsers) && !empty($aCurUsers)){ | ||
| 458 | + foreach($aCurUsers as $item){ | ||
| 459 | + $key = array_search("'".$item['dn']."'", $aSearchDNs); | ||
| 460 | + $aKeys[] = $key; | ||
| 461 | + unset($aSearchResults[$key]); | ||
| 462 | + } | ||
| 446 | } | 463 | } |
| 447 | } | 464 | } |
| 448 | } | 465 | } |