Fixing audit filtering and sorting. (#827)

This commit is contained in:
kevgliss
2017-06-02 09:07:22 -07:00
committed by GitHub
parent 9c92138f2d
commit d4d6d832b1
2 changed files with 21 additions and 4 deletions

View File

@ -8,8 +8,11 @@
.. moduleauthor:: Kevin Glisson <kglisson@netflix.com>
"""
from flask import current_app
from lemur import database
from lemur.logs.models import Log
from lemur.users.models import User
from lemur.certificates.models import Certificate
def create(user, type, certificate=None):
@ -51,6 +54,20 @@ def render(args):
if filt:
terms = filt.split(';')
query = database.filter(query, Log, terms)
if 'certificate.name' in terms:
sub_query = database.session_query(Certificate.id)\
.filter(Certificate.name.ilike('%{0}%'.format(terms[1])))
query = query.filter(Log.certificate_id.in_(sub_query))
elif 'user.email' in terms:
sub_query = database.session_query(User.id)\
.filter(User.email.ilike('%{0}%'.format(terms[1])))
query = query.filter(Log.user_id.in_(sub_query))
else:
query = database.filter(query, Log, terms)
return database.sort_and_page(query, Log, args)