You are here

public function SimpleLdapServerSettingsForm::buildForm in Simple LDAP 8

Form constructor.

Parameters

array $form: An associative array containing the structure of the form.

\Drupal\Core\Form\FormStateInterface $form_state: The current state of the form.

Return value

array The form structure.

Overrides ConfigFormBase::buildForm

File

src/Form/SimpleLdapServerSettingsForm.php, line 28

Class

SimpleLdapServerSettingsForm

Namespace

Drupal\simple_ldap\Form

Code

public function buildForm(array $form, FormStateInterface $form_state) {
  $config = $this
    ->config('simple_ldap.server');
  $form['status'] = array(
    '#type' => 'fieldset',
    '#title' => $this
      ->t('Connection status'),
  );
  $form['status']['current'] = array(
    '#type' => 'item',
    '#markup' => $this
      ->getBindStatus(),
  );
  $form['server'] = array(
    '#type' => 'fieldset',
    '#title' => $this
      ->t('LDAP Server Connection'),
    '#open' => TRUE,
  );
  $form['server']['host'] = array(
    '#type' => 'textfield',
    '#title' => $this
      ->t('Host'),
    '#required' => TRUE,
    '#default_value' => $config
      ->get('host'),
  );
  $form['server']['port'] = array(
    '#type' => 'textfield',
    '#title' => $this
      ->t('Port'),
    '#required' => TRUE,
    '#default_value' => $config
      ->get('port'),
  );
  $form['server']['encryption'] = array(
    '#type' => 'select',
    '#title' => $this
      ->t('Encryption'),
    '#options' => array(
      'none' => $this
        ->t('None'),
      'ssl' => $this
        ->t('SSL'),
      'tls' => $this
        ->t('TLS'),
    ),
    '#default_value' => $config
      ->get('encryption'),
  );

  // For now, we only allow readonly servers.
  $form['server']['readonly'] = array(
    '#type' => 'checkbox',
    '#title' => $this
      ->t('Read-only'),
    '#default_value' => TRUE,
    '#disabled' => TRUE,
  );
  $form['directory'] = array(
    '#type' => 'fieldset',
    '#title' => $this
      ->t('Directory Information'),
    '#open' => TRUE,
  );
  $form['directory']['binddn'] = array(
    '#type' => 'textfield',
    '#title' => $this
      ->t('Bind DN'),
    '#default_value' => $config
      ->get('binddn'),
    '#description' => $this
      ->t('Leave this blank to bind anonymously'),
  );
  $form['directory']['bindpw'] = array(
    '#type' => 'password',
    '#title' => $this
      ->t('Bind password'),
    '#attributes' => array(
      'value' => array(
        $config
          ->get('bindpw'),
      ),
    ),
    '#description' => $this
      ->t('Leave this blank to bind anonymously'),
  );
  $form['directory']['basedn'] = array(
    '#type' => 'textfield',
    '#title' => t('Base DN'),
    '#default_value' => $config
      ->get('basedn'),
    '#description' => t('Leave this blank to attempt to detect the base DN.'),
  );
  $form['directory']['pagesize'] = array(
    '#type' => 'textfield',
    '#title' => t('Search result page size'),
    '#default_value' => $config
      ->get('pagesize'),
    '#description' => $this
      ->t('Leave this blank to disable paged queries.'),
  );

  // Advanced settings.
  $form['advanced'] = array(
    '#type' => 'details',
    '#title' => $this
      ->t('Advanced'),
    '#open' => FALSE,
  );
  $form['advanced']['opt_referrals'] = array(
    '#type' => 'checkbox',
    '#title' => $this
      ->t('Follow LDAP referrals'),
    '#default_value' => $config
      ->get('opt_referrals'),
  );
  return parent::buildForm($form, $form_state);
}