You are here

function ldapdata_admin_edit_validate in LDAP integration 6

Validate hook for the settings form.

File

./ldapdata.admin.inc, line 323
Module admin page callbacks.

Code

function ldapdata_admin_edit_validate($form, &$form_state) {
  $op = $form_state['clicked_button']['#value'];
  $values = $form_state['values'];
  switch ($op) {
    case t('Update'):
      $form_state['ldapdata_attrs'] = array();
      $ldapdata_attrs = TRUE;
      foreach (trim($values['attributes']['ldapdata_attrs']) ? explode("\n", trim($values['attributes']['ldapdata_attrs'])) : array() as $line) {
        if (count($data = explode('|', trim($line))) == 6) {
          $form_state['ldapdata_attrs'] += array(
            trim(array_shift($data)) => $data,
          );
        }
        else {
          $ldapdata_attrs = FALSE;
        }
      }
      if (!$ldapdata_attrs) {
        form_set_error('attributes][ldapdata_attrs', t('Bad attribute syntax.'));
      }
      $form_state['ldapdata_mappings'] = array();
      $form_state['ldapdata_mappings']['access'] = $values['ldapdata_mapping'];
      if ($form_state['ldapdata_mappings']['access'] >= 4) {
        foreach (element_children($values) as $attr) {
          if (preg_match("/ldap_amap/", $attr) && $values[$attr]) {
            $form_state['ldapdata_mappings'][$attr] = $values[$attr];
          }
        }
      }
      $form_state['ldapdata_mappings'] = !empty($form_state['ldapdata_mappings']) ? serialize($form_state['ldapdata_mappings']) : '';
      $form_state['ldapdata_roattrs'] = isset($values['attributes']['ldapdata_roattrs']) ? array_values(array_intersect($values['attributes']['ldapdata_roattrs'], array_keys($form_state['ldapdata_attrs']))) : array();
      $form_state['ldapdata_roattrs'] = !empty($form_state['ldapdata_roattrs']) ? serialize($form_state['ldapdata_roattrs']) : '';
      $form_state['ldapdata_rwattrs'] = isset($values['attributes']['ldapdata_rwattrs']) ? array_values(array_intersect($values['attributes']['ldapdata_rwattrs'], array_keys($form_state['ldapdata_attrs']))) : array();
      $form_state['ldapdata_rwattrs'] = !empty($form_state['ldapdata_rwattrs']) ? serialize($form_state['ldapdata_rwattrs']) : '';
      $form_state['ldapdata_attrs'] = !empty($form_state['ldapdata_attrs']) ? serialize($form_state['ldapdata_attrs']) : '';
      $form_state['ldapdata_filter_php'] = trim($values['attributes']['ldapdata_filter_php']);
      $form_state['ldapdata_rwattrs'] = empty($form_state['ldapdata_filter_php']) ? $form_state['ldapdata_rwattrs'] : '';
      break;
  }
}