Differential D10661 Diff 25600 src/applications/people/controller/PhabricatorPeopleLdapController.php
Changeset View
Changeset View
Standalone View
Standalone View
src/applications/people/controller/PhabricatorPeopleLdapController.php
| Show First 20 Lines • Show All 143 Lines • ▼ Show 20 Lines | private function processSearchRequest($request) { | ||||
| // This causes us to connect and bind. | // This causes us to connect and bind. | ||||
| // TODO: Clean up this discard mode stuff. | // TODO: Clean up this discard mode stuff. | ||||
| DarkConsoleErrorLogPluginAPI::enableDiscardMode(); | DarkConsoleErrorLogPluginAPI::enableDiscardMode(); | ||||
| $ldap_adapter->getAccountID(); | $ldap_adapter->getAccountID(); | ||||
| DarkConsoleErrorLogPluginAPI::disableDiscardMode(); | DarkConsoleErrorLogPluginAPI::disableDiscardMode(); | ||||
| $results = $ldap_adapter->searchLDAP('%Q', $search); | $results = $ldap_adapter->searchLDAP('%Q', $search); | ||||
| $existing_users = id(new PhabricatorPeopleQuery())->loadPage(); | |||||
| $existing_users = (mpull($existing_users, 'getUserName')); | |||||
| foreach ($results as $key => $record) { | foreach ($results as $key => $record) { | ||||
| $account_id = $ldap_adapter->readLDAPRecordAccountID($record); | $account_id = $ldap_adapter->readLDAPRecordAccountID($record); | ||||
| if (!$account_id) { | if (!$account_id) { | ||||
| unset($results[$key]); | unset($results[$key]); | ||||
| continue; | continue; | ||||
| } | } | ||||
| $info = array( | $info = array( | ||||
| $account_id, | $account_id, | ||||
| $ldap_adapter->readLDAPRecordEmail($record), | $ldap_adapter->readLDAPRecordEmail($record), | ||||
| $ldap_adapter->readLDAPRecordRealName($record), | $ldap_adapter->readLDAPRecordRealName($record), | ||||
| ); | ); | ||||
| if (!in_array(strtolower(idx($info, 0)), $existing_users) && | |||||
| !in_array(strtoupper(idx($info, 0)), $existing_users)) { | |||||
| $results[$key] = $info; | $results[$key] = $info; | ||||
| $results[$key][] = $this->renderUserInputs($info); | $results[$key][] = $this->renderUserInputs($info); | ||||
| } | } | ||||
| } | |||||
| $form = id(new AphrontFormView()) | $form = id(new AphrontFormView()) | ||||
| ->setUser($admin); | ->setUser($admin); | ||||
| $table = new AphrontTableView($results); | $table = new AphrontTableView($results); | ||||
| $table->setHeaders( | $table->setHeaders( | ||||
| array( | array( | ||||
| pht('Username'), | pht('Username'), | ||||
| ▲ Show 20 Lines • Show All 44 Lines • Show Last 20 Lines | |||||