You are here

function password_policy_password_element_alter in Password Policy 7.2

Alters the password element.

Parameters

array $element: Password element.

object $account: User object.

1 call to password_policy_password_element_alter()
password_policy_form_alter in ./password_policy.module
Implements hook_form_alter().

File

./password_policy.module, line 227
Enforces password policies.

Code

function password_policy_password_element_alter(array &$element, $account) {
  $items = array();
  $policies = PasswordPolicy::matchedPolicies($account);
  foreach ($policies as $policy) {
    $items = array_merge($items, $policy
      ->messages());
  }

  // Only alter description if policy messages are present.
  if (count($items)) {
    $element['#description'] = (isset($element['#description']) ? $element['#description'] : '') . theme('item_list', array(
      'items' => $items,
      'title' => t('Passwords must meet the following requirements:'),
      'attributes' => array(
        'id' => 'password-policy-requirements',
      ),
    ));
  }

  // Attach password evaluation logic and ensure it's added after user.js.
  $element['#attached']['js'][] = array(
    'data' => drupal_get_path('module', 'password_policy') . '/password_policy.js',
    'weight' => 10,
  );

  // Add dependency of password_policy.js.
  $element['#attached']['library'][] = array(
    'system',
    'drupal.form',
  );

  // Add clean URL setting for use by password_policy.js.
  $clean_url = variable_get('clean_url', FALSE);
  $settings = array(
    'cleanUrl' => $clean_url,
  );
  $element['#attached']['js'][] = array(
    'data' => array(
      'passwordPolicy' => $settings,
    ),
    'type' => 'setting',
  );
}