Merge pull request #2367 from hosseinsh/master

fixing-lemur-authorities-CN-filtering
This commit is contained in:
Curtis 2019-01-15 08:15:59 -08:00 committed by GitHub
commit 3022af4410
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 7 additions and 1 deletions

View File

@ -15,6 +15,7 @@ from lemur import database
from lemur.common.utils import truthiness from lemur.common.utils import truthiness
from lemur.extensions import metrics from lemur.extensions import metrics
from lemur.authorities.models import Authority from lemur.authorities.models import Authority
from lemur.certificates.models import Certificate
from lemur.roles import service as role_service from lemur.roles import service as role_service
from lemur.certificates.service import upload from lemur.certificates.service import upload
@ -179,7 +180,12 @@ def render(args):
if 'active' in filt: if 'active' in filt:
query = query.filter(Authority.active == truthiness(terms[1])) query = query.filter(Authority.active == truthiness(terms[1]))
elif 'cn' in filt: elif 'cn' in filt:
query = query.join(Authority.active == truthiness(terms[1])) term = '%{0}%'.format(terms[1])
sub_query = database.session_query(Certificate.root_authority_id) \
.filter(Certificate.cn.ilike(term)) \
.subquery()
query = query.filter(Authority.id.in_(sub_query))
else: else:
query = database.filter(query, Authority, terms) query = database.filter(query, Authority, terms)