Пример #1
0
def _listing(request):
    if not request.user.is_superuser and request.user.group != 'SimpleUsers':
        if not Domain.objects.get_for_admin(request.user).count():
            return empty_quarantine(request)

    navparams = QuarantineNavigationParameters(request)
    navparams.store()

    lst = SQLlisting(
        request.user,
        navparams=navparams,
        elems_per_page=int(
            parameters.get_user(request.user, "MESSAGES_PER_PAGE")
        )
    )
    page = lst.paginator.getpage(navparams.get('page'))
    if not page:
        return empty_quarantine(request)

    content = lst.fetch(request, page.id_start, page.id_stop)
    ctx = getctx(
        "ok", listing=content, paginbar=pagination_bar(page), page=page.number
    )
    if request.session.get('location', 'listing') != 'listing':
        ctx['menu'] = quar_menu()
    request.session['location'] = 'listing'
    return render_to_json_response(ctx)
Пример #2
0
def _listing(request):
    flt = None
    rcptfilter = None
    msgs = None

    if not request.user.is_superuser and request.user.group != 'SimpleUsers':
        if not Domain.objects.get_for_admin(request.user).count():
            return empty_quarantine(request)

    navparams = QuarantineNavigationParameters(request)
    navparams.store()
    pattern = navparams.get('pattern', '')
    if pattern:
        criteria = navparams.get('criteria')
        if criteria == "both":
            criteria = "from_addr,subject,to"
        for c in criteria.split(","):
            if c == "from_addr":
                nfilter = Q(mail__from_addr__contains=pattern)
            elif c == "subject":
                nfilter = Q(mail__subject__contains=pattern)
            elif c == "to":
                rcptfilter = pattern
                continue
            else:
                raise BadRequest("unsupported search criteria %s" % c)
            flt = nfilter if flt is None else flt | nfilter
    msgtype = navparams.get('msgtype', None)
    if msgtype is not None:
        nfilter = Q(mail__msgrcpt__content=msgtype)
        flt = flt | nfilter if flt is not None else nfilter

    msgs = get_wrapper().get_mails(request, rcptfilter)
    page = navparams.get('page')
    lst = SQLlisting(request.user,
                     msgs,
                     flt,
                     navparams=request.session["quarantine_navparams"],
                     elems_per_page=int(
                         parameters.get_user(request.user,
                                             "MESSAGES_PER_PAGE")))
    page = lst.paginator.getpage(page)
    if not page:
        return empty_quarantine(request)

    content = lst.fetch(request, page.id_start, page.id_stop)
    ctx = getctx("ok",
                 listing=content,
                 paginbar=pagination_bar(page),
                 page=page.number)
    if request.session.get('location', 'listing') != 'listing':
        ctx['menu'] = quar_menu()
    request.session['location'] = 'listing'
    return render_to_json_response(ctx)
Пример #3
0
def _listing(request):
    flt = None
    rcptfilter = None
    msgs = None

    if not request.user.is_superuser and request.user.group != 'SimpleUsers':
        if not Domain.objects.get_for_admin(request.user).count():
            return empty_quarantine(request)

    navparams = QuarantineNavigationParameters(request)
    navparams.store()
    pattern = navparams.get('pattern', '')
    if pattern:
        criteria = navparams.get('criteria')
        if criteria == "both":
            criteria = "from_addr,subject,to"
        for c in criteria.split(","):
            if c == "from_addr":
                nfilter = Q(mail__from_addr__contains=pattern)
            elif c == "subject":
                nfilter = Q(mail__subject__contains=pattern)
            elif c == "to":
                rcptfilter = pattern
                continue
            else:
                raise BadRequest("unsupported search criteria %s" % c)
            flt = nfilter if flt is None else flt | nfilter

    msgtype = navparams.get('msgtype', None)
    if msgtype is not None:
        nfilter = Q(mail__msgrcpt__content=msgtype)
        flt = flt | nfilter if flt is not None else nfilter

    msgs = get_wrapper().get_mails(request, rcptfilter)
    page = navparams.get('page')
    lst = SQLlisting(
        request.user, msgs, flt,
        navparams=request.session["quarantine_navparams"],
        elems_per_page=int(parameters.get_user(request.user, "MESSAGES_PER_PAGE"))
    )
    page = lst.paginator.getpage(page)
    if not page:
        return empty_quarantine(request)

    content = lst.fetch(request, page.id_start, page.id_stop)
    ctx = getctx(
        "ok", listing=content, paginbar=pagination_bar(page), page=page.number
    )
    if request.session.get('location', 'listing') != 'listing':
        ctx['menu'] = quar_menu()
    request.session['location'] = 'listing'
    return render_to_json_response(ctx)
Пример #4
0
def _listing(request):
    """Listing initial view.

    Called the first time the listing page is displayed.
    """
    if not request.user.is_superuser and request.user.group != 'SimpleUsers':
        if not Domain.objects.get_for_admin(request.user).count():
            return empty_quarantine()

    navparams = QuarantineNavigationParameters(request)
    navparams.store()

    connector = get_connector(user=request.user, navparams=navparams)
    context = get_listing_pages(request, connector)
    if context is None:
        return empty_quarantine()
    context["listing"] = _render_to_string(request, "amavis/email_list.html",
                                           {"email_list": context["rows"]})
    del context["rows"]
    if request.session.get('location', 'listing') != 'listing':
        context["menu"] = quar_menu(request.user)
    request.session["location"] = "listingx"
    return render_to_json_response(context)
Пример #5
0
def _listing(request):
    """Listing initial view.

    Called the first time the listing page is displayed.
    """
    if not request.user.is_superuser and request.user.group != 'SimpleUsers':
        if not Domain.objects.get_for_admin(request.user).count():
            return empty_quarantine()

    navparams = QuarantineNavigationParameters(request)
    navparams.store()

    connector = get_connector(user=request.user, navparams=navparams)
    context = get_listing_pages(request, connector)
    if context is None:
        return empty_quarantine()
    context["listing"] = _render_to_string(
        request, "amavis/email_list.html", {"email_list": context["rows"]}
    )
    del context["rows"]
    if request.session.get('location', 'listing') != 'listing':
        context["menu"] = quar_menu(request.user)
    request.session["location"] = "listingx"
    return render_to_json_response(context)