/** * @return array Users filtered by >= $role */ protected function filter_users_by_role($users, $role) { $filtered_users = array(); if ($role === 'everyone') { $filtered_users = $users; } else { foreach ($users as $user) { if (ClefUtils::user_fulfills_role($user, $role)) { $filtered_users[] = $user; } } } return $filtered_users; }
/** * Returns whether passwords are disabled for a specific user based on * user roles. * * @param WP_User $user * @return bool */ public function passwords_are_disabled_for_user($user) { if (!$this->is_configured()) { return false; } if ($this->get('clef_password_settings_force')) { return true; } if ($this->get('clef_password_settings_disable_passwords') && ClefUtils::user_has_clef($user)) { return true; } $disable_certain_passwords = $this->get('clef_password_settings_disable_certain_passwords'); if ($disable_certain_passwords && $disable_certain_passwords != "") { $max_role = strtolower($disable_certain_passwords); if (ClefUtils::user_fulfills_role($user, $max_role)) { return true; } } $potential_custom_user_roles = (array) $user->roles; foreach ($potential_custom_user_roles as $role) { if ($this->get("clef_password_settings_disable_passwords_custom_role_{$role}")) { return true; } } return false; }