Exemple #1
0
    def all(self, user, filters_list=None, addrs=None, act=3):
        "spam scores"

        conn = connection.cursor()
        query = """
        SELECT round(sascore) AS score, count(*) AS count FROM messages
        """

        if filters_list:
            sub = gen_dynamic_raw_query(filters_list)
            if user.is_superuser:
                conn.execute(query + " WHERE " + sub[0] +
                " AND whitelisted=0 AND scaned = 1 GROUP" +
                " BY score ORDER BY score", sub[1])
            else:
                sql = raw_user_filter(user, addrs, act)
                conn.execute(query + " WHERE " + sql + " AND " + sub[0] +
                " AND whitelisted=0 AND scaned = 1 GROUP BY" +
                " score ORDER BY score", sub[1])
        else:
            if user.is_superuser:
                query = """%s WHERE whitelisted=0 AND scaned = 1 GROUP BY
                        score ORDER BY score""" % query
                conn.execute(query)
            else:
                sql = raw_user_filter(user, addrs, act)
                gql = """WHERE %s AND whitelisted=0 AND scaned = 1 GROUP
                    BY score ORDER BY score""" % sql
                query = "%s %s" % (query, gql)
                conn.execute(query)
        result_list = [self.model(id=i + 1, score=row[0], count=int(row[1]))
                        for i, row in enumerate(conn.fetchall())]
        return result_list
Exemple #2
0
    def all(self, user, filters_list=None, addrs=None, act=3, daterange=None):
        "message totals"
        conn = connection.cursor()
        query = """
            SELECT date, count(*) AS mail_total,
            SUM(CASE WHEN virusinfected>0 THEN 1 ELSE 0 END)
            AS virus_total, SUM(CASE WHEN (virusinfected=0)
            AND spam>0 THEN 1 ELSE 0 END) AS spam_total,
            SUM(size) AS size_total FROM messages
            """
        if filters_list:
            sub = gen_dynamic_raw_query(filters_list)
            if user.is_superuser:
                if daterange:
                    conn.execute(
                        query + " WHERE (date BETWEEN '%s' AND '%s')"
                        " AND " + sub[0] + " GROUP BY date ORDER BY date DESC",
                        daterange[0], daterange[1], sub[1])
                else:
                    conn.execute(
                        query + " WHERE " + sub[0] +
                        " GROUP BY date ORDER BY date DESC", sub[1])
            else:
                sql = raw_user_filter(user, addrs, act)
                if daterange:
                    conn.execute(
                        query + " WHERE (date BETWEEN '%s' AND '%s')"
                        " AND " + sql + " AND " + sub[0] +
                        " GROUP BY date ORDER BY date DESC", daterange[0],
                        daterange[1], sub[1])
                else:
                    conn.execute(
                        query + " WHERE " + sql + " AND " + sub[0] +
                        " GROUP BY date ORDER BY date DESC", sub[1])
        else:
            if user.is_superuser:
                if daterange:
                    query = """%s WHERE date BETWEEN '%s' AND '%s' GROUP BY
                            date ORDER BY date DESC""" % (query, daterange[0],
                                                          daterange[1])
                else:
                    query = "%s GROUP BY date ORDER BY date DESC" % query
                conn.execute(query)
            else:
                sql = raw_user_filter(user, addrs, act)
                if daterange:
                    query = """%s WHERE (date BETWEEN '%s' AND '%s') AND %s
                            GROUP BY date ORDER BY date
                            DESC""" % (query, daterange[0], daterange[1], sql)
                else:
                    query = """%s WHERE %s GROUP BY date ORDER BY date
                    DESC""" % (query, sql)
                conn.execute(query)

        result_list = map(self.makevals, enumerate(conn.fetchall()))
        return result_list
Exemple #3
0
    def all(self, user, filters_list=None, addrs=None, act=3, daterange=None):
        "message totals"
        conn = connection.cursor()
        query = """
            SELECT date, count(*) AS mail_total,
            SUM(CASE WHEN virusinfected>0 THEN 1 ELSE 0 END)
            AS virus_total, SUM(CASE WHEN (virusinfected=0)
            AND spam>0 THEN 1 ELSE 0 END) AS spam_total,
            SUM(size) AS size_total FROM messages
            """
        if filters_list:
            sub = gen_dynamic_raw_query(filters_list)
            if user.is_superuser:
                if daterange:
                    conn.execute(query + " WHERE (date BETWEEN '%s' AND '%s')"
                    " AND " + sub[0] + " GROUP BY date ORDER BY date DESC",
                    daterange[0], daterange[1], sub[1])
                else:
                    conn.execute(query + " WHERE " + sub[0] +
                    " GROUP BY date ORDER BY date DESC", sub[1])
            else:
                sql = raw_user_filter(user, addrs, act)
                if daterange:
                    conn.execute(query + " WHERE (date BETWEEN '%s' AND '%s')"
                    " AND " + sql + " AND " + sub[0] +
                    " GROUP BY date ORDER BY date DESC", daterange[0],
                    daterange[1], sub[1])
                else:
                    conn.execute(query + " WHERE " + sql + " AND " + sub[0] +
                    " GROUP BY date ORDER BY date DESC", sub[1])
        else:
            if user.is_superuser:
                if daterange:
                    query = """%s WHERE date BETWEEN '%s' AND '%s' GROUP BY
                            date ORDER BY date DESC""" % (query, daterange[0],
                            daterange[1])
                else:
                    query = "%s GROUP BY date ORDER BY date DESC" % query
                conn.execute(query)
            else:
                sql = raw_user_filter(user, addrs, act)
                if daterange:
                    query = """%s WHERE (date BETWEEN '%s' AND '%s') AND %s
                            GROUP BY date ORDER BY date
                            DESC""" % (query, daterange[0], daterange[1],
                            sql)
                else:
                    query = """%s WHERE %s GROUP BY date ORDER BY date
                    DESC""" % (query, sql)
                conn.execute(query)

        result_list = map(self.makevals, enumerate(conn.fetchall()))
        return result_list
