You are here

function force_password_change_settings_submit in Force Password Change 6.2

Same name and namespace in other branches
  1. 6.3 force_password_change_pages.inc \force_password_change_settings_submit()
  2. 7.2 force_password_change.pages.inc \force_password_change_settings_submit()
  3. 7 force_password_change.pages.inc \force_password_change_settings_submit()

Submit function for the settings form

File

./force_password_change_pages.inc, line 77

Code

function force_password_change_settings_submit($form, &$form_state) {
  $selected_roles = array();
  variable_set('change_password_url', $form_state['values']['change_password_url']);
  variable_set('first_time_login_password_change', $form_state['values']['first_time_login_password_change']);
  $form_state['values']['first_time_login_password_change'] ? drupal_set_message(t('New users will be required to change their password on first-time login')) : drupal_set_message(t('New users will not be required to change their pasword on first-time login'));
  foreach ($form_state['values']['roles'] as $role) {
    if ($role > 2) {
      $uids = array();
      $db_uids = db_query('SELECT uid ' . 'FROM {users_roles} ' . 'WHERE rid = %d', $role);
      while ($uid = db_fetch_array($db_uids)) {
        $uids[] = $uid['uid'];
      }
      $uid_list = implode(', ', $uids);
      if (strlen($uid_list)) {
        db_query('UPDATE {users} ' . 'SET force_password_change = 1 ' . 'WHERE uid IN (%s)', $uid_list);
        db_query('UPDATE {force_password_change_users} ' . 'SET last_force = %d ' . 'WHERE uid IN (%s)', time(), $uid_list);
      }
      $selected_roles[] = $role;
    }
    elseif ($role == 2) {
      db_query('UPDATE {users} ' . 'SET force_password_change = 1 ');
      db_query('UPDATE {force_password_change_users} ' . 'SET last_force = %d ', time());
      $selected_roles[] = $role;
    }
  }
  if (count($selected_roles)) {
    db_query('UPDATE {force_password_change_roles} ' . 'SET last_force = %d ' . 'WHERE rid IN (%s) ', time(), implode(', ', $selected_roles));
    $roles = user_roles(TRUE);
    $list = '<ul>';
    foreach ($selected_roles as $sr) {
      $list .= '<li>' . $roles[$sr] . '</li>';
    }
    $list .= '</ul>';
    drupal_set_message(t('Users in the following roles will be required to immediately change their password: !list', array(
      '!list' => $list,
    )), 'status');
  }
  else {
    drupal_set_message(t('No roles were selected.'));
  }
}