'Given an email, return matching user(s) who should receive a reset.
This allows subclasses to more easily customize the default policies
that prevent inactive users and users with unusable passwords from
resetting their password.'

def get_users(self, email):

    active_users = UserModel._default_manager.filter(**{('%s__iexact' % UserModel.get_email_field_name()): email, 'is_active': True})
    return (u for u in active_users if u.has_usable_password())