Exemple #4
0
    def get(self, user, addrs=None, act=3):
        "message stats"

        conn = connection.cursor()
        today = datetime.date.today()

        query = """
        SELECT COUNT(*) AS mail, SUM(CASE WHEN virusinfected=0 AND
        nameinfected=0 AND otherinfected=0 AND spam=0 AND
        highspam=0 THEN 1 ELSE 0 END) AS clean_mail, SUM(CASE WHEN
         virusinfected>0 THEN 1 ELSE 0 END) AS virii, SUM(CASE WHEN
          nameinfected>0 AND virusinfected=0 AND otherinfected=0
        AND spam=0 AND highspam=0 THEN 1 ELSE 0 END) AS infected,
        SUM(CASE WHEN otherinfected>0 OR nameinfected>0 AND
        virusinfected=0 AND spam=0 AND highspam=0 THEN 1 ELSE 0 END)
        AS otherinfected, SUM(CASE WHEN spam>0 AND virusinfected=0
        AND nameinfected=0 AND otherinfected=0 AND highspam=0 THEN
        1 ELSE 0 END) AS spam_mail, SUM(CASE WHEN highspam>0 AND
        virusinfected=0 AND nameinfected=0 AND otherinfected=0
        THEN 1 ELSE 0 END) AS high_spam, SUM(size) AS size FROM
        messages WHERE date = '%s'
        """ % today

        if user.is_superuser:
            conn.execute(query)
        else:
            sql = raw_user_filter(user, addrs, act)
            conn.execute(query + " AND " + sql)

        row = conn.fetchone()
        return self.model(total=row[0], clean_mail=row[1], virii=row[2],
        infected=row[3], otherinfected=row[4], spam_mail=row[5],
        high_spam=row[6], size=row[7])
Exemple #5
0
    def all(self, user, filters_list=None, addrs=None, act=3):
        "spam scores"

        conn = connection.cursor()
        query = """
        SELECT round(sascore) AS score, count(*) AS count FROM messages
        """

        if filters_list:
            sub = gen_dynamic_raw_query(filters_list)
            if user.is_superuser:
                conn.execute(
                    query + " WHERE " + sub[0] +
                    " AND whitelisted=0 AND scaned = 1 GROUP" +
                    " BY score ORDER BY score", sub[1])
            else:
                sql = raw_user_filter(user, addrs, act)
                conn.execute(
                    query + " WHERE " + sql + " AND " + sub[0] +
                    " AND whitelisted=0 AND scaned = 1 GROUP BY" +
                    " score ORDER BY score", sub[1])
        else:
            if user.is_superuser:
                query = """%s WHERE whitelisted=0 AND scaned = 1 GROUP BY
                        score ORDER BY score""" % query
                conn.execute(query)
            else:
                sql = raw_user_filter(user, addrs, act)
                gql = """WHERE %s AND whitelisted=0 AND scaned = 1 GROUP
                    BY score ORDER BY score""" % sql
                query = "%s %s" % (query, gql)
                conn.execute(query)
        result_list = [
            self.model(id=i + 1, score=row[0], count=int(row[1]))
            for i, row in enumerate(conn.fetchall())
        ]
        return result_list
Exemple #6
0
    def get(self, user, addrs=None, act=3):
        "message stats"

        conn = connection.cursor()
        today = datetime.date.today()

        query = """
        SELECT COUNT(*) AS mail, SUM(CASE WHEN virusinfected=0 AND
        nameinfected=0 AND otherinfected=0 AND spam=0 AND
        highspam=0 THEN 1 ELSE 0 END) AS clean_mail, SUM(CASE WHEN
         virusinfected>0 THEN 1 ELSE 0 END) AS virii, SUM(CASE WHEN
          nameinfected>0 AND virusinfected=0 AND otherinfected=0
        AND spam=0 AND highspam=0 THEN 1 ELSE 0 END) AS infected,
        SUM(CASE WHEN otherinfected>0 OR nameinfected>0 AND
        virusinfected=0 AND spam=0 AND highspam=0 THEN 1 ELSE 0 END)
        AS otherinfected, SUM(CASE WHEN spam>0 AND virusinfected=0
        AND nameinfected=0 AND otherinfected=0 AND highspam=0 THEN
        1 ELSE 0 END) AS spam_mail, SUM(CASE WHEN highspam>0 AND
        virusinfected=0 AND nameinfected=0 AND otherinfected=0
        THEN 1 ELSE 0 END) AS high_spam, SUM(size) AS size FROM
        messages WHERE date = '%s'
        """ % today

        if user.is_superuser:
            conn.execute(query)
        else:
            sql = raw_user_filter(user, addrs, act)
            conn.execute(query + " AND " + sql)

        row = conn.fetchone()
        return self.model(total=row[0],
                          clean_mail=row[1],
                          virii=row[2],
                          infected=row[3],
                          otherinfected=row[4],
                          spam_mail=row[5],
                          high_spam=row[6],
                          size=row[7])