function cas_form_user_form_alter in CAS 8
Same name and namespace in other branches
- 2.x cas.module \cas_form_user_form_alter()
Implements hook_form_FORM_ID_alter().
Alters the user entity form.
File
- ./
cas.module, line 54 - Provides CAS authentication for Drupal.
Code
function cas_form_user_form_alter(&$form, FormStateInterface $form_state, $form_id) {
_cas_add_cas_username_to_user_form($form);
$cas_user_manager = \Drupal::service('cas.user_manager');
$account = $form_state
->getFormObject()
->getEntity();
$cas_username = $cas_user_manager
->getCasUsernameForAccount($account
->id());
// If a CAS username was found for this user, then populate the CAS username
// form field with its current value. Also remove the password management
// fields if configured to do so.
if ($cas_username) {
$form['account']['cas_enabled']['#default_value'] = TRUE;
$form['account']['cas_username']['#default_value'] = $cas_username;
if (!\Drupal::currentUser()
->hasPermission('administer users')) {
if (\Drupal::config('cas.settings')
->get('user_accounts.restrict_password_management')) {
$form['account']['pass']['#access'] = FALSE;
// Users are normally required to entier their current password when
// changing their password or email address. Since we are disabling
// access to change their password, and since a CAS user would not know
// their local Drupal password anyway, we remove this field as well.
if (isset($form['account']['current_pass'])) {
$form['account']['current_pass']['#access'] = FALSE;
}
}
if (\Drupal::config('cas.settings')
->get('user_accounts.restrict_email_management')) {
if (isset($form['account']['mail'])) {
$form['account']['mail']['#disabled'] = TRUE;
}
}
}
}
}