BookStack\Services\LdapService::getUserDetails PHP Метод

getUserDetails() публичный Метод

User found via configurable user filter.
public getUserDetails ( $userName ) : array | null
$userName
Результат array | null
    public function getUserDetails($userName)
    {
        $ldapConnection = $this->getConnection();
        $this->bindSystemUser($ldapConnection);
        // Find user
        $userFilter = $this->buildFilter($this->config['user_filter'], ['user' => $userName]);
        $baseDn = $this->config['base_dn'];
        $users = $this->ldap->searchAndGetEntries($ldapConnection, $baseDn, $userFilter, ['cn', 'uid', 'dn', 'mail']);
        if ($users['count'] === 0) {
            return null;
        }
        $user = $users[0];
        return ['uid' => isset($user['uid']) ? $user['uid'][0] : $user['dn'], 'name' => $user['cn'][0], 'dn' => $user['dn'], 'email' => isset($user['mail']) ? $user['mail'][0] : null];
    }

Usage Example

Пример #1
0
 /**
  * Retrieve a user by the given credentials.
  *
  * @param  array $credentials
  * @return \Illuminate\Contracts\Auth\Authenticatable|null
  */
 public function retrieveByCredentials(array $credentials)
 {
     // Get user via LDAP
     $userDetails = $this->ldapService->getUserDetails($credentials['username']);
     if ($userDetails === null) {
         return null;
     }
     // Search current user base by looking up a uid
     $model = $this->createModel();
     $currentUser = $model->newQuery()->where('external_auth_id', $userDetails['uid'])->first();
     if ($currentUser !== null) {
         return $currentUser;
     }
     $model->name = $userDetails['name'];
     $model->external_auth_id = $userDetails['uid'];
     $model->email = $userDetails['email'];
     $model->email_confirmed = false;
     return $model;
 }