You are here

function gdpr_consent_form_user_register_form_alter in GDPR Consent 7

Implements hook_form_FORM_ID_alter().

File

./gdpr_consent.module, line 522
Module file for GDPR Consent.

Code

function gdpr_consent_form_user_register_form_alter(&$form, &$form_state) {
  global $language, $user;
  if (!empty($user->language)) {
    $lang = $user->language;
  }
  else {
    $lang = $language->language;
  }
  $conditions = gdpr_consent_get_conditions($lang);

  // Do nothing if there's no GDPR Consent text set.
  if (empty($conditions['conditions'])) {
    return;
  }
  $form = array_merge($form, gdpr_consent_display_fields($conditions));

  // Disable checkbox if:
  // - user is already registered (administer users);
  // - users with 'administer users' can access registration on
  //   admin/user/user/create.
  if (!empty($user->uid)) {
    $form['gdpr_consent']['gdpr_consent_accept']['#attributes'] = array(
      'disabled' => 'disabled',
    );
  }
  $form = theme('gdpr_consent_display', array(
    'form' => $form,
  ));

  // Force giving consent before sending PII classified data on registering.
  $path = current_path();
  if (!empty($form['gdpr_consent']['gdpr_consent_accept']) && $path != 'admin/people/create') {
    $form['gdpr_consent']['gdpr_consent_accept']['#required'] = TRUE;
  }

  // Add submit function to handle on register consent. Only for not registered.
  if (empty($user->uid)) {
    $form['#submit'][] = 'gdpr_consent_accept_form_submit';
  }
}