Merge pull request #3214 from hosseinsh/improving-cn-owner-search-endpooint

Improving cn/owner search endpoint
This commit is contained in:
Hossein Shafagh 2020-10-28 08:39:10 -07:00 committed by GitHub
commit adca20ade1
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 11 additions and 10 deletions

View File

@ -560,20 +560,21 @@ def query_common_name(common_name, args):
:return: :return:
""" """
owner = args.pop("owner") owner = args.pop("owner")
if not owner:
owner = "%"
# only not expired certificates # only not expired certificates
current_time = arrow.utcnow() current_time = arrow.utcnow()
result = ( query = Certificate.query.filter(Certificate.not_after >= current_time.format("YYYY-MM-DD"))\
Certificate.query.filter(Certificate.cn.ilike(common_name)) .filter(not_(Certificate.revoked))\
.filter(Certificate.owner.ilike(owner)) .filter(not_(Certificate.replaced.any())) # ignore rotated certificates to avoid duplicates
.filter(Certificate.not_after >= current_time.format("YYYY-MM-DD"))
.all()
)
return result if owner:
query = query.filter(Certificate.owner.ilike(owner))
if common_name != "%":
# if common_name is a wildcard ('%'), no need to include it in the query
query = query.filter(Certificate.cn.ilike(common_name))
return query.all()
def create_csr(**csr_config): def create_csr(**csr_config):