Merge remote-tracking branch 'upstream/master'
This commit is contained in:
commit
0336d68ee2
|
@ -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)
|
||||||
|
|
||||||
|
|
|
@ -20,7 +20,6 @@ from lemur.common.utils import generate_private_key, truthiness
|
||||||
from lemur.destinations.models import Destination
|
from lemur.destinations.models import Destination
|
||||||
from lemur.domains.models import Domain
|
from lemur.domains.models import Domain
|
||||||
from lemur.extensions import metrics, sentry, signals
|
from lemur.extensions import metrics, sentry, signals
|
||||||
from lemur.models import certificate_associations
|
|
||||||
from lemur.notifications.models import Notification
|
from lemur.notifications.models import Notification
|
||||||
from lemur.pending_certificates.models import PendingCertificate
|
from lemur.pending_certificates.models import PendingCertificate
|
||||||
from lemur.plugins.base import plugins
|
from lemur.plugins.base import plugins
|
||||||
|
@ -341,13 +340,13 @@ def render(args):
|
||||||
elif 'id' in terms:
|
elif 'id' in terms:
|
||||||
query = query.filter(Certificate.id == cast(terms[1], Integer))
|
query = query.filter(Certificate.id == cast(terms[1], Integer))
|
||||||
elif 'name' in terms:
|
elif 'name' in terms:
|
||||||
query = query.outerjoin(certificate_associations).outerjoin(Domain).filter(
|
query = query.filter(
|
||||||
or_(
|
or_(
|
||||||
Certificate.name.ilike(term),
|
Certificate.name.ilike(term),
|
||||||
Domain.name.ilike(term),
|
Certificate.domains.any(Domain.name.ilike(term)),
|
||||||
Certificate.cn.ilike(term),
|
Certificate.cn.ilike(term),
|
||||||
)
|
)
|
||||||
).group_by(Certificate.id)
|
)
|
||||||
else:
|
else:
|
||||||
query = database.filter(query, Certificate, terms)
|
query = database.filter(query, Certificate, terms)
|
||||||
|
|
||||||
|
|
|
@ -234,6 +234,6 @@ def find_matching_certificates_by_hash(cert, matching_certs):
|
||||||
determine if any of the certificate hashes match and return the matches."""
|
determine if any of the certificate hashes match and return the matches."""
|
||||||
matching = []
|
matching = []
|
||||||
for c in matching_certs:
|
for c in matching_certs:
|
||||||
if parse_certificate(c).fingerprint(hashes.SHA256()) == cert.body.fingerprint(hashes.SHA256()):
|
if parse_certificate(c.body).fingerprint(hashes.SHA256()) == cert.fingerprint(hashes.SHA256()):
|
||||||
matching.append(c)
|
matching.append(c)
|
||||||
return matching
|
return matching
|
||||||
|
|
Loading…
Reference in New Issue