def METHOD_NAME(session, tid, role=None, language=None):
    """
    Transaction for retrieving the list of users defined on a tenant
    :param session: An ORM session
    :param tid: A tenant ID
    :param role: The role of the users to be retriven
    :param language: The language to be used during serialization
    :return: A list of serialized descriptors of the users defined on the specified tenant
    """
    if role is None:
        users = session.query(models.User).filter(models.User.tid == tid)
    else:
        users = session.query(models.User).filter(models.User.tid == tid,
                                                  models.User.role == role)
    language = language if language is not None else State.tenants[tid].cache.default_language
    return [user_serialize_user(session, user, language) for user in users]